The Gaudi Framework  v36r6 (b1ee9983)
Gaudi::Interfaces::IQueueingEventProcessor Struct Referenceabstract

Extend IEventProcessor for asynchronous scheduling of events via queue-like interface. More...

#include </builds/gaudi/Gaudi/GaudiKernel/include/Gaudi/Interfaces/IQueueingEventProcessor.h>

Inheritance diagram for Gaudi::Interfaces::IQueueingEventProcessor:
Collaboration diagram for Gaudi::Interfaces::IQueueingEventProcessor:

Public Types

using ResultType = std::tuple< StatusCode, EventContext >
 Type of objects in the output queue. More...
 
- Public Types inherited from IInterface
enum  Status : StatusCode::code_t {
  Status::FAILURE = 0, Status::SUCCESS = 1, Status::NO_INTERFACE, Status::VERSMISMATCH,
  Status::LAST_ERROR
}
 Return status. More...
 
using iid = Gaudi::InterfaceId< IInterface, 0, 0 >
 Interface ID. More...
 
using ext_iids = Gaudi::interface_list< iid >
 Extra interfaces. More...
 

Public Member Functions

 DeclareInterfaceID (IQueueingEventProcessor, 1, 0)
 
virtual void push (EventContext &&ctx)=0
 Schedule the processing of an event. More...
 
virtual bool empty () const =0
 Tell if the processor has events in the queues. More...
 
virtual std::optional< ResultTypepop ()=0
 Get the next available result. More...
 
- Public Member Functions inherited from IEventProcessor
 DeclareInterfaceID (IEventProcessor, 4, 0)
 InterfaceID. More...
 
virtual EventContext createEventContext ()=0
 
virtual StatusCode executeEvent (EventContext &&ctx)=0
 Process single event. More...
 
virtual StatusCode executeRun (int maxevt)=0
 Process the maxevt events as a Run. More...
 
virtual StatusCode nextEvent (int maxevt)=0
 Process the next maxevt events. More...
 
virtual StatusCode stopRun ()=0
 Schedule a stop of the current event processing. More...
 
- Public Member Functions inherited from IInterface
virtual void * i_cast (const InterfaceID &) const =0
 main cast function More...
 
virtual std::vector< std::stringgetInterfaceNames () const =0
 Returns a vector of strings containing the names of all the implemented interfaces. More...
 
virtual unsigned long addRef ()=0
 Increment the reference count of Interface instance. More...
 
virtual unsigned long release ()=0
 Release Interface instance. More...
 
virtual unsigned long refCount () const =0
 Current reference count. More...
 
virtual StatusCode queryInterface (const InterfaceID &ti, void **pp)=0
 Set the void** to the pointer to the requested interface of the instance. More...
 
virtual ~IInterface ()=default
 Virtual destructor. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from IInterface
static const InterfaceIDinterfaceID ()
 Return an instance of InterfaceID identifying the interface. More...
 

Detailed Description

Extend IEventProcessor for asynchronous scheduling of events via queue-like interface.

Definition at line 21 of file IQueueingEventProcessor.h.

Member Typedef Documentation

◆ ResultType

Type of objects in the output queue.

Definition at line 25 of file IQueueingEventProcessor.h.

Member Function Documentation

◆ DeclareInterfaceID()

Gaudi::Interfaces::IQueueingEventProcessor::DeclareInterfaceID ( IQueueingEventProcessor  ,
,
 
)

◆ empty()

virtual bool Gaudi::Interfaces::IQueueingEventProcessor::empty ( ) const
pure virtual

Tell if the processor has events in the queues.

Useful to know when all the work has been done (including retrieving the results).

◆ pop()

virtual std::optional<ResultType> Gaudi::Interfaces::IQueueingEventProcessor::pop ( )
pure virtual

Get the next available result.

If none is available, return std::nullopt.

◆ push()

virtual void Gaudi::Interfaces::IQueueingEventProcessor::push ( EventContext &&  ctx)
pure virtual

Schedule the processing of an event.

May block, depending on the concrete implementation.


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