11 #include <so_5/version.hpp> 13 #if SO_5_VERSION < SO_5_VERSION_MAKE(5u
, 7u
, 4u
) 14 #error "SObjectizer-5.7.4 of newest is required" 17 #include <so_5_extra/error_ranges.hpp> 19 #include <so_5/impl/agent_ptr_compare.hpp> 20 #include <so_5/impl/message_limit_internals.hpp> 21 #include <so_5/impl/msg_tracing_helpers.hpp> 22 #include <so_5/impl/local_mbox_basic_subscription_info.hpp> 24 #include <so_5/details/sync_helpers.hpp> 25 #include <so_5/details/invoke_noexcept_code.hpp> 27 #include <so_5/mbox.hpp> 28 #include <so_5/send_functions.hpp> 30 #include <string_view> 135 struct msg_first_subscriber
final :
public so_5::signal_t {};
144 struct msg_last_subscriber
final :
public so_5::signal_t {};
172 bool operator()( agent_t * a, agent_t * b )
const noexcept 174 return ::so_5::impl::special_agent_ptr_compare( *a, *b );
213 mbox_t notification_mbox,
214 mbox_type_t mbox_type )
241 typename Tracing_Base >
244 ,
private Tracing_Base
253 template<
typename... Tracing_Args >
260 mbox_t notification_mbox,
262 mbox_type_t mbox_type,
264 Tracing_Args &&... args )
276 "an attempt to make MPMC mbox for mutable message, " 294 const std::type_index & msg_type,
295 const so_5::message_limit::control_block_t * limit,
296 agent_t & subscriber )
override 300 "an attempt to subscribe with different message type" );
317 const std::type_index & msg_type,
318 agent_t & subscriber )
override 322 "an attempt to unsubscribe with different message type" );
338 s <<
"<mbox:type=FIRST_LAST_SUBSCR_NOTIFY";
364 const std::type_index & msg_type,
365 const message_ref_t & message,
366 unsigned int overlimit_reaction_deep )
override 370 "an attempt to deliver with different message type" );
393 const std::type_index & msg_type,
394 const delivery_filter_t & filter,
395 agent_t & subscriber )
override 399 "an attempt to set delivery_filter with " 400 "different message type" );
415 const std::type_index & msg_type,
416 agent_t & subscriber )
noexcept override 420 "an attempt to drop delivery_filter with " 421 "different message type" );
449 const std::type_index & msg_type,
450 std::string_view error_description )
464 typename Info_Changer,
465 typename Post_Action >
468 agent_t & subscriber,
470 Info_Changer changer,
471 Post_Action post_action )
509 typename Info_Changer,
510 typename Post_Action >
513 agent_t & subscriber,
514 Info_Changer changer,
515 Post_Action post_action )
554 typename Tracing_Base::deliver_op_tracer
const & tracer,
555 const std::type_index & msg_type,
556 const message_ref_t & message,
557 unsigned int overlimit_reaction_deep )
577 agent_t & subscriber,
578 const subscriber_info_t & subscriber_info,
579 typename Tracing_Base::deliver_op_tracer
const & tracer,
580 const std::type_index & msg_type,
581 const message_ref_t & message,
582 unsigned int overlimit_reaction_deep )
const 636 "subscriber already exists for MPSC mbox, new " 637 "subscriber can't be added" );
Ranges for error codes of each submodules.