8 #include <so_5/rt/impl/h/msg_tracing_helpers.hpp> 9 #include <so_5/rt/impl/h/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;
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 >
176 typename Tracing_Base >
179 ,
private data_t< Lock_Type >
180 ,
private Tracing_Base
186 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 )
const override 291 const std::type_index & msg_type,
292 const message_ref_t & message,
293 unsigned int overlimit_reaction_deep )
const override 298 "deliver_service_request",
310 const std::type_index & msg_type,
311 const message_ref_t & message,
312 unsigned int overlimit_reaction_deep )
override 317 "deliver_enveloped_msg",
336 "set_delivery_filter is called for MPSC-mbox" );
350 typename Tracing_Base::deliver_op_tracer
const & tracer,
351 const std::type_index & msg_type,
352 const message_ref_t & message,
353 invocation_type_t invocation_type,
354 unsigned int overlimit_reaction_deep )
const 379 typename Tracing_Base::deliver_op_tracer
const & tracer,
380 const std::type_index & msg_type,
381 const message_ref_t & message,
382 invocation_type_t invocation_type,
383 unsigned int overlimit_reaction_deep )
const 410 typename Tracing_Base::deliver_op_tracer
const & tracer,
411 const std::type_index & msg_type,
412 const message_ref_t & message,
413 unsigned int overlimit_reaction_deep )
const 428 "no service handlers (no subscribers for message)" );
445 typename Tracing_Base::deliver_op_tracer
const & tracer,
447 const std::type_index & msg_type,
448 const message_ref_t & message,
449 unsigned int overlimit_reaction_deep )
const 493 template<
typename Lock_Type =
std::
mutex >
Ranges for error codes of each submodules.