![]() |
VSM C++ SDK
Vehicle Specific Modules SDK
|
Request execution context. More...
#include <request_context.h>
Public Types | |
typedef std::shared_ptr < Request_context > | Ptr |
Pointer type. | |
typedef std::weak_ptr < Request_context > | Weak_ptr |
Pointer type. | |
![]() | |
enum | Type { Type::NONE = 0x0, Type::PROCESSOR = 0x1, Type::COMPLETION_CONTEXT = 0x2, Type::ANY = PROCESSOR | COMPLETION_CONTEXT, Type::TEMPORAL = 0x4, Type::TEMP_COMPLETION_CONTEXT = COMPLETION_CONTEXT | TEMPORAL } |
Container type. More... | |
typedef std::shared_ptr < Request_container > | Ptr |
Pointer type. | |
typedef std::weak_ptr < Request_container > | Weak_ptr |
Pointer type. | |
Public Member Functions | |
virtual Type | Get_type () const override |
Get this container type. More... | |
![]() | |
Request_container (const std::string &name, Request_waiter::Ptr waiter=Request_waiter::Create()) | |
Create container with default associated waiter. More... | |
bool | Check_type (Type mask) |
Check if the container type conforms the specified characteristic mask. More... | |
void | Submit_request (Request::Ptr request) |
Submit request to this container for further processing or notification handlers invocation. More... | |
void | Submit_request_locked (Request::Ptr request, Request_waiter::Locker locker) |
The same as Submit_request, but with previously acquired lock of the associated waiter. More... | |
int | Process_requests (int requests_limit=0) |
Process all currently queued requests. More... | |
int | Process_requests (std::unique_lock< std::mutex > &lock, int requests_limit=0) |
Process all currently queued requests. More... | |
void | Set_waiter (Request_waiter::Ptr waiter) |
Set request waiter associated with this container. More... | |
Request_waiter::Ptr | Get_waiter () const |
Get request waiter associated with this container. More... | |
const std::string & | Get_name () |
Get the name of the container. More... | |
void | Enable () |
Enable the container. More... | |
void | Disable () |
Disable the container. More... | |
bool | Is_enabled () const |
Check if the container is currently enabled. More... | |
Static Public Member Functions | |
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 | |
![]() | |
void | Processing_loop () |
Request processing loop implementation. More... | |
virtual void | On_enable () |
Called when the container is enabled. More... | |
virtual void | On_disable () |
Called when the container is terminated. More... | |
void | Set_disabled () |
Disable the container and notify its waiter. More... | |
virtual void | On_wait_and_process () |
Called when default processing loop want to wait for work and process it. More... | |
![]() | |
Request_waiter::Ptr | waiter |
Waiter associated with this container. More... | |
std::list< Request::Ptr > | request_queue |
Queue of pending requests, i.e. More... | |
Request execution context.
is_processor | Request processor if "true", request completion context otherwise. |
|
inlinestatic |
Create an instance.
|
inlineoverridevirtual |
Get this container type.
Reimplemented from ugcs::vsm::Request_container.
Reimplemented in ugcs::vsm::Request_worker, and ugcs::vsm::Request_temp_completion_context.