SObjectizer  5.8
Loading...
Searching...
No Matches
so_5::low_level_api Namespace Reference

Classes

class  lambda_as_filter_t
 An implementation of delivery filter represented by lambda-function like object. More...
 
struct  schedule_timer_params_t
 
struct  single_timer_params_t
 

Functions

void ensure_not_null (const delivery_filter_unique_ptr_t &ptr)
 Helper function that throws if a pointer to delivery_filter is null.
 
template<class Message >
void deliver_message (message_delivery_mode_t delivery_mode, abstract_message_box_t &target, std::type_index subscription_type, std::unique_ptr< Message > msg)
 Deliver message.
 
void deliver_message (message_delivery_mode_t delivery_mode, abstract_message_box_t &target, std::type_index subscription_type, message_ref_t msg)
 Deliver message.
 
template<class Message >
void deliver_signal (message_delivery_mode_t delivery_mode, abstract_message_box_t &target)
 Deliver signal.
 
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.
 
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.
 
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.
 
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.
 

Function Documentation

◆ deliver_message() [1/2]

void so_5::low_level_api::deliver_message ( message_delivery_mode_t delivery_mode,
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
delivery_modeCan the delivery blocks the current thread?
targetDestination for message.
subscription_typeSubscription type for that message.
msgMessage data.

Definition at line 413 of file mbox.hpp.

◆ deliver_message() [2/2]

template<class Message >
void so_5::low_level_api::deliver_message ( message_delivery_mode_t delivery_mode,
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
delivery_modeCan the delivery blocks the current thread?
targetDestination for message.
subscription_typeSubscription type for that message.
msgMessage data.

Definition at line 379 of file mbox.hpp.

◆ deliver_signal()

template<class Message >
void so_5::low_level_api::deliver_signal ( message_delivery_mode_t delivery_mode,
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
delivery_modeCan the delivery blocks the current thread?
targetDestination for signal.

Definition at line 445 of file mbox.hpp.

◆ ensure_not_null()

void so_5::low_level_api::ensure_not_null ( const delivery_filter_unique_ptr_t & ptr)
inline

Helper function that throws if a pointer to delivery_filter is null.

Since
v.5.8.0

Definition at line 107 of file mbox.hpp.

◆ schedule_timer()

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 )
inlinenodiscard

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).

Definition at line 2400 of file environment.hpp.

◆ 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.

Definition at line 2438 of file environment.hpp.

◆ to_shptr()

coop_shptr_t so_5::low_level_api::to_shptr ( const coop_handle_t & handle)
inlinenodiscard

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

Definition at line 202 of file coop_handle.hpp.

◆ to_shptr_noexcept()

coop_shptr_t so_5::low_level_api::to_shptr_noexcept ( const coop_handle_t & handle)
inlinenodiscardnoexcept

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

Definition at line 229 of file coop_handle.hpp.