template class ugcs::vsm::Vehicle_request_spec

Overview

Vehicle request with specific payload. More…

#include <vehicle_request.h>

template <class Payload>
class Vehicle_request_spec: public ugcs::vsm::Vehicle_request
{
public:
    // typedefs

    typedef std::shared_ptr<Vehicle_request_spec> Ptr;
    typedef std::weak_ptr<Vehicle_request_spec> Weak_ptr;

    // classes

    class Handle;

    // fields

    Payload payload;

    // construction

    template <typename... Args>
    Vehicle_request_spec(
        Completion_handler completion_handler,
        Request_completion_context::Ptr completion_ctx,
        Args&&... args
        );

    // methods

    template <typename... Args>
    static Ptr Create(Args&&... args);
};

Inherited Members

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;

    // 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();

Detailed Documentation

Vehicle request with specific payload.

Typedefs

typedef std::shared_ptr<Vehicle_request_spec> Ptr

Pointer type.

typedef std::weak_ptr<Vehicle_request_spec> Weak_ptr

Pointer type.

Fields

Payload payload

Specific payload of the request.

Construction

template <typename... Args>
Vehicle_request_spec(
    Completion_handler completion_handler,
    Request_completion_context::Ptr completion_ctx,
    Args&&... args
    )

Construct vehicle request with specific payload.

Template arguments:

  • Args Arguments passed to payload constructor.

Methods

template <typename... Args>
static Ptr Create(Args&&... args)

Create an instance.