10 #include <so_5_extra/mboxes/proxy.hpp> 12 #include <so_5_extra/error_ranges.hpp> 14 #include <so_5_extra/enveloped_msg/just_envelope.hpp> 16 #include <so_5/impl/msg_tracing_helpers.hpp> 18 #include <so_5/environment.hpp> 31 using underlying_counter_t =
unsigned int;
35 namespace impl::msg_tracing_helpers::
details {
49 s <<
"[inflight_limit=" << info.m_limit <<
",inflight_current=" 50 << info.m_current_number <<
"]";
155 outliving_reference_t< instances_counter_t > counter )
noexcept 162 if( m_should_decrement_in_destructor )
163 (m_counter.m_instances)--;
190 class special_envelope_t
final :
public so_5::extra::enveloped_msg::just_envelope_t
192 using base_type_t = so_5::extra::enveloped_msg::just_envelope_t;
199 message_ref_t payload,
200 instances_counter_shptr_t counter )
209 (m_counter->m_instances)--;
232 value()
const noexcept {
return m_value; }
245 SO_5_THROW_EXCEPTION(
246 errors::rc_nullptr_as_underlying_mbox,
247 "nullptr is used as underlying mbox" );
249 return { std::move(mbox) };
260 template<
typename Tracing_Base >
263 ,
private Tracing_Base
287 template<
typename... Tracing_Args >
292 std::type_index msg_type,
294 underlying_counter_t limit,
296 Tracing_Args &&... args )
312 const std::type_index & msg_type,
313 abstract_message_sink_t & subscriber )
override 317 "an attempt to subscribe with different message type" );
325 const std::type_index & msg_type,
326 abstract_message_sink_t & subscriber )
noexcept override 351 message_delivery_mode_t delivery_mode,
352 const std::type_index & msg_type,
353 const message_ref_t & message,
354 unsigned int redirection_deep )
override 358 "an attempt to deliver message of a different message type" );
399 "too_many_inflight_messages",
406 const std::type_index & msg_type,
407 const delivery_filter_t & filter,
408 abstract_message_sink_t & subscriber )
override 412 "an attempt to set delivery_filter for different " 423 const std::type_index & msg_type,
424 abstract_message_sink_t & subscriber )
noexcept override 448 const std::type_index & msg_type,
449 std::string_view error_description )
const 469 template<
typename Msg_Type >
473 const so_5::mbox_t & underlying_mbox )
483 "an attempt to make MPMC mbox for mutable message, " 525 template<
typename Msg_Type >
Ranges for error codes of each submodules.