class ugcs::vsm::Vehicle_request¶
Overview¶
Base class of a generic request for a vehicle. More…
#include <vehicle_request.h> class Vehicle_request: public std::enable_shared_from_this< Vehicle_request > { public: // typedefs typedef std::shared_ptr<Vehicle_request> Ptr; typedef std::weak_ptr<Vehicle_request> Weak_ptr; typedef Callback_proxy<void, Result, std::string> Completion_handler; // enums enum Result; // classes class Handle; // construction Vehicle_request(Completion_handler completion_handler, Request_completion_context::Ptr completion_ctx); // methods template <typename... Args> static Ptr Create(Args&&... args); void Set_completion_result(Result result, const std::string&); void Complete(); void Abort(); Result Get_completion_result(); bool Is_completed() const; void Add_ref(); void Release_ref(); }; // direct descendants template <class Payload> class Vehicle_request_spec; template <> class Vehicle_request_spec<void>;
Detailed Documentation¶
Base class of a generic request for a vehicle.
It provides reference management methods for associated handles.
Typedefs¶
typedef std::shared_ptr<Vehicle_request> Ptr
Pointer type.
typedef std::weak_ptr<Vehicle_request> Weak_ptr
Pointer type.
typedef Callback_proxy<void, Result, std::string> Completion_handler
Completion handler type of the request.
Construction¶
Vehicle_request(Completion_handler completion_handler, Request_completion_context::Ptr completion_ctx)
Construct base request instance.
Methods¶
template <typename... Args> static Ptr Create(Args&&... args)
Create an instance.
void Set_completion_result(Result result, const std::string&)
Set completion result to be used when Complete method is called.
Parameters:
result |
Result for Complete method. |
void Complete()
Should be called when vehicle request is completed by the user.
Result, previously set by Set_completion_result is used.
void Abort()
Abort the request.
Any pending or submitted processing or completion handler is aborted, if it is not yet being executed.
Result Get_completion_result()
Get current completion result.
bool Is_completed() const
Check if the request was completed.
void Add_ref()
Add reference from user handle.
void Release_ref()
Release reference from user handle.
When last references is released, request is automatically completed with currently set result.