SObjectizer  5.5
Public Member Functions | Public Attributes | Private Member Functions | List of all members
so_5::msg_service_request_t< Result, Param > Struct Template Reference

A concrete message with information about service request. More...

#include <message.hpp>

Inheritance diagram for so_5::msg_service_request_t< Result, Param >:
so_5::msg_service_request_base_t so_5::message_t so_5::atomic_refcounted_t

Public Member Functions

 msg_service_request_t (std::promise< Result > &&promise)
 Constructor for the case where Param is a signal. More...
 
 msg_service_request_t (std::promise< Result > &&promise, message_ref_t &&param)
 Constructor for the case where Param is a message. More...
 
virtual void set_exception (std::exception_ptr what) override
 Setup exception information to underlying promise/future objects. More...
 
virtual message_tquery_param () const SO_5_NOEXCEPT override
 Access to param of service_request. More...
 
- Public Member Functions inherited from so_5::message_t
 message_t ()
 
 message_t (const message_t &other)
 
 message_t (message_t &&other)
 
message_toperator= (const message_t &other)
 
message_toperator= (message_t &&other)
 
virtual ~message_t () SO_5_NOEXCEPT=default
 
- Public Member Functions inherited from so_5::atomic_refcounted_t
 atomic_refcounted_t (const atomic_refcounted_t &)=delete
 
atomic_refcounted_toperator= (const atomic_refcounted_t &)=delete
 
 atomic_refcounted_t () SO_5_NOEXCEPT
 Default constructor. More...
 
 ~atomic_refcounted_t () SO_5_NOEXCEPT=default
 Destructor. More...
 
void inc_ref_count () SO_5_NOEXCEPT
 Increments reference count. More...
 
unsigned long dec_ref_count () SO_5_NOEXCEPT
 Decrement reference count. More...
 

Public Attributes

std::promise< Result > m_promise
 A promise object for result of service function. More...
 
message_ref_t m_param
 A parameter for service function. More...
 

Private Member Functions

virtual const void * so5__payload_ptr () const override
 Get the pointer to the message payload. More...
 
virtual message_mutability_t so5_message_mutability () const override
 Get message mutability flag. More...
 
virtual void so5_change_mutability (message_mutability_t v) override
 Change message mutabilty flag. More...
 

Additional Inherited Members

- Public Types inherited from so_5::message_t
using kind_t = ::so_5::message_kind_t
 A short typedef for kind of message. More...
 
- Static Public Member Functions inherited from so_5::msg_service_request_base_t
template<class Lambda >
static void dispatch_wrapper (const message_ref_t &what, Lambda handler)
 Helper wrapper for handling exceptions during service request dispatching. More...
 

Detailed Description

template<class Result, class Param>
struct so_5::msg_service_request_t< Result, Param >

A concrete message with information about service request.

Since
v.5.3.0

Constructor & Destructor Documentation

◆ msg_service_request_t() [1/2]

template<class Result , class Param >
so_5::msg_service_request_t< Result, Param >::msg_service_request_t ( std::promise< Result > &&  promise)
inline

Constructor for the case where Param is a signal.

◆ msg_service_request_t() [2/2]

template<class Result , class Param >
so_5::msg_service_request_t< Result, Param >::msg_service_request_t ( std::promise< Result > &&  promise,
message_ref_t &&  param 
)
inline

Constructor for the case where Param is a message.

Member Function Documentation

◆ query_param()

template<class Result , class Param >
virtual message_t& so_5::msg_service_request_t< Result, Param >::query_param ( ) const
inlineoverridevirtual

Access to param of service_request.

Since
v.5.5.5

Implements so_5::msg_service_request_base_t.

◆ set_exception()

template<class Result , class Param >
virtual void so_5::msg_service_request_t< Result, Param >::set_exception ( std::exception_ptr  ex)
inlineoverridevirtual

Setup exception information to underlying promise/future objects.

Implements so_5::msg_service_request_base_t.

◆ so5__payload_ptr()

template<class Result , class Param >
virtual const void* so_5::msg_service_request_t< Result, Param >::so5__payload_ptr ( ) const
inlineoverrideprivatevirtual

Get the pointer to the message payload.

Since
v.5.5.9
Note
This method is necessary for message delivery tracing. For ordinal messages it will return a pointer to the message itself. For service requests and user-defined messages it will return pointer to a payload object.

Reimplemented from so_5::message_t.

◆ so5_change_mutability()

template<class Result , class Param >
virtual void so_5::msg_service_request_t< Result, Param >::so5_change_mutability ( message_mutability_t  mutability)
inlineoverrideprivatevirtual

Change message mutabilty flag.

Attention
Changing mutability from message_mutability_t::immutable_message to message_mutability_t::mutable_message is a very bad idea. Please don't do this until you are know what you are doing.
Note
This method is intended to be used by SObjectizer and low-level SObjectizer extension. Because of that it is not guaranteed that this method is part of stable SObjectizer API. It can be changed or even removed in any future versions of SObjectizer.
This is a virual method because its behavious must be changed in msg_service_request_t.
Attention
This function can throw. For example a derived class can prohibit changing of message mutability.
Since
v.5.5.19

Implements so_5::msg_service_request_base_t.

◆ so5_message_mutability()

template<class Result , class Param >
virtual message_mutability_t so_5::msg_service_request_t< Result, Param >::so5_message_mutability ( ) const
inlineoverrideprivatevirtual

Get message mutability flag.

Note
This method is intended to be used by SObjectizer and low-level SObjectizer extension. Because of that it is not guaranteed that this method is part of stable SObjectizer API. It can be changed or even removed in any future versions of SObjectizer.
This is a virual method because its behavious must be changed in msg_service_request_t.
Since
v.5.5.19

Implements so_5::msg_service_request_base_t.

Member Data Documentation

◆ m_param

template<class Result , class Param >
message_ref_t so_5::msg_service_request_t< Result, Param >::m_param

A parameter for service function.

◆ m_promise

template<class Result , class Param >
std::promise< Result > so_5::msg_service_request_t< Result, Param >::m_promise

A promise object for result of service function.


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