SObjectizer-5 Extra
|
Actual implementation of collecting mbox. More...
#include <collecting_mbox.hpp>
Public Member Functions | |
template<typename... Size_Specific_Base_Args, typename... Tracing_Base_Args> | |
actual_mbox_t (mbox_id_t mbox_id, std::tuple< Size_Specific_Base_Args... > &&size_specific_base_args, std::tuple< Tracing_Base_Args... > &&tracing_base_args) | |
A public constructor. More... | |
mbox_id_t | id () const override |
void | subscribe_event_handler (const std::type_index &, const so_5::message_limit::control_block_t *, agent_t &) override |
void | unsubscribe_event_handlers (const std::type_index &, agent_t &) override |
std::string | query_name () const override |
mbox_type_t | type () const override |
void | do_deliver_message (const std::type_index &msg_type, const message_ref_t &message, unsigned int overlimit_reaction_deep) override |
void | set_delivery_filter (const std::type_index &, const delivery_filter_t &, agent_t &) override |
void | drop_delivery_filter (const std::type_index &, agent_t &) noexcept override |
so_5::environment_t & | environment () const noexcept override |
Private Types | |
using | size_specific_base_type = typename traits_t< Config_Type >::size_specific_base_type |
Short alias for base type which is depended on consexpr or runtime size. More... | |
using | tracing_base_type = Tracing_Base |
Short alias for base type which is depended on msg_tracing facilities. More... | |
using | messages_collected_t = ::so_5::extra::mboxes::collecting_mbox::details::messages_collected_t< Config_Type > |
Alias for actual message which will be sent when all messages or signals are collected. More... | |
using | messages_collected_builder_t = typename collected_bunch_type_selector< Config_Type >::builder_type |
Alias for builder of message_collected. More... | |
using | collecting_message_subscription_type = typename message_payload_type< collecting_msg_t< Config_Type > >::subscription_type |
Alias for type which should be used for subscription to collecting messages. More... | |
using | messages_collected_subscription_type = typename std::conditional< is_mutable_message< collecting_msg_t< Config_Type > >::value, mutable_msg< messages_collected_t >, messages_collected_t > ::type |
Alias for type which should be used for subscription to message_collected message. More... | |
Private Member Functions | |
template<typename Specific_Base_Type_Tuple , std::size_t... Specific_Base_Type_Indexes, typename Tracing_Base_Type_Tuple , std::size_t... Tracing_Base_Type_Indexes> | |
actual_mbox_t (mbox_id_t mbox_id, Specific_Base_Type_Tuple &&specific_base_type_args, std::index_sequence< Specific_Base_Type_Indexes... >, Tracing_Base_Type_Tuple &&tracing_base_type_args, std::index_sequence< Tracing_Base_Type_Indexes... >) | |
void | collect_new_message (typename Tracing_Base::deliver_op_tracer const &tracer, const message_ref_t &message) |
Static Private Member Functions | |
static void | ensure_valid_message_type (const std::type_index &msg_type_id) |
Private Attributes | |
messages_collected_builder_t | m_msg_builder |
The current instance of messages_collected to store messages to be delivered. More... | |
Actual implementation of collecting mbox.
Config_Type | a type with enumeration of all necessary type traits. It is expected to be config_type with appropriate type parameters. |
Tracing_Base | base class with implementation of message delivery tracing methods. Expected to be tracing_enabled_base or tracing_disabled_base from so_5::impl::msg_tracing_helpers namespace. |
Definition at line 549 of file collecting_mbox.hpp.
|
private |
Alias for type which should be used for subscription to collecting messages.
Definition at line 577 of file collecting_mbox.hpp.
|
private |
Alias for builder of message_collected.
Definition at line 571 of file collecting_mbox.hpp.
|
private |
Alias for type which should be used for subscription to message_collected message.
Definition at line 586 of file collecting_mbox.hpp.
|
private |
Alias for actual message which will be sent when all messages or signals are collected.
Definition at line 567 of file collecting_mbox.hpp.
|
private |
Short alias for base type which is depended on consexpr or runtime size.
Definition at line 558 of file collecting_mbox.hpp.
|
private |
Short alias for base type which is depended on msg_tracing facilities.
Definition at line 562 of file collecting_mbox.hpp.
|
inlineprivate |
Definition at line 594 of file collecting_mbox.hpp.
|
inline |
A public constructor.
Receives two tuples: one for parameters for size_specific_base_type's constructor and another for parameters for tracing_base_type's constructor.
Size_Specific_Base_Args | list of types for parameters for size_specific_base_type's constructor. |
Tracing_Base_Args | list of types for parameters for tracing_base_type's constructor. Note: this can be an empty list. |
mbox_id | Unique ID for that mbox. |
size_specific_base_args | Parameters related to constexpr or runtime size. |
tracing_base_args | Parameters related to msg_tracing facilities. Note: this can be an empty tuple. |
Definition at line 630 of file collecting_mbox.hpp.
|
inlineprivate |
Definition at line 748 of file collecting_mbox.hpp.
|
inlineoverride |
Definition at line 686 of file collecting_mbox.hpp.
|
inlineoverridenoexcept |
Definition at line 714 of file collecting_mbox.hpp.
|
inlinestaticprivate |
Definition at line 733 of file collecting_mbox.hpp.
|
inlineoverridenoexcept |
Definition at line 722 of file collecting_mbox.hpp.
|
inlineoverride |
Definition at line 647 of file collecting_mbox.hpp.
|
inlineoverride |
Definition at line 671 of file collecting_mbox.hpp.
|
inlineoverride |
Definition at line 703 of file collecting_mbox.hpp.
|
inlineoverride |
Definition at line 653 of file collecting_mbox.hpp.
|
inlineoverride |
Definition at line 680 of file collecting_mbox.hpp.
|
inlineoverride |
Definition at line 664 of file collecting_mbox.hpp.
|
private |
The current instance of messages_collected to store messages to be delivered.
Definition at line 730 of file collecting_mbox.hpp.