class ugcs::vsm::Write_request¶
Overview¶
Baser I/O write request. More…
#include <io_request.h> class Write_request: public ugcs::vsm::Io_request { public: // typedefs typedef std::shared_ptr<Write_request> Ptr; // construction template <typename... Args> Write_request(Io_buffer::Ptr buffer, Args&&... args); // methods Io_buffer::Ptr& Data_buffer(); template <typename... Args> static Ptr Create(Args&&... args); };
Inherited Members¶
public: // typedefs typedef std::shared_ptr<Request> Ptr; typedef std::weak_ptr<Request> Weak_ptr; typedef Callback_base<void>::Ptr<> Handler; typedef std::unique_lock<std::mutex> Locker; typedef std::shared_ptr<Io_request> Ptr; typedef std::weak_ptr<Io_request> Weak_ptr; // enums enum Status; // methods template <typename... Args> static Ptr Create(Args&&... args); void Set_processing_handler(const Handler& handler); void Set_processing_handler(Handler&& handler); void Set_completion_handler(const Request_container::Ptr& context, const Handler& handler); void Set_completion_handler(const Request_container::Ptr& context, Handler&& handler); void Set_cancellation_handler(const Handler& handler); void Set_cancellation_handler(Handler&& handler); void Set_done_handler(Handler& handler); void Set_done_handler(Handler&& handler); Request_container::Ptr Get_completion_context(Locker locker = Locker()) const; void Process(bool process_request); void Complete(Status status = Status::OK, Locker locker = Locker()); void Cancel(Locker locker = Locker()); void Abort(Locker locker = Locker()); Locker Lock(bool acquire = true) const; Status Get_status() const; bool Is_completed() const; bool Is_request_processing_needed() const; bool Is_aborted() const; bool Is_processing() const; bool Is_completion_delivered() const; bool Is_completion_delivering_started() const; bool Is_done() const; bool Wait_done( bool process_ctx = true, std::chrono::milliseconds timeout = std::chrono::milliseconds::zero() ); bool& Timed_out(); template <typename... Args> static Ptr Create(Args&&... args); Io_stream::Ptr Get_stream() const; Io_stream::Offset& Offset(); void Set_result_arg(Io_result result, const Request::Locker& lock = Request::Locker()); Io_result Get_last_result();
Detailed Documentation¶
Baser I/O write request.
Typedefs¶
typedef std::shared_ptr<Write_request> Ptr
Shared pointer to write request.
Construction¶
template <typename... Args> Write_request(Io_buffer::Ptr buffer, Args&&... args)
Construct write request.
Parameters:
buffer |
Buffer with data to write. |
args |
Arguments pack for Io_request constructor. |
Methods¶
Io_buffer::Ptr& Data_buffer()
Access the buffer with data to write.
template <typename... Args> static Ptr Create(Args&&... args)
Create an instance of the request.