|
SObjectizer
5.5
|
A multi-producer/single-consumer mbox definition. More...
#include <mpsc_mbox.hpp>
Public Member Functions | |
| template<typename... Tracing_Args> | |
| limitless_mpsc_mbox_template (mbox_id_t id, agent_t *single_consumer, Tracing_Args &&... tracing_args) | |
| mbox_id_t | id () const override |
| Unique ID of this mbox. More... | |
| void | subscribe_event_handler (const std::type_index &, const message_limit::control_block_t *, agent_t &subscriber) override |
| Add the message handler. More... | |
| void | unsubscribe_event_handlers (const std::type_index &, agent_t &subscriber) override |
| Remove all message handlers. More... | |
| std::string | query_name () const override |
| Get the mbox name. More... | |
| mbox_type_t | type () const override |
| Get the type of message box. More... | |
| void | do_deliver_message (const std::type_index &msg_type, const message_ref_t &message, unsigned int overlimit_reaction_deep) override |
| Deliver message for all subscribers with respect to message limits. More... | |
| void | set_delivery_filter (const std::type_index &, const delivery_filter_t &, agent_t &) override |
| void | drop_delivery_filter (const std::type_index &, agent_t &) noexcept override |
| Removes delivery filter for message type and subscriber. More... | |
| environment_t & | environment () const noexcept override |
| SObjectizer Environment for which the mbox is created. More... | |
Protected Member Functions | |
| template<typename L > | |
| void | do_delivery (typename Tracing_Base::deliver_op_tracer const &tracer, L l) |
| Helper method to do delivery actions under locked object. More... | |
Protected Member Functions inherited from so_5::atomic_refcounted_t | |
| atomic_refcounted_t (const atomic_refcounted_t &)=delete | |
| atomic_refcounted_t & | operator= (const atomic_refcounted_t &)=delete |
| atomic_refcounted_t () noexcept | |
| Default constructor. More... | |
| ~atomic_refcounted_t () noexcept=default | |
| Destructor. More... | |
| void | inc_ref_count () noexcept |
| Increments reference count. More... | |
| unsigned long | dec_ref_count () noexcept |
| Decrement reference count. More... | |
Protected Attributes | |
| const mbox_id_t | m_id |
| ID of this mbox. More... | |
| agent_t * | m_single_consumer |
| The only consumer of this mbox's messages. More... | |
| default_rw_spinlock_t | m_lock |
| Protection of object from modification. More... | |
| std::size_t | m_subscriptions_count = 0 |
| Number of active subscriptions. More... | |
Additional Inherited Members |
A multi-producer/single-consumer mbox definition.
|
inline |
|
inlineoverridevirtual |
Deliver message for all subscribers with respect to message limits.
Implements so_5::abstract_message_box_t.
Reimplemented in so_5::impl::limitful_mpsc_mbox_template< Tracing_Base >.
|
inlineprotected |
Helper method to do delivery actions under locked object.
| L | lambda with actual delivery actions. |
| tracer | Tracer object to log the case of abscense of subscriptions. |
| l | Lambda with actual delivery actions. |
|
inlineoverridevirtualnoexcept |
Removes delivery filter for message type and subscriber.
Implements so_5::abstract_message_box_t.
|
inlineoverridevirtualnoexcept |
SObjectizer Environment for which the mbox is created.
Implements so_5::abstract_message_box_t.
|
inlineoverridevirtual |
|
inlineoverridevirtual |
Get the mbox name.
Implements so_5::abstract_message_box_t.
|
inlineoverridevirtual |
Implements so_5::abstract_message_box_t.
|
inlineoverridevirtual |
Add the message handler.
Implements so_5::abstract_message_box_t.
|
inlineoverridevirtual |
Get the type of message box.
Implements so_5::abstract_message_box_t.
|
inlineoverridevirtual |
Remove all message handlers.
Implements so_5::abstract_message_box_t.
|
protected |
ID of this mbox.
|
protected |
Protection of object from modification.
|
protected |
The only consumer of this mbox's messages.
|
protected |
Number of active subscriptions.
1.8.14