SObjectizer  5.5
Classes | Functions
so_5::details::event_subscription_helpers Namespace Reference

Various helpers for event subscription. More...

Classes

struct  always_false
 A helper template type to trigger static_assert. More...
 
struct  event_handler_arg_maker
 A helper template for create an argument for event handler in the case when argument is passed as value or const reference. More...
 
struct  event_handler_arg_maker< immutable_msg< Msg > >
 
struct  event_handler_arg_maker< mhood_t< immutable_msg< Msg > > >
 A helper template for create an argument for event handler in the case when argument is passed as message hood. More...
 
struct  event_handler_arg_maker< mhood_t< Msg > >
 A helper template for create an argument for event handler in the case when argument is passed as message hood. More...
 
struct  event_handler_arg_maker< mhood_t< mutable_msg< Msg > > >
 A helper template for create an argument for event handler in the case when argument is passed as message hood. More...
 
struct  event_handler_arg_maker< mutable_msg< Msg > >
 

Functions

template<class Agent >
Agent * get_actual_agent_pointer (agent_t &agent)
 Get actual agent pointer. More...
 
template<class Result , class Message >
msg_service_request_t< Result, typename message_payload_type< Message >::envelope_type > * get_actual_service_request_pointer (const message_ref_t &message_ref)
 Get actual msg_service_request pointer. More...
 
template<typename R , typename L >
void set_promise (std::promise< R > &to, L result_provider)
 A helper for setting a result to a promise. More...
 
template<typename L >
void set_promise (std::promise< void > &to, L result_provider)
 A helper for setting a result to a promise<void>. More...
 
template<typename Lambda , typename Result , typename Arg >
std::enable_if< !is_agent_method_pointer< Lambda >::value, msg_type_and_handler_pair_t >::type make_handler_with_arg (Lambda lambda)
 Helper template for creation of event handler with actual argument. More...
 
template<typename Agent , typename Method_Pointer >
std::enable_if< is_agent_method_pointer< Method_Pointer >::value, msg_type_and_handler_pair_t >::type make_handler_with_arg_for_agent (Agent *agent, Method_Pointer pfn)
 Helper template for creation of event handler with actual argument. More...
 
template<typename Lambda , typename Result , typename Sig >
msg_type_and_handler_pair_t make_handler_without_arg (Lambda &&lambda)
 Helper template for creation of event handler without actual argument. More...
 
void ensure_handler_can_be_used_with_mbox (const ::so_5::details::msg_type_and_handler_pair_t &handler, const ::so_5::mbox_t &target_mbox)
 Ensure that mutability of message is compatible with mutability of target mbox. More...
 

Detailed Description

Various helpers for event subscription.

Since
v.5.3.0

Function Documentation

◆ ensure_handler_can_be_used_with_mbox()

void so_5::details::event_subscription_helpers::ensure_handler_can_be_used_with_mbox ( const ::so_5::details::msg_type_and_handler_pair_t handler,
const ::so_5::mbox_t target_mbox 
)
inline

Ensure that mutability of message is compatible with mutability of target mbox.

Since
v.5.5.21

◆ get_actual_agent_pointer()

template<class Agent >
Agent* so_5::details::event_subscription_helpers::get_actual_agent_pointer ( agent_t agent)

Get actual agent pointer.

Exceptions
exception_tif dynamic_cast fails.

◆ get_actual_service_request_pointer()

template<class Result , class Message >
msg_service_request_t< Result, typename message_payload_type< Message >::envelope_type >* so_5::details::event_subscription_helpers::get_actual_service_request_pointer ( const message_ref_t message_ref)

Get actual msg_service_request pointer.

Exceptions
exception_tif dynamic_cast fails.

◆ make_handler_with_arg()

template<typename Lambda , typename Result , typename Arg >
std::enable_if< !is_agent_method_pointer<Lambda>::value, msg_type_and_handler_pair_t >::type so_5::details::event_subscription_helpers::make_handler_with_arg ( Lambda  lambda)

Helper template for creation of event handler with actual argument.

Since
v.5.5.14

◆ make_handler_with_arg_for_agent()

template<typename Agent , typename Method_Pointer >
std::enable_if< is_agent_method_pointer<Method_Pointer>::value, msg_type_and_handler_pair_t >::type so_5::details::event_subscription_helpers::make_handler_with_arg_for_agent ( Agent *  agent,
Method_Pointer  pfn 
)

Helper template for creation of event handler with actual argument.

Since
v.5.5.14

◆ make_handler_without_arg()

template<typename Lambda , typename Result , typename Sig >
msg_type_and_handler_pair_t so_5::details::event_subscription_helpers::make_handler_without_arg ( Lambda &&  lambda)

Helper template for creation of event handler without actual argument.

Note
This helper must be used only if Sig is derived from signal_t.
Since
v.5.5.14

◆ set_promise() [1/2]

template<typename R , typename L >
void so_5::details::event_subscription_helpers::set_promise ( std::promise< R > &  to,
result_provider 
)

A helper for setting a result to a promise.

Since
v.5.5.14

◆ set_promise() [2/2]

template<typename L >
void so_5::details::event_subscription_helpers::set_promise ( std::promise< void > &  to,
result_provider 
)

A helper for setting a result to a promise<void>.

Since
v.5.5.14