The Gaudi Framework  master (37c0b60a)
IQueueingEventProcessor.h
Go to the documentation of this file.
1 /***********************************************************************************\
2 * (c) Copyright 1998-2019 CERN for the benefit of the LHCb and ATLAS collaborations *
3 * *
4 * This software is distributed under the terms of the Apache version 2 licence, *
5 * copied verbatim in the file "LICENSE". *
6 * *
7 * In applying this licence, CERN does not waive the privileges and immunities *
8 * granted to it by virtue of its status as an Intergovernmental Organization *
9 * or submit itself to any jurisdiction. *
10 \***********************************************************************************/
11 #pragma once
12 
15 #include <GaudiKernel/StatusCode.h>
16 #include <optional>
17 #include <tuple>
18 
19 namespace Gaudi::Interfaces {
23 
26 
29  virtual void push( EventContext&& ctx ) = 0;
30 
33  virtual bool empty() const = 0;
34 
37  virtual std::optional<ResultType> pop() = 0;
38  };
39 } // namespace Gaudi::Interfaces
IEventProcessor
Definition: IEventProcessor.h:24
Gaudi::Interfaces::IQueueingEventProcessor::DeclareInterfaceID
DeclareInterfaceID(IQueueingEventProcessor, 1, 0)
Gaudi::Interfaces::IQueueingEventProcessor::pop
virtual std::optional< ResultType > pop()=0
Get the next available result.
Gaudi::Interfaces
Definition: IFileSvc.h:20
std::tuple
StatusCode.h
GaudiPython.Pythonizations.ctx
ctx
Definition: Pythonizations.py:578
Gaudi::Interfaces::IQueueingEventProcessor::push
virtual void push(EventContext &&ctx)=0
Schedule the processing of an event.
EventContext.h
EventContext
Definition: EventContext.h:34
Gaudi::Interfaces::IQueueingEventProcessor
Extend IEventProcessor for asynchronous scheduling of events via queue-like interface.
Definition: IQueueingEventProcessor.h:21
Gaudi::Interfaces::IQueueingEventProcessor::empty
virtual bool empty() const =0
Tell if the processor has events in the queues.
IEventProcessor.h