SObjectizer  5.7
Classes | Namespaces | Typedefs | Enumerations | Functions
mchain_select.hpp File Reference

Various stuff related to multi chain select. More...

#include <so_5/mchain_select_ifaces.hpp>
#include <so_5/details/at_scope_exit.hpp>
#include <so_5/details/invoke_noexcept_code.hpp>
#include <so_5/details/remaining_time_counter.hpp>
#include <so_5/details/safe_cv_wait_for.hpp>
#include <iterator>
#include <array>

Go to the source code of this file.

Classes

class  so_5::mchain_select_result_t
 A result of select from several mchains. More...
 
class  so_5::mchain_select_params_t< Msg_Count_Status >
 Parameters for advanced select from multiple mchains. More...
 
class  so_5::mchain_props::details::receive_select_case_t
 A base class for implementations of select_case for the case of receiving messages. More...
 
class  so_5::mchain_props::details::send_select_case_t
 A base class for implementations of select_case for the case of sending messages. More...
 
class  so_5::mchain_props::details::actual_receive_select_case_t< N >
 Actual implementation of one multi chain select case. More...
 
class  so_5::mchain_props::details::actual_send_select_case_t< On_Success_Handler >
 The actual implementation of select_case for the case of sending a message. More...
 
class  so_5::mchain_props::details::select_cases_holder_t< Cases_Count >
 A holder for serie of select_cases. More...
 
class  so_5::mchain_props::details::select_cases_holder_t< Cases_Count >::const_iterator
 Iterator class for accessing select_cases. More...
 
class  so_5::mchain_props::details::prepared_select_data_t< Cases_Count >
 A data for prepared-select instance. More...
 
class  so_5::mchain_props::details::prepared_select_data_t< Cases_Count >::activation_locker_t
 Special class for locking prepared-select instance for activation inside select() call. More...
 
class  so_5::mchain_props::details::extensible_select_cases_holder_t
 A holder for serie of select_cases for the case of extensible select. More...
 
class  so_5::mchain_props::details::extensible_select_cases_holder_t::const_iterator
 Iterator class for accessing select_cases. More...
 
class  so_5::mchain_props::details::extensible_select_data_t
 A data for extensible-select instance. More...
 
class  so_5::mchain_props::details::extensible_select_data_t::modification_locker_t
 Special class for locking extensible-select instance for modification. More...
 
class  so_5::mchain_props::details::extensible_select_data_t::activation_locker_t
 Special class for locking extensible-select instance for activation inside select() call. More...
 
class  so_5::mchain_props::details::actual_select_notificator_t
 Actual implementation of notificator for multi chain select. More...
 
class  so_5::mchain_props::details::select_actions_performer_t< Holder >
 Helper class for performing select-specific operations. More...
 
struct  so_5::mchain_props::details::select_actions_performer_t< Holder >::select_result_handler_t
 
class  so_5::prepared_select_t< Cases_Count >
 Special container for holding select parameters and select cases. More...
 
class  so_5::extensible_select_t
 Special container for holding select parameters and select cases. More...
 

Namespaces

 so_5
 Public part of message limit implementation.
 
 so_5::mchain_props
 Various properties and parameters of message chains.
 
 so_5::mchain_props::details
 Implementation details.
 

Typedefs

using so_5::mchain_props::details::adv_select_data_t = bulk_processing_basic_data_t
 

Enumerations

enum  so_5::mchain_props::details::prepared_select_status_t { so_5::mchain_props::details::prepared_select_status_t::passive, so_5::mchain_props::details::prepared_select_status_t::active }
 The current status of prepared-select instance. More...
 
enum  so_5::mchain_props::details::extensible_select_status_t { so_5::mchain_props::details::extensible_select_status_t::passive, so_5::mchain_props::details::extensible_select_status_t::active }
 The current status of extensible-select instance. More...
 

Functions

mchain_select_params_t< mchain_props::msg_count_status_t::undefined > so_5::from_all ()
 Helper function for creation of mchain_select_params instance with default values. More...
 
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)
 
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)
 
void so_5::mchain_props::details::fill_select_cases_holder (extensible_select_cases_holder_t &)
 
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)
 
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)
 
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)
 
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. More...
 
template<typename... Handlers>
mchain_props::select_case_unique_ptr_t so_5::receive_case (mchain_t chain, Handlers &&... handlers)
 A helper for creation of select_case object for one multi chain select. More...
 
template<typename Msg , message_ownership_t Ownership, typename On_Success_Handler >
mchain_props::select_case_unique_ptr_t so_5::send_case (mchain_t chain, message_holder_t< Msg, Ownership > msg, On_Success_Handler &&handler)
 A helper for creation of select_case object for one send-case of a multi chain select. More...
 
template<mchain_props::msg_count_status_t Msg_Count_Status, typename... Cases>
mchain_select_result_t so_5::select (const mchain_select_params_t< Msg_Count_Status > &params, Cases &&... cases)
 An advanced form of multi chain select. More...
 
template<mchain_props::msg_count_status_t Msg_Count_Status, typename... Cases>
prepared_select_t< sizeof...(Cases) > so_5::prepare_select (mchain_select_params_t< Msg_Count_Status > params, Cases &&... cases)
 Create prepared select statement to be used later. More...
 
template<std::size_t Cases_Count>
mchain_select_result_t so_5::select (const prepared_select_t< Cases_Count > &prepared)
 A select operation to be done on previously prepared select params. More...
 
template<mchain_props::msg_count_status_t Msg_Count_Status, typename... Cases>
extensible_select_t so_5::make_extensible_select (mchain_select_params_t< Msg_Count_Status > params, Cases &&... cases)
 Creation of extensible-select instance. More...
 
template<typename... Cases>
void so_5::add_select_cases (extensible_select_t &extensible_select, Cases &&... cases)
 Add a portion of cases to extensible-select instance. More...
 
mchain_select_result_t so_5::select (const extensible_select_t &extensible_select)
 A select operation to be done on previously prepared extensible-select object. More...
 

Detailed Description

Various stuff related to multi chain select.

Since
v.5.5.16