2
3
5#include <so_5/mbox.hpp>
7#include <so_5/ret_code.hpp>
9#include <so_5/environment.hpp>
29
30
31
32
33
34
35
66
67
68
69
70
75 const std::type_index & msg_type,
76 const message_ref_t & message,
77 unsigned int redirection_deep,
89 logger <<
"maximum message redirection deep exceeded on "
90 "mbox_as_sink::push_event; message will be ignored;"
91 <<
" msg_type: " << msg_type.name()
101 redirection_deep + 1u
);
116 >( mbox, sink_priority )
virtual so_5::environment_t & environment() const noexcept=0
SObjectizer Environment for which the mbox is created.
virtual std::string query_name() const =0
Get the mbox name.
virtual 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)=0
Deliver message for all subscribers with respect to message limits.
Interface for message sink.
const priority_t m_sink_priority
The priority for the sink.
priority_t sink_priority() const noexcept override
Get the priority for the message sink.
void push_event(mbox_id_t, message_delivery_mode_t delivery_mode, const std::type_index &msg_type, const message_ref_t &message, unsigned int redirection_deep, const message_limit::impl::action_msg_tracer_t *) override
mbox_as_sink_t(mbox_t mbox, priority_t priority)
Initializing constructor.
environment_t & environment() const noexcept override
const mbox_t m_mbox
The destination for messages.
error_logger_t & error_logger() const
Get the error_logger object.
intrusive_ptr_t(intrusive_ptr_t &&o) noexcept
Move constructor.
T * operator->() const noexcept
An interface of tracer for message delivery tracing.
#define SO_5_LOG_ERROR(logger, var_name)
A special macro for helping error logging.
Internal implementation of message limits related stuff.
All stuff related to message limits.
Private part of message limit implementation.
message_delivery_mode_t
Possible modes of message/signal delivery.
constexpr unsigned int max_redirection_deep
Maximum deep of message redirections.
priority_t
Definition of supported priorities.
msink_t SO_5_FUNC wrap_to_msink(const mbox_t &mbox, priority_t sink_priority=prio::p0)
Helper for wrapping an existing mbox into message_sink.