11 #include <so_5_extra/error_ranges.hpp> 13 #include <so_5/impl/agent_ptr_compare.hpp> 14 #include <so_5/impl/message_limit_internals.hpp> 15 #include <so_5/impl/msg_tracing_helpers.hpp> 17 #include <so_5/details/sync_helpers.hpp> 19 #include <so_5/mbox.hpp> 81 using traits_type = Traits;
82 using lock_type = Lock_Type;
89 template<
typename Config_Type >
90 using traits_t =
typename Config_Type::traits_type;
92 template<
typename Config_Type >
93 using lock_t =
typename Config_Type::lock_type;
134 const so_5::message_limit::control_block_t * limit )
143 const delivery_filter_t * filter )
169 set_limit(
const message_limit::control_block_t * limit )
noexcept 221 auto need_deliver = delivery_possibility_t::must_be_delivered;
223 if( state_t::only_filter == m_state )
226 need_deliver = delivery_possibility_t::no_subscription;
227 else if( state_t::subscriptions_and_filter == m_state )
229 need_deliver = m_filter->check( subscriber, msg ) ?
230 delivery_possibility_t::must_be_delivered :
231 delivery_possibility_t::disabled_by_delivery_filter;
258 bool operator()( agent_t * a, agent_t * b )
const noexcept 260 return ::so_5::impl::special_agent_ptr_compare( *a, *b );
335 typename Tracing_Base >
338 ,
private Tracing_Base
347 template<
typename... Tracing_Args >
354 Tracing_Args &&... args )
367 const std::type_index & msg_type,
368 const so_5::message_limit::control_block_t * limit,
369 agent_t & subscriber )
override 384 const std::type_index & msg_type,
385 agent_t & subscriber )
override 399 s <<
"<mbox:type=RETAINED_MPMC:id=" <<
this->
m_data.
m_id <<
">";
412 const std::type_index & msg_type,
413 const message_ref_t & message,
414 unsigned int overlimit_reaction_deep )
override 433 const std::type_index & msg_type,
434 const delivery_filter_t & filter,
435 agent_t & subscriber )
override 450 const std::type_index & msg_type,
451 agent_t & subscriber )
noexcept override 474 template<
typename Info_Maker,
typename Info_Changer >
477 const std::type_index & msg_type,
478 agent_t & subscriber,
480 Info_Changer changer )
508 template<
typename Info_Changer >
511 const std::type_index & msg_type,
512 agent_t & subscriber,
513 Info_Changer changer )
539 typename Tracing_Base::deliver_op_tracer
const & tracer,
540 const std::type_index & msg_type,
541 const message_ref_t & message,
542 unsigned int overlimit_reaction_deep )
569 agent_t & subscriber,
571 typename Tracing_Base::deliver_op_tracer
const & tracer,
572 const std::type_index & msg_type,
573 const message_ref_t & message,
574 unsigned int overlimit_reaction_deep )
const 616 const std::type_index & msg_type,
617 const message_ref_t & retained_msg,
618 agent_t & subscriber,
628 "deliver_message_on_subscription",
651 const std::type_index & msg_type,
652 const message_ref_t & what )
const 658 "an attempt to deliver mutable message via MPMC mbox"
Ranges for error codes of each submodules.