![]() |
VSM C++ SDK
Vehicle Specific Modules SDK
|
Basic I/O read request. More...
#include <io_request.h>
Public Types | |
typedef std::shared_ptr < Read_request > | Ptr |
Shared pointer to read request. More... | |
![]() | |
typedef std::shared_ptr < Io_request > | Ptr |
Pointer type. | |
typedef std::weak_ptr< Io_request > | Weak_ptr |
Pointer type. | |
![]() | |
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< Request > | Ptr |
Pointer type. | |
typedef std::weak_ptr< Request > | Weak_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> | |
Read_request (Io_buffer::Ptr &buffer_arg, size_t max_to_read, size_t min_to_read, Args &&...args) | |
Constructor. More... | |
void | Set_buffer_arg (Io_buffer::Ptr buffer, const Request::Locker &lock=Request::Locker()) |
Sets the buffer argument. More... | |
Io_buffer::Ptr | Get_last_read_buffer () |
Get the most recently set read buffer. More... | |
size_t | Get_max_to_read () const |
Get maximal number of bytes to read. More... | |
size_t | Get_min_to_read () const |
Get minimal number of bytes to read. More... | |
![]() | |
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::Offset & | Offset () |
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... | |
![]() | |
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 read request. More... | |
![]() | |
template<typename... Args> | |
static Ptr | Create (Args &&...args) |
Create an instance. More... | |
![]() | |
template<typename... Args> | |
static Ptr | Create (Args &&...args) |
Create an instance. More... | |
Additional Inherited Members | |
![]() | |
bool | Is_completion_handler_present () |
Checks the availability of the completion handler. More... | |
Basic I/O read request.
typedef std::shared_ptr<Read_request> ugcs::vsm::Read_request::Ptr |
Shared pointer to read request.
|
inline |
Constructor.
buffer_arg | Reference to the I/O buffer argument of the completion handler. Resulting data should be read into this buffer. |
max_to_read | Maximal number of bytes to read. |
min_to_read | Minimal number of bytes to read. |
args | Argument for the base class constructor. |
|
inlinestatic |
Create an instance of read request.
|
inline |
Get the most recently set read buffer.
XXX Return nullptr if the read buffer was never set.
|
inline |
Get maximal number of bytes to read.
|
inline |
Get minimal number of bytes to read.
|
inline |
Sets the buffer argument.
buffer | Buffer to set. |
lock | If present, should be the already acquired lock for the request (will not be unlocked by the method), otherwise new lock is acquired and released inside the method. |