![]() |
The Gaudi Framework
v41r0 (bdbe7744)
|
Extend IEventProcessor for asynchronous scheduling of events via queue-like interface. More...
#include </builds/gaudi/Gaudi/GaudiKernel/include/Gaudi/Interfaces/IQueueingEventProcessor.h>


Public Types | |
| using | ResultType = std::tuple<StatusCode, EventContext> |
| Type of objects in the output queue. | |
| Public Types inherited from IInterface | |
| enum class | Status : StatusCode::code_t { FAILURE = 0 , SUCCESS = 1 , NO_INTERFACE , VERSMISMATCH , LAST_ERROR } |
| Return status. More... | |
| using | iid = Gaudi::InterfaceId<IInterface, 0, 0> |
| Interface ID. | |
| using | ext_iids = Gaudi::interface_list<iid> |
| Extra interfaces. | |
Public Member Functions | |
| DeclareInterfaceID (IQueueingEventProcessor, 1, 0) | |
| virtual void | push (EventContext &&ctx)=0 |
| Schedule the processing of an event. | |
| virtual bool | empty () const =0 |
| Tell if the processor has events in the queues. | |
| virtual std::optional< ResultType > | pop ()=0 |
| Get the next available result. | |
| Public Member Functions inherited from IEventProcessor | |
| DeclareInterfaceID (IEventProcessor, 4, 0) | |
| InterfaceID. | |
| virtual EventContext | createEventContext ()=0 |
| virtual StatusCode | executeEvent (EventContext &&ctx)=0 |
| Process single event. | |
| virtual StatusCode | executeRun (int maxevt)=0 |
| Process the maxevt events as a Run. | |
| virtual StatusCode | nextEvent (int maxevt)=0 |
| Process the next maxevt events. | |
| virtual StatusCode | stopRun ()=0 |
| Schedule a stop of the current event processing. | |
| Public Member Functions inherited from IInterface | |
| template<Gaudi::IsInterface TARGET> | |
| TARGET * | cast () |
| template<Gaudi::IsInterface TARGET> | |
| TARGET const * | cast () const |
| template<typename TARGET> requires ( !Gaudi::IsInterface<TARGET> ) | |
| TARGET * | cast () |
| template<typename TARGET> requires ( !Gaudi::IsInterface<TARGET> ) | |
| TARGET const * | cast () const |
| virtual std::vector< std::string > | getInterfaceNames () const =0 |
| Returns a vector of strings containing the names of all the implemented interfaces. | |
| virtual unsigned long | addRef () const =0 |
| Increment the reference count of Interface instance. | |
| virtual unsigned long | release () const =0 |
| Release Interface instance. | |
| virtual unsigned long | refCount () const =0 |
| Current reference count. | |
| virtual StatusCode | queryInterface (const InterfaceID &ti, void **pp)=0 |
| Set the void** to the pointer to the requested interface of the instance. | |
| virtual | ~IInterface ()=default |
| Virtual destructor. | |
| virtual void const * | i_cast (const InterfaceID &) const =0 |
| void * | i_cast (const InterfaceID &iidiid) |
Additional Inherited Members | |
| Static Public Member Functions inherited from IInterface | |
| static const InterfaceID & | interfaceID () |
| Return an instance of InterfaceID identifying the interface. | |
| Protected Member Functions inherited from IInterface | |
| virtual unsigned long | decRef () const =0 |
| Decrement reference count and return the new reference count. | |
Extend IEventProcessor for asynchronous scheduling of events via queue-like interface.
Definition at line 21 of file IQueueingEventProcessor.h.
| using Gaudi::Interfaces::IQueueingEventProcessor::ResultType = std::tuple<StatusCode, EventContext> |
Type of objects in the output queue.
Definition at line 25 of file IQueueingEventProcessor.h.
| Gaudi::Interfaces::IQueueingEventProcessor::DeclareInterfaceID | ( | IQueueingEventProcessor | , |
| 1 | , | ||
| 0 | ) |
|
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).
|
pure virtual |
Get the next available result.
If none is available, return std::nullopt.
|
pure virtual |
Schedule the processing of an event.
May block, depending on the concrete implementation.