SObjectizer  5.8
Loading...
Searching...
No Matches
so_5::event_queue_t Class Referenceabstract

An interface of event queue for agent. More...

#include <event_queue.hpp>

Inheritance diagram for so_5::event_queue_t:
so_5::disp::adv_thread_pool::impl::agent_queue_t so_5::disp::nef_one_thread::impl::agent_queue_t so_5::disp::prio_one_thread::quoted_round_robin::impl::demand_queue_t::queue_for_one_priority_t so_5::disp::prio_one_thread::strictly_ordered::impl::demand_queue_t::queue_for_one_priority_t so_5::disp::reuse::work_thread::demand_queue_details::queue_template_t< Impl > so_5::disp::thread_pool::impl::basic_event_queue_t so_5::env_infrastructures::simple_mtsafe::impl::event_queue_impl_t so_5::env_infrastructures::simple_not_mtsafe::impl::event_queue_impl_t so_5::experimental::testing::v1::impl::special_event_queue_t

Public Member Functions

 event_queue_t ()=default
 
virtual ~event_queue_t () noexcept=default
 
virtual void push (execution_demand_t demand)=0
 Enqueue new event to the queue.
 
virtual void push_evt_start (execution_demand_t demand)=0
 Enqueue a demand for evt_start event.
 
virtual void push_evt_finish (execution_demand_t demand) noexcept=0
 Enqueue a demand for evt_finish event.
 

Private Member Functions

 event_queue_t (const event_queue_t &)=delete
 
 event_queue_t (event_queue_t &&)=delete
 
event_queue_toperator= (const event_queue_t &)=delete
 
event_queue_toperator= (event_queue_t &&)=delete
 

Detailed Description

An interface of event queue for agent.

Since
v.5.4.0

Definition at line 26 of file event_queue.hpp.

Constructor & Destructor Documentation

◆ event_queue_t() [1/3]

so_5::event_queue_t::event_queue_t ( const event_queue_t & )
privatedelete

◆ event_queue_t() [2/3]

so_5::event_queue_t::event_queue_t ( event_queue_t && )
privatedelete

◆ event_queue_t() [3/3]

so_5::event_queue_t::event_queue_t ( )
default

◆ ~event_queue_t()

virtual so_5::event_queue_t::~event_queue_t ( )
virtualdefaultnoexcept

Member Function Documentation

◆ operator=() [1/2]

event_queue_t & so_5::event_queue_t::operator= ( const event_queue_t & )
privatedelete

◆ operator=() [2/2]

event_queue_t & so_5::event_queue_t::operator= ( event_queue_t && )
privatedelete

◆ push()

◆ push_evt_finish()

virtual void so_5::event_queue_t::push_evt_finish ( execution_demand_t demand)
pure virtualnoexcept

Enqueue a demand for evt_finish event.

The last event for an agent is evt_finish event. Since v.5.8.0 a demand for the last event is pushed to agent's event_queue via this method. The ordinal push() method is used for all other demands except the evt_start and evt_finish demands.

Note
This method it expected to be noexcept, but if it can't be implemented for a particular dispatcher then a call to std::terminate() is appropriate on exception. Because the normal work can't be continued anyway.
Since
v.5.8.0

Implemented in so_5::disp::adv_thread_pool::impl::agent_queue_t, so_5::disp::nef_one_thread::impl::agent_queue_t, so_5::disp::nef_thread_pool::impl::agent_queue_with_preallocated_finish_demand_t, so_5::disp::prio_one_thread::quoted_round_robin::impl::demand_queue_t::queue_for_one_priority_t, so_5::disp::prio_one_thread::strictly_ordered::impl::demand_queue_t::queue_for_one_priority_t, so_5::disp::reuse::work_thread::demand_queue_details::queue_template_t< Impl >, so_5::disp::thread_pool::impl::basic_event_queue_t, so_5::env_infrastructures::simple_mtsafe::impl::event_queue_impl_t, so_5::env_infrastructures::simple_not_mtsafe::impl::event_queue_impl_t, and so_5::experimental::testing::v1::impl::special_event_queue_t.

◆ push_evt_start()

virtual void so_5::event_queue_t::push_evt_start ( execution_demand_t demand)
pure virtual

The documentation for this class was generated from the following file: