SObjectizer 5.8
Loading...
Searching...
No Matches
so_5::mchain_props::details Namespace Reference

Implementation details. More...

Classes

class  actual_receive_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  actual_send_select_case_t
 The actual implementation of select_case for the case of sending a message. More...
 
struct  adv_receive_data_t
 Container of parameters for receive() function. More...
 
struct  bulk_processing_basic_data_t
 
class  extensible_select_cases_holder_t
 A holder for serie of select_cases for the case of extensible select. More...
 
class  extensible_select_data_t
 A data for extensible-select instance. 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  mchain_bulk_processing_basic_params_t
 
class  prepared_select_data_t
 A data for prepared-select instance. More...
 
class  receive_actions_performer_t
 Helper class with implementation of main actions of advanced receive operation. More...
 
class  receive_select_case_t
 A base class for implementations of select_case for the case of receiving messages. 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  send_select_case_t
 A base class for implementations of select_case for the case of sending messages. More...
 
class  unlimited_demand_queue
 Implementation of demands queue for size-unlimited message chain. More...
 

Typedefs

using adv_select_data_t = bulk_processing_basic_data_t
 

Enumerations

enum class  status { open , closed }
 Status of the message chain. More...
 
enum class  prepared_select_status_t { passive , active }
 The current status of prepared-select instance. More...
 
enum class  extensible_select_status_t { passive , active }
 The current status of extensible-select instance. More...
 

Functions

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

Detailed Description

Implementation details.

Since
v.5.5.13

Typedef Documentation

◆ adv_select_data_t

Enumeration Type Documentation

◆ extensible_select_status_t

The current status of extensible-select instance.

If extensible-select instance is activated (is used in select() call) then this instance can't be modified or activated yet more time.

Since
v.5.6.1
Enumerator
passive 

Extensible-select instance is not used in select() call.

active 

Extensible-select instance is used in select() call now.

Definition at line 901 of file mchain_select.hpp.

◆ prepared_select_status_t

The current status of prepared-select instance.

If prepared-select instance is activated (is used in select() call) then this instance can't be activated yet more time.

Since
v.5.6.1
Enumerator
passive 

Prepared-select instance is not used in select() call.

active 

Prepared-select instance is used in select() call now.

Definition at line 620 of file mchain_select.hpp.

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

Definition at line 294 of file mchain_details.hpp.

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.

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

Definition at line 102 of file mchain.hpp.

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

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

Definition at line 116 of file mchain.hpp.

◆ actual_timeout() [3/3]

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

Helper function for detection of actual value for waiting timeout.

Since
v.5.5.13

Definition at line 128 of file mchain.hpp.

◆ do_adv_select_with_total_time()

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

Definition at line 1416 of file mchain_select.hpp.

◆ do_adv_select_without_total_time()

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

Definition at line 1457 of file mchain_select.hpp.

◆ 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

Definition at line 49 of file mchain_details.hpp.

◆ 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

Definition at line 68 of file mchain_details.hpp.

◆ fill_select_cases_holder() [1/4]

void so_5::mchain_props::details::fill_select_cases_holder ( extensible_select_cases_holder_t & )
inline

Definition at line 875 of file mchain_select.hpp.

◆ fill_select_cases_holder() [2/4]

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

Definition at line 881 of file mchain_select.hpp.

◆ fill_select_cases_holder() [3/4]

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 )

Definition at line 591 of file mchain_select.hpp.

◆ fill_select_cases_holder() [4/4]

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 )

Definition at line 601 of file mchain_select.hpp.

◆ 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

Definition at line 59 of file mchain.hpp.

◆ 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

Definition at line 84 of file mchain.hpp.

◆ 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

Definition at line 70 of file mchain.hpp.

◆ 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

Definition at line 48 of file mchain.hpp.

◆ perform_receive()

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

An implementation of main receive actions.

Since
v.5.5.17

Definition at line 1721 of file mchain.hpp.

◆ perform_select()

template<typename Cases_Holder >
mchain_select_result_t so_5::mchain_props::details::perform_select ( const mchain_select_params_t< msg_count_status_t::defined > & 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.

Definition at line 1501 of file mchain_select.hpp.

◆ 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< msg_count_status_t::defined > & params,
const Bunch & bunch )
inline

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

Since
v.5.5.13

Definition at line 1647 of file mchain.hpp.

◆ 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< msg_count_status_t::defined > & 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

Definition at line 1691 of file mchain.hpp.