SObjectizer  5.5
Classes | Functions
so_5::low_level_api Namespace Reference

Classes

struct  schedule_timer_params_t
 
struct  single_timer_params_t
 

Functions

coop_shptr_t to_shptr (const coop_handle_t &handle)
 A helper function for safe extraction of shared_ptr to coop from coop_handle instance. More...
 
coop_shptr_t to_shptr_noexcept (const coop_handle_t &handle) noexcept
 A helper function for unsafe extraction of shared_ptr to coop from coop_handle instance. More...
 
SO_5_NODISCARD so_5::timer_id_t schedule_timer (const std::type_index &subscription_type, message_ref_t msg, const mbox_t &mbox, std::chrono::steady_clock::duration pause, std::chrono::steady_clock::duration period)
 Schedule periodic timer event. More...
 
void single_timer (const std::type_index &subscription_type, message_ref_t msg, const mbox_t &mbox, std::chrono::steady_clock::duration pause)
 Schedule single timer event. More...
 
template<class Message >
void deliver_message (abstract_message_box_t &target, std::type_index subscription_type, std::unique_ptr< Message > msg)
 Deliver message. More...
 
void deliver_message (abstract_message_box_t &target, std::type_index subscription_type, message_ref_t msg)
 Deliver message. More...
 
template<class Message >
void deliver_signal (abstract_message_box_t &target)
 Deliver signal. More...
 

Function Documentation

◆ deliver_message() [1/2]

template<class Message >
void so_5::low_level_api::deliver_message ( abstract_message_box_t target,
std::type_index  subscription_type,
std::unique_ptr< Message >  msg 
)

Deliver message.

Mbox takes care about destroying a message object.

Attention
This function ensures that Message is a classical message with an actual data (e.g. msg shouldn't be nullptr).
Note
This function is a part of low-level SObjectizer's interface. Because of that this function can be removed or changed in some future version without prior notice.
Since
v.5.6.0
Parameters
targetDestination for message.
subscription_typeSubscription type for that message.
msgMessage data.

◆ deliver_message() [2/2]

void so_5::low_level_api::deliver_message ( abstract_message_box_t target,
std::type_index  subscription_type,
message_ref_t  msg 
)
inline

Deliver message.

This function is necessary for cases when message object is already present as message_ref_t.

Note
This function is a part of low-level SObjectizer's interface. Because of that this function can be removed or changed in some future version without prior notice.
Since
v.5.6.0
Parameters
targetDestination for message.
subscription_typeSubscription type for that message.
msgMessage data.

◆ deliver_signal()

template<class Message >
void so_5::low_level_api::deliver_signal ( abstract_message_box_t target)

Deliver signal.

Attention
This function ensures that Message is a type of a signal.
Note
This function is a part of low-level SObjectizer's interface. Because of that this function can be removed or changed in some future version without prior notice.
Since
v.5.6.0
Parameters
targetDestination for signal.

◆ schedule_timer()

SO_5_NODISCARD so_5::timer_id_t so_5::low_level_api::schedule_timer ( const std::type_index &  subscription_type,
message_ref_t  msg,
const mbox_t mbox,
std::chrono::steady_clock::duration  pause,
std::chrono::steady_clock::duration  period 
)
inline

Schedule periodic timer event.

Note
This function is a part of low-level SObjectizer's interface. Because of that this function can be removed or changed in some future version without prior notice.
Attention
Values of pause and period should be non-negative.
Since
v.5.6.0
Parameters
subscription_typeMessage type for searching subscribers.
msgMessage to be sent after timeout.
mboxMbox to which message will be delivered.
pauseTimeout before the first delivery.
periodPeriod of the delivery repetition for periodic messages.
Note
Value 0 indicates that it's not periodic message (will be delivered one time).

◆ single_timer()

void so_5::low_level_api::single_timer ( const std::type_index &  subscription_type,
message_ref_t  msg,
const mbox_t mbox,
std::chrono::steady_clock::duration  pause 
)
inline

Schedule single timer event.

Note
This function is a part of low-level SObjectizer's interface. Because of that this function can be removed or changed in some future version without prior notice.
Attention
Value period should be non-negative.
Since
v.5.6.0
Parameters
subscription_typeMessage type for searching subscribers.
msgMessage to be sent after timeout.
mboxMbox to which message will be delivered.
pauseTimeout before the delivery.

◆ to_shptr()

SO_5_NODISCARD coop_shptr_t so_5::low_level_api::to_shptr ( const coop_handle_t handle)
inline

A helper function for safe extraction of shared_ptr to coop from coop_handle instance.

Note
This function throws if coop object is already destroyed.
Attention
This is a part of low-level SObjectizer's API.
Since
v.5.6.0

◆ to_shptr_noexcept()

SO_5_NODISCARD coop_shptr_t so_5::low_level_api::to_shptr_noexcept ( const coop_handle_t handle)
inlinenoexcept

A helper function for unsafe extraction of shared_ptr to coop from coop_handle instance.

Note
This function don't throws if coop object is already destroyed. An empty shared_ptr is returned instead.
Attention
This is a part of low-level SObjectizer's API.
Since
v.5.6.0