VSM C++ SDK
Vehicle Specific Modules SDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
ugcs::vsm::Request_context< is_processor > Class Template Reference

Request execution context. More...

#include <request_context.h>

Inheritance diagram for ugcs::vsm::Request_context< is_processor >:
ugcs::vsm::Request_container ugcs::vsm::Android_serial_processor ugcs::vsm::Cucs_processor ugcs::vsm::File_processor ugcs::vsm::Request_temp_completion_context ugcs::vsm::Request_worker ugcs::vsm::Service_discovery_processor ugcs::vsm::Socket_processor ugcs::vsm::Timer_processor

Public Types

typedef std::shared_ptr
< Request_context
Ptr
 Pointer type.
 
typedef std::weak_ptr
< Request_context
Weak_ptr
 Pointer type.
 
- Public Types inherited from ugcs::vsm::Request_container
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...
 
- Public Member Functions inherited from ugcs::vsm::Request_container
 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...
 
- Static Public Member Functions inherited from ugcs::vsm::Request_container
template<typename... Args>
static Ptr Create (Args &&...args)
 Create an instance. More...
 

Additional Inherited Members

- Protected Member Functions inherited from ugcs::vsm::Request_container
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...
 
- Protected Attributes inherited from ugcs::vsm::Request_container
Request_waiter::Ptr waiter
 Waiter associated with this container. More...
 
std::list< Request::Ptrrequest_queue
 Queue of pending requests, i.e. More...
 

Detailed Description

template<bool is_processor>
class ugcs::vsm::Request_context< is_processor >

Request execution context.

Parameters
is_processorRequest processor if "true", request completion context otherwise.
Examples:
async_workflow.cpp.

Member Function Documentation

template<bool is_processor>
template<typename... Args>
static Ptr ugcs::vsm::Request_context< is_processor >::Create ( Args &&...  args)
inlinestatic

Create an instance.

Examples:
async_workflow.cpp.
template<bool is_processor>
virtual Type ugcs::vsm::Request_context< is_processor >::Get_type ( ) const
inlineoverridevirtual

Get this container type.

Reimplemented from ugcs::vsm::Request_container.

Reimplemented in ugcs::vsm::Request_worker, and ugcs::vsm::Request_temp_completion_context.


The documentation for this class was generated from the following file: