The Gaudi Framework  v32r2 (46d42edc)
IQueueingEventProcessor.h
Go to the documentation of this file.
1 #pragma once
2 
6 #include <optional>
7 #include <tuple>
8 
9 namespace Gaudi::Interfaces {
13 
16 
19  virtual void push( EventContext&& ctx ) = 0;
20 
23  virtual bool empty() const = 0;
24 
27  virtual std::optional<ResultType> pop() = 0;
28  };
29 } // namespace Gaudi::Interfaces
Extend IEventProcessor for asynchronous scheduling of events via queue-like interface.
This class represents an entry point to all the event specific data.
Definition: EventContext.h:24
virtual bool empty() const =0
Tell if the processor has events in the queues.
DeclareInterfaceID(IQueueingEventProcessor, 1, 0)
virtual std::optional< ResultType > pop()=0
Get the next available result.
virtual void push(EventContext &&ctx)=0
Schedule the processing of an event.
The IEventProcessor is the interface to process events.