2
3
7#include <so_5/impl/named_local_mbox.hpp>
22 impl::mbox_core_t & mbox_core )
32 m_mbox_core->destroy_mbox( m_name );
43 const std::type_index & type_wrapper,
46 m_mbox->subscribe_event_handler( type_wrapper, subscriber );
51 const std::type_index & type_wrapper,
54 return m_mbox->unsubscribe_event_handler( type_wrapper, subscriber );
60 if( default_global_mbox_namespace() == m_name.m_namespace )
63 return m_name.m_namespace +
"::" + m_name.m_name;
69 return m_mbox->type();
75 const std::type_index & msg_type,
76 const message_ref_t & message,
77 unsigned int redirection_deep )
79 m_mbox->do_deliver_message(
88 const std::type_index & msg_type,
92 m_mbox->set_delivery_filter( msg_type, filter, subscriber );
97 const std::type_index & msg_type,
100 m_mbox->drop_delivery_filter( msg_type, subscriber );
106 return m_mbox->environment();
Interface for message sink.
An interface of delivery filter object.
void set_delivery_filter(const std::type_index &msg_type, const delivery_filter_t &filter, abstract_message_sink_t &subscriber) override
Set a delivery filter for message type and subscriber.
mbox_id_t id() const override
Unique ID of this mbox.
void subscribe_event_handler(const std::type_index &type_wrapper, abstract_message_sink_t &subscriber) override
Add the message handler.
named_local_mbox_t(full_named_mbox_id_t full_name, const mbox_t &mbox, impl::mbox_core_t &mbox_core)
mbox_type_t type() const override
Get the type of message box.
void do_deliver_message(message_delivery_mode_t delivery_mode, const std::type_index &msg_type, const message_ref_t &message, unsigned int redirection_deep) override
Deliver message for all subscribers with respect to message limits.
~named_local_mbox_t() override
environment_t & environment() const noexcept override
SObjectizer Environment for which the mbox is created.
friend class impl::mbox_core_t
std::string query_name() const override
Get the mbox name.
void unsubscribe_event_handler(const std::type_index &type_wrapper, abstract_message_sink_t &subscriber) noexcept override
Remove all message handlers.
void drop_delivery_filter(const std::type_index &msg_type, abstract_message_sink_t &subscriber) noexcept override
Removes delivery filter for message type and subscriber.
Details of SObjectizer run-time implementations.
Private part of message limit implementation.
message_delivery_mode_t
Possible modes of message/signal delivery.
mbox_type_t
Type of the message box.
Full name for a named mbox.