|
template<typename... Tracing_Args> |
| limitful_mpsc_mbox_template (mbox_id_t id, agent_t *single_consumer, const so_5::message_limit::impl::info_storage_t &limits_storage, Tracing_Args &&... tracing_args) |
|
virtual void | do_deliver_message (const std::type_index &msg_type, const message_ref_t &message, unsigned int overlimit_reaction_deep) const override |
| Deliver message for all subscribers with respect to message limits. More...
|
|
virtual void | do_deliver_service_request (const std::type_index &msg_type, const message_ref_t &message, unsigned int overlimit_reaction_deep) const override |
| Deliver service request. More...
|
|
void | do_deliver_enveloped_msg (const std::type_index &msg_type, const message_ref_t &message, unsigned int overlimit_reaction_deep) override |
| Deliver enveloped message. More...
|
|
template<typename... Tracing_Args> |
| limitless_mpsc_mbox_template (mbox_id_t id, agent_t *single_consumer, Tracing_Args &&... tracing_args) |
|
virtual mbox_id_t | id () const override |
| Unique ID of this mbox. More...
|
|
virtual void | subscribe_event_handler (const std::type_index &, const message_limit::control_block_t *, agent_t *subscriber) override |
| Add the message handler. More...
|
|
virtual void | unsubscribe_event_handlers (const std::type_index &, agent_t *subscriber) override |
| Remove all message handlers. More...
|
|
virtual std::string | query_name () const override |
| Get the mbox name. More...
|
|
virtual mbox_type_t | type () const override |
| Get the type of message box. More...
|
|
virtual void | set_delivery_filter (const std::type_index &, const delivery_filter_t &, agent_t &) override |
|
virtual void | drop_delivery_filter (const std::type_index &, agent_t &) SO_5_NOEXCEPT override |
| Removes delivery filter for message type and subscriber. More...
|
|
| abstract_message_box_t ()=default |
|
virtual | ~abstract_message_box_t () SO_5_NOEXCEPT=default |
|
template<class Message > |
void | deliver_message (std::type_index subscription_type, const intrusive_ptr_t< Message > &msg_ref) const |
| Deliver message. More...
|
|
template<class Message > |
void | deliver_message (const intrusive_ptr_t< Message > &msg_ref) const |
| Deliver message. More...
|
|
template<class Message > |
void | deliver_message (std::type_index subscription_type, std::unique_ptr< Message > msg_unique_ptr, message_mutability_t mutability) const |
| Deliver message. More...
|
|
template<class Message > |
void | deliver_message (std::unique_ptr< Message > msg_unique_ptr) const |
| Deliver message. More...
|
|
template<class Message > |
void | deliver_message (Message *msg_raw_ptr) const |
| Deliver message. More...
|
|
template<class Message > |
void | deliver_signal () const |
| Deliver signal. More...
|
|
template<class Result > |
service_invoke_proxy_t< Result > | get_one () |
| Create a special proxy for service request invocation. More...
|
|
service_invoke_proxy_t< void > | run_one () |
| Create a special proxy for service request invocation where return type is void. More...
|
|
void | deliver_message (const std::type_index &msg_type, const message_ref_t &message) const |
| Deliver message for all subscribers. More...
|
|
void | deliver_service_request (const std::type_index &msg_type, const message_ref_t &message) const |
| Deliver service request. More...
|
|
bool | operator== (const abstract_message_box_t &o) const SO_5_NOEXCEPT |
|
bool | operator< (const abstract_message_box_t &o) const SO_5_NOEXCEPT |
|
template<typename Tracing_Base>
class so_5::impl::limitful_mpsc_mbox_template< Tracing_Base >
A multi-producer/single-consumer mbox with message limit control.
- Since
- v.5.5.4
- Note
- Renamed from limitful_mpsc_mbox_t to limitful_mpsc_mbox_template in v.5.5.9.
- Attention
- Stores a reference to message limits storage. Because of that this reference must remains correct till the end of the mbox's lifetime.