8 #include <so_5_extra/error_ranges.hpp> 10 #include <so_5/impl/msg_tracing_helpers.hpp> 50 so_5::abstract_message_sink_t & sink )
70 return m_subscribers.empty();
75 so_5::abstract_message_sink_t & sink )
77 m_subscribers.emplace_back( sink );
83 return m_subscribers.end();
89 return std::find_if( std::begin(m_subscribers), std::end(m_subscribers),
90 [&](
const auto & info ) {
91 return std::addressof( info.m_sink.get() ) ==
92 std::addressof( sink );
97 erase( storage_t::iterator it )
noexcept 99 m_subscribers.erase(it);
106 return m_subscribers[ m_current_subscriber ];
112 ++m_current_subscriber;
123 if( m_current_subscriber >= m_subscribers.size() )
124 m_current_subscriber = 0;
139 template<
typename Lock >
183 typename Tracing_Base >
186 ,
private data_t< Lock_Type >
187 ,
private Tracing_Base
193 template<
typename... Tracing_Args >
200 Tracing_Args &&... args )
213 const std::type_index & msg_type,
214 so_5::abstract_message_sink_t & subscriber )
override 241 const std::type_index & msg_type,
242 so_5::abstract_message_sink_t & subscriber )
noexcept override 266 s <<
"<mbox:type=RRMPSC:id=" <<
this->
m_id <<
">";
279 so_5::message_delivery_mode_t delivery_mode,
280 const std::type_index & msg_type,
281 const so_5::message_ref_t & message,
282 unsigned int redirection_deep )
override 309 "set_delivery_filter is called for round_robin-mbox" );
329 typename Tracing_Base::deliver_op_tracer
const & tracer,
330 so_5::message_delivery_mode_t delivery_mode,
331 const std::type_index & msg_type,
332 const so_5::message_ref_t & message,
333 unsigned int redirection_deep )
358 typename Tracing_Base::deliver_op_tracer
const & tracer,
359 so_5::message_delivery_mode_t delivery_mode,
360 const std::type_index & msg_type,
361 const so_5::message_ref_t & message,
362 unsigned int redirection_deep )
394 template<
typename Lock_Type =
std::
mutex >
Ranges for error codes of each submodules.