VSM C++ SDK
Vehicle Specific Modules SDK
ugcs::vsm::Write_request Class Reference

Baser I/O write request. More...

#include <io_request.h>

Inheritance diagram for ugcs::vsm::Write_request:
ugcs::vsm::Io_request ugcs::vsm::Request_container::Request

Public Types

typedef std::shared_ptr< Write_requestPtr
 Shared pointer to write request. More...
 
- Public Types inherited from ugcs::vsm::Io_request
typedef std::shared_ptr< Io_requestPtr
 Pointer type.
 
typedef std::weak_ptr< Io_requestWeak_ptr
 Pointer type.
 
- Public Types inherited from ugcs::vsm::Request_container::Request
enum  Status {
  Status::PENDING, Status::CANCELLATION_PENDING, Status::CANCELING, Status::PROCESSING,
  Status::ABORT_PENDING, Status::ABORTED, Status::RESULT_CODES, Status::OK = RESULT_CODES,
  Status::CANCELED
}
 Request processing status which is returned by the handler or set internally. More...
 
typedef std::shared_ptr< RequestPtr
 Pointer type.
 
typedef std::weak_ptr< RequestWeak_ptr
 Pointer type.
 
typedef Callback_base< void >::Ptr<> Handler
 Callback denoting a handler of the request. More...
 
typedef std::unique_lock< std::mutex > Locker
 Smart lock object for request external locking. More...
 

Public Member Functions

template<typename... Args>
 Write_request (Io_buffer::Ptr buffer, Args &&...args)
 Construct write request. More...
 
Io_buffer::PtrData_buffer ()
 Access the buffer with data to write. More...
 
- Public Member Functions inherited from ugcs::vsm::Io_request
 Io_request (Io_stream::Ptr stream, Io_stream::Offset offset, Io_result &result_arg)
 Construct I/O request. More...
 
Io_stream::Ptr Get_stream () const
 Locks and gets the associated stream. More...
 
Io_stream::OffsetOffset ()
 Get I/O operation offset value. More...
 
void Set_result_arg (Io_result result, const Request::Locker &lock=Request::Locker())
 Sets the result argument. More...
 
Io_result Get_last_result ()
 Get the most recently set result value. More...
 
- Public Member Functions inherited from ugcs::vsm::Request_container::Request
void Set_processing_handler (const Handler &handler)
 Set processing handler for the request. More...
 
void Set_processing_handler (Handler &&handler)
 
void Set_completion_handler (const Request_container::Ptr &context, const Handler &handler)
 Set completion handler for the request. More...
 
void Set_completion_handler (const Request_container::Ptr &context, Handler &&handler)
 
void Set_cancellation_handler (const Handler &handler)
 Set request cancellation handler. More...
 
void Set_cancellation_handler (Handler &&handler)
 
void Set_done_handler (Handler &handler)
 Set request done handler. More...
 
void Set_done_handler (Handler &&handler)
 
Request_container::Ptr Get_completion_context (Locker locker=Locker()) const
 Get completion context associated with the request. More...
 
void Process (bool process_request)
 Process the request. More...
 
void Complete (Status status=Status::OK, Locker locker=Locker())
 Complete the request processing. More...
 
void Cancel (Locker locker=Locker())
 Cancel request processing. More...
 
void Abort (Locker locker=Locker())
 Call this method when request is not going to be processed by Process() method but is just removed from request queue. More...
 
Locker Lock (bool acquire=true) const
 Acquire lock for request internal state. More...
 
Status Get_status () const
 Get request current status. More...
 
bool Is_completed () const
 Check if request is completed. More...
 
bool Is_request_processing_needed () const
 Return true only if the request processing (i.e. More...
 
bool Is_aborted () const
 Check if request is aborted. More...
 
bool Is_processing () const
 Check if request is still processing. More...
 
bool Is_completion_delivered () const
 Check if the request completion notification is delivered. More...
 
bool Is_completion_delivering_started () const
 Check if the request completion handler already invoked (but might not be returned yet.
 
bool Is_done () const
 Check if request is fully processed, i.e. More...
 
bool Wait_done (bool process_ctx=true, std::chrono::milliseconds timeout=std::chrono::milliseconds::zero())
 Wait for request is fully processed, i.e. More...
 
bool & Timed_out ()
 Access timed_out member. More...
 

Static Public Member Functions

template<typename... Args>
static Ptr Create (Args &&...args)
 Create an instance of the request. More...
 
- Static Public Member Functions inherited from ugcs::vsm::Io_request
template<typename... Args>
static Ptr Create (Args &&...args)
 Create an instance. More...
 
- Static Public Member Functions inherited from ugcs::vsm::Request_container::Request
template<typename... Args>
static Ptr Create (Args &&...args)
 Create an instance. More...
 

Additional Inherited Members

- Protected Member Functions inherited from ugcs::vsm::Request_container::Request
bool Is_completion_handler_present ()
 Checks the availability of the completion handler. More...
 

Detailed Description

Baser I/O write request.

Member Typedef Documentation

typedef std::shared_ptr<Write_request> ugcs::vsm::Write_request::Ptr

Shared pointer to write request.

Constructor & Destructor Documentation

template<typename... Args>
ugcs::vsm::Write_request::Write_request ( Io_buffer::Ptr  buffer,
Args &&...  args 
)
inline

Construct write request.

Parameters
bufferBuffer with data to write.
argsArguments pack for Io_request constructor.

Member Function Documentation

template<typename... Args>
static Ptr ugcs::vsm::Write_request::Create ( Args &&...  args)
inlinestatic

Create an instance of the request.

Io_buffer::Ptr& ugcs::vsm::Write_request::Data_buffer ( )
inline

Access the buffer with data to write.


The documentation for this class was generated from the following file: