rotor
Event loop friendly C++ actor micro-framework
 
Loading...
Searching...
No Matches
rotor::wrapped_request_t< T, std::enable_if_t< std::is_base_of_v< arc_base_t< T >, T > > > Struct Template Reference

wrapped request specialization, when the request should be wrapped into intrusive pointer More...

#include <request.hpp>

Inheritance diagram for rotor::wrapped_request_t< T, std::enable_if_t< std::is_base_of_v< arc_base_t< T >, T > > >:
rotor::request_base_t

Public Types

using raw_request_t = T
 alias for original (unwrapped) request payload type
 
using request_t = intrusive_ptr_t< T >
 alias for original request payload type wrapped into intrusive pointer
 
using response_t = typename T::response_t
 alias for original (unwrapped) response payload type
 

Public Member Functions

 wrapped_request_t (request_id_t id_, const address_ptr_t &reply_to_, const address_ptr_t &origin_, const request_t &request_)
 makes an intrusive pointer for already constructed user-supplied payload
 
template<typename... Args, typename E = std::enable_if_t<std::is_constructible_v<raw_request_t, Args...>>>
 wrapped_request_t (request_id_t id_, const address_ptr_t &reply_to_, const address_ptr_t &origin_, Args &&...args)
 constructs wrapper for user-supplied payload from request-id and and destination reply address
 

Public Attributes

request_t request_payload
 intrusive pointer to user-supplied payload
 
- Public Attributes inherited from rotor::request_base_t
request_id_t id
 unique (per supervisor) request id
 
address_ptr_t reply_to
 destination address for reply
 
address_ptr_t origin
 the source (original) actor address, which made an request
 

Detailed Description

template<typename T>
struct rotor::wrapped_request_t< T, std::enable_if_t< std::is_base_of_v< arc_base_t< T >, T > > >

wrapped request specialization, when the request should be wrapped into intrusive pointer

Constructor & Destructor Documentation

◆ wrapped_request_t()

template<typename T >
rotor::wrapped_request_t< T, std::enable_if_t< std::is_base_of_v< arc_base_t< T >, T > > >::wrapped_request_t ( request_id_t  id_,
const address_ptr_t reply_to_,
const address_ptr_t origin_,
const request_t request_ 
)
inline

makes an intrusive pointer for already constructed user-supplied payload

The different request-id and reply_to address arguments are supplied to make it possible cheaply forward requests.


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