SObjectizer  5.5
Classes | Enumerations | Functions
so_5::mchain_props::details Namespace Reference

Implementation details. More...

Classes

class  actual_select_case_t
 Actual implementation of one multi chain select case. More...
 
class  actual_select_notificator_t
 Actual implementation of notificator for multi chain select. More...
 
class  limited_dynamic_demand_queue
 Implementation of demands queue for size-limited message chain with dynamically allocated storage. More...
 
class  limited_preallocated_demand_queue
 Implementation of demands queue for size-limited message chain with preallocated storage. More...
 
class  receive_actions_performer_t
 Helper class with implementation of main actions of advanced receive operation. More...
 
class  select_actions_performer_t
 Helper class for performing select-specific operations. More...
 
class  select_cases_holder_t
 A holder for serie of select_cases. More...
 
class  unlimited_demand_queue
 Implementation of demands queue for size-unlimited message chain. More...
 

Enumerations

enum  status { status::open, status::closed }
 Status of the message chain. More...
 

Functions

duration_t no_wait_special_timevalue ()
 Special value of duration to indicate 'no_wait' case. More...
 
duration_t infinite_wait_special_timevalue ()
 Special value of duration to indicate 'infinite_wait' case. More...
 
bool is_no_wait_timevalue (duration_t v)
 Is time value means 'no_wait'? More...
 
bool is_infinite_wait_timevalue (duration_t v)
 Is time value means 'infinite_wait'? More...
 
duration_t actual_timeout (infinite_wait_indication)
 Helper function for detection of actual value for waiting timeout. More...
 
duration_t actual_timeout (no_wait_indication)
 Helper function for detection of actual value for waiting timeout. More...
 
template<typename V >
duration_t actual_timeout (V value)
 Helper function for detection of actual value for waiting timeout. More...
 
template<typename Bunch >
mchain_receive_result_t receive_with_finite_total_time (const mchain_receive_params_t &params, const Bunch &bunch)
 An implementation of advanced receive when a limit for total operation time is defined. More...
 
template<typename Bunch >
mchain_receive_result_t receive_without_total_time (const mchain_receive_params_t &params, const Bunch &bunch)
 An implementation of advanced receive when there is no limit for total operation time is defined. More...
 
template<typename Bunch >
mchain_receive_result_t perform_receive (const mchain_receive_params_t &params, const Bunch &bunch)
 An implementation of main receive actions. More...
 
template<typename Holder >
void fill_select_cases_holder (Holder &holder, std::size_t index, select_case_unique_ptr_t c)
 
template<typename Holder , typename... Cases>
void fill_select_cases_holder (Holder &holder, std::size_t index, select_case_unique_ptr_t c, Cases &&... other_cases)
 
template<typename Holder >
mchain_receive_result_t do_adv_select_with_total_time (const mchain_select_params_t &params, const Holder &select_cases)
 
template<typename Holder >
mchain_receive_result_t do_adv_select_without_total_time (const mchain_select_params_t &params, const Holder &select_cases)
 
template<typename Cases_Holder >
mchain_receive_result_t perform_select (const mchain_select_params_t &params, const Cases_Holder &cases_holder)
 Helper function with implementation of main select action. More...
 
template<typename Q >
void ensure_queue_not_empty (Q &&queue)
 Helper function which throws an exception if queue is empty. More...
 
template<typename Q >
void ensure_queue_not_full (Q &&queue)
 Helper function which throws an exception if queue is full. More...
 

Detailed Description

Implementation details.

Since
v.5.5.13

Enumeration Type Documentation

◆ status

Status of the message chain.

Since
v.5.5.13
Enumerator
open 

Bag is open and can be used for message sending.

closed 

Bag is closed. New messages cannot be sent to it.

Examples:
so_5/machine_control/main.cpp.

Function Documentation

◆ actual_timeout() [1/3]

duration_t so_5::mchain_props::details::actual_timeout ( infinite_wait_indication  )
inline

Helper function for detection of actual value for waiting timeout.

Since
v.5.5.13
Note
This helper implements convention that infinite waiting is represented as duration_t::max() value.

◆ actual_timeout() [2/3]

duration_t so_5::mchain_props::details::actual_timeout ( no_wait_indication  )
inline

Helper function for detection of actual value for waiting timeout.

Since
v.5.5.13
Note
This helper implements convention that no waiting is represented as duration_t::zero() value.

◆ actual_timeout() [3/3]

template<typename V >
duration_t so_5::mchain_props::details::actual_timeout ( value)

Helper function for detection of actual value for waiting timeout.

Since
v.5.5.13

◆ do_adv_select_with_total_time()

template<typename Holder >
mchain_receive_result_t so_5::mchain_props::details::do_adv_select_with_total_time ( const mchain_select_params_t params,
const Holder &  select_cases 
)

◆ do_adv_select_without_total_time()

template<typename Holder >
mchain_receive_result_t so_5::mchain_props::details::do_adv_select_without_total_time ( const mchain_select_params_t params,
const Holder &  select_cases 
)

◆ ensure_queue_not_empty()

template<typename Q >
void so_5::mchain_props::details::ensure_queue_not_empty ( Q &&  queue)

Helper function which throws an exception if queue is empty.

Since
v.5.5.13

◆ ensure_queue_not_full()

template<typename Q >
void so_5::mchain_props::details::ensure_queue_not_full ( Q &&  queue)

Helper function which throws an exception if queue is full.

Since
v.5.5.13

◆ fill_select_cases_holder() [1/2]

template<typename Holder >
void so_5::mchain_props::details::fill_select_cases_holder ( Holder &  holder,
std::size_t  index,
select_case_unique_ptr_t  c 
)

◆ fill_select_cases_holder() [2/2]

template<typename Holder , typename... Cases>
void so_5::mchain_props::details::fill_select_cases_holder ( Holder &  holder,
std::size_t  index,
select_case_unique_ptr_t  c,
Cases &&...  other_cases 
)

◆ infinite_wait_special_timevalue()

duration_t so_5::mchain_props::details::infinite_wait_special_timevalue ( )
inline

Special value of duration to indicate 'infinite_wait' case.

Since
v.5.5.13

◆ is_infinite_wait_timevalue()

bool so_5::mchain_props::details::is_infinite_wait_timevalue ( duration_t  v)
inline

Is time value means 'infinite_wait'?

Since
v.5.5.13

◆ is_no_wait_timevalue()

bool so_5::mchain_props::details::is_no_wait_timevalue ( duration_t  v)
inline

Is time value means 'no_wait'?

Since
v.5.5.13

◆ no_wait_special_timevalue()

duration_t so_5::mchain_props::details::no_wait_special_timevalue ( )
inline

Special value of duration to indicate 'no_wait' case.

Since
v.5.5.13

◆ perform_receive()

template<typename Bunch >
mchain_receive_result_t so_5::mchain_props::details::perform_receive ( const mchain_receive_params_t params,
const Bunch &  bunch 
)
inline

An implementation of main receive actions.

Since
v.5.5.17

◆ perform_select()

template<typename Cases_Holder >
mchain_receive_result_t so_5::mchain_props::details::perform_select ( const mchain_select_params_t params,
const Cases_Holder &  cases_holder 
)

Helper function with implementation of main select action.

Since
v.5.5.17
Parameters
paramsParameters for advanced select.
cases_holderSelect cases.

◆ receive_with_finite_total_time()

template<typename Bunch >
mchain_receive_result_t so_5::mchain_props::details::receive_with_finite_total_time ( const mchain_receive_params_t params,
const Bunch &  bunch 
)
inline

An implementation of advanced receive when a limit for total operation time is defined.

Since
v.5.5.13

◆ receive_without_total_time()

template<typename Bunch >
mchain_receive_result_t so_5::mchain_props::details::receive_without_total_time ( const mchain_receive_params_t params,
const Bunch &  bunch 
)
inline

An implementation of advanced receive when there is no limit for total operation time is defined.

Since
v.5.5.13