8 #include <so_5/impl/msg_tracing_helpers.hpp> 9 #include <so_5/impl/message_limit_internals.hpp> 40 const so_5::message_limit::control_block_t * limit )
61 return m_subscribers.empty();
67 const so_5::message_limit::control_block_t * limit )
69 m_subscribers.emplace_back( agent, limit );
75 return m_subscribers.end();
81 return std::find_if( std::begin(m_subscribers), std::end(m_subscribers),
82 [&](
const auto & info ) {
83 return info.m_agent == subscriber;
88 erase( storage_t::iterator it )
noexcept 90 m_subscribers.erase(it);
97 return m_subscribers[ m_current_subscriber ];
103 ++m_current_subscriber;
114 if( m_current_subscriber >= m_subscribers.size() )
115 m_current_subscriber = 0;
130 template<
typename Lock >
174 typename Tracing_Base >
177 ,
private data_t< Lock_Type >
178 ,
private Tracing_Base
184 template<
typename... Tracing_Args >
191 Tracing_Args &&... args )
204 const std::type_index & type_wrapper,
205 const so_5::message_limit::control_block_t * limit,
206 agent_t & subscriber )
override 233 const std::type_index & type_wrapper,
234 agent_t & subscriber )
override 258 s <<
"<mbox:type=RRMPSC:id=" <<
this->
m_id <<
">";
271 const std::type_index & msg_type,
272 const message_ref_t & message,
273 unsigned int overlimit_reaction_deep )
override 296 "set_delivery_filter is called for MPSC-mbox" );
316 typename Tracing_Base::deliver_op_tracer
const & tracer,
317 const std::type_index & msg_type,
318 const message_ref_t & message,
319 unsigned int overlimit_reaction_deep )
343 typename Tracing_Base::deliver_op_tracer
const & tracer,
344 const std::type_index & msg_type,
345 const message_ref_t & message,
346 unsigned int overlimit_reaction_deep )
389 template<
typename Lock_Type =
std::
mutex >
Ranges for error codes of each submodules.