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
56 return m_mbox->environment();
66
67
68
69
70
75 const std::type_index & msg_type,
76 const message_ref_t & message,
77 unsigned int redirection_deep,
87 this->environment().error_logger(),
89 logger <<
"maximum message redirection deep exceeded on "
90 "mbox_as_sink::push_event; message will be ignored;"
91 <<
" msg_type: " << msg_type.name()
92 <<
", target_mbox: " << m_mbox->query_name();
96 m_mbox->do_deliver_message(
101 redirection_deep + 1u );
115 simple_sink_owner_t< as_msink_impl::mbox_as_sink_t >
116 >( mbox, sink_priority )
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.
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.