SObjectizer-5 Extra
Classes | Namespaces | Typedefs | Functions | Variables
composite.hpp File Reference

Implementation of composite mbox. More...

#include <so_5_extra/error_ranges.hpp>
#include <so_5/impl/msg_tracing_helpers.hpp>
#include <so_5/environment.hpp>
#include <so_5/mbox.hpp>
#include <algorithm>
#include <map>
#include <variant>
#include <vector>

Go to the source code of this file.

Classes

class  so_5::extra::mboxes::composite::redirect_to_if_not_found_case_t
 Description of a case when messages of unknown type have to be redirected to another mbox. More...
 
struct  so_5::extra::mboxes::composite::throw_if_not_found_case_t
 Description of a case when an exception has to be thrown if the type of a message is unknown. More...
 
struct  so_5::extra::mboxes::composite::drop_if_not_found_case_t
 Description of a case when a message of unknown type has to be dropped. More...
 
struct  so_5::extra::mboxes::composite::impl::target_t
 Description of one target. More...
 
class  so_5::extra::mboxes::composite::impl::unknown_msg_type_handlers::subscribe_event_t
 Function object to be used with std::visit. More...
 
class  so_5::extra::mboxes::composite::impl::unknown_msg_type_handlers::unsubscribe_event_t
 Function object to be used with std::visit. More...
 
class  so_5::extra::mboxes::composite::impl::unknown_msg_type_handlers::deliver_message_t< Tracer >
 Function object to be used with std::visit. More...
 
class  so_5::extra::mboxes::composite::impl::unknown_msg_type_handlers::set_delivery_filter_t
 Function object to be used with std::visit. More...
 
class  so_5::extra::mboxes::composite::impl::unknown_msg_type_handlers::drop_delivery_filter_t
 Function object to be used with std::visit. More...
 
struct  so_5::extra::mboxes::composite::impl::mbox_data_t
 Mbox data that doesn't depend on template parameters. More...
 
class  so_5::extra::mboxes::composite::impl::actual_mbox_t< Tracing_Base >
 Actual implementation of composite mbox. More...
 
class  so_5::extra::mboxes::composite::mbox_builder_t
 Factory class for building an instance of composite mbox. More...
 

Namespaces

 so_5
 Ranges for error codes of each submodules.
 
 so_5::extra
 
 so_5::extra::mboxes
 
 so_5::extra::mboxes::composite
 
 so_5::extra::mboxes::composite::errors
 
 so_5::extra::mboxes::composite::impl
 
 so_5::extra::mboxes::composite::impl::unknown_msg_type_handlers
 

Typedefs

using so_5::extra::mboxes::composite::type_not_found_reaction_t = std::variant< redirect_to_if_not_found_case_t, throw_if_not_found_case_t, drop_if_not_found_case_t >
 Type that describes the reaction to a message of unknown type. More...
 
using so_5::extra::mboxes::composite::impl::target_container_t = std::vector< target_t >
 Type of container for holding targets. More...
 

Functions

type_not_found_reaction_t so_5::extra::mboxes::composite::redirect_to_if_not_found (const mbox_t &dest_mbox)
 Helper function to set a reaction to unknown message type. More...
 
type_not_found_reaction_t so_5::extra::mboxes::composite::throw_if_not_found ()
 Helper function to set a reaction to unknown message type. More...
 
type_not_found_reaction_t so_5::extra::mboxes::composite::drop_if_not_found ()
 Helper function to set a reaction to unknown message type. More...
 
mbox_builder_t so_5::extra::mboxes::composite::builder (mbox_type_t mbox_type, type_not_found_reaction_t unknown_type_reaction)
 Factory function for making mbox_builder. More...
 
mbox_builder_t so_5::extra::mboxes::composite::multi_consumer_builder (type_not_found_reaction_t unknown_type_reaction)
 Factory function for making mbox_builder that produces MPMC composite mbox. More...
 
mbox_builder_t so_5::extra::mboxes::composite::single_consumer_builder (type_not_found_reaction_t unknown_type_reaction)
 Factory function for making mbox_builder that produces MPSC composite mbox. More...
 

Variables

const int so_5::extra::mboxes::composite::errors::rc_no_sink_for_message_type
 An attempt to send message of a type for that there is no a target. More...
 
const int so_5::extra::mboxes::composite::errors::rc_message_type_already_has_sink
 An attempt to add another target for a message type. More...
 
const int so_5::extra::mboxes::composite::errors::rc_mpmc_sink_can_be_used_with_mpsc_composite
 An attempt to add MPMC target to MPSC mbox. More...
 
const int so_5::extra::mboxes::composite::errors::rc_null_as_default_destination_mbox
 An attempt to use nullptr as the default destination mbox. More...
 
const auto so_5::extra::mboxes::composite::impl::target_compare
 Comparator function object to be used with std::lower_bound. More...
 

Detailed Description

Implementation of composite mbox.

Since
v.1.5.2

Definition in file composite.hpp.