8 #include <so_5_extra/error_ranges.hpp> 10 #include <so_5/impl/msg_tracing_helpers.hpp> 11 #include <so_5/impl/message_limit_internals.hpp> 55 const so_5::message_limit::control_block_t * limit )
76 return m_subscribers.empty();
82 const so_5::message_limit::control_block_t * limit )
84 m_subscribers.emplace_back( agent, limit );
90 return m_subscribers.end();
96 return std::find_if( std::begin(m_subscribers), std::end(m_subscribers),
97 [&](
const auto & info ) {
98 return info.m_agent == subscriber;
103 erase( storage_t::iterator it )
noexcept 105 m_subscribers.erase(it);
112 return m_subscribers[ m_current_subscriber ];
118 ++m_current_subscriber;
129 if( m_current_subscriber >= m_subscribers.size() )
130 m_current_subscriber = 0;
145 template<
typename Lock >
189 typename Tracing_Base >
192 ,
private data_t< Lock_Type >
193 ,
private Tracing_Base
199 template<
typename... Tracing_Args >
206 Tracing_Args &&... args )
219 const std::type_index & type_wrapper,
220 const so_5::message_limit::control_block_t * limit,
221 agent_t & subscriber )
override 248 const std::type_index & type_wrapper,
249 agent_t & subscriber )
override 273 s <<
"<mbox:type=RRMPSC:id=" <<
this->
m_id <<
">";
286 const std::type_index & msg_type,
287 const message_ref_t & message,
288 unsigned int overlimit_reaction_deep )
override 313 "set_delivery_filter is called for round_robin-mbox" );
333 typename Tracing_Base::deliver_op_tracer
const & tracer,
334 const std::type_index & msg_type,
335 const message_ref_t & message,
336 unsigned int overlimit_reaction_deep )
360 typename Tracing_Base::deliver_op_tracer
const & tracer,
361 const std::type_index & msg_type,
362 const message_ref_t & message,
363 unsigned int overlimit_reaction_deep )
406 template<
typename Lock_Type =
std::
mutex >
Ranges for error codes of each submodules.