Loading [MathJax]/extensions/tex2jax.js
The Gaudi Framework  v31r0 (aeb156f0)
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
IScheduler.h
Go to the documentation of this file.
1 #ifndef GAUDIKERNEL_ISCHEDULER_H
2 #define GAUDIKERNEL_ISCHEDULER_H
3 
4 // Framework include files
7 
8 // C++ include files
9 #include <functional>
10 #include <vector>
11 
20 class GAUDI_API IScheduler : virtual public IInterface {
21 public:
24 
26  virtual StatusCode pushNewEvent( EventContext* eventContext ) = 0;
27 
30  virtual StatusCode pushNewEvents( std::vector<EventContext*>& eventContexts ) = 0;
31 
33  virtual StatusCode popFinishedEvent( EventContext*& eventContext ) = 0;
34 
36  virtual StatusCode tryPopFinishedEvent( EventContext*& eventContext ) = 0;
37 
39  virtual unsigned int freeSlots() = 0;
40 
41  virtual void dumpState(){};
42 
44  virtual StatusCode scheduleEventView( const EventContext* sourceContext, const std::string& nodeName,
45  std::unique_ptr<EventContext> viewContext ) = 0;
46 };
47 #endif
virtual void dumpState()
Definition: IScheduler.h:41
This class represents an entry point to all the event specific data.
Definition: EventContext.h:31
STL class.
General interface for algorithm scheduler.
Definition: IScheduler.h:20
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:50
#define DeclareInterfaceID(iface, major, minor)
Macro to declare the interface ID when using the new mechanism of extending and implementing interfac...
Definition: IInterface.h:13
Definition of the basic interface.
Definition: IInterface.h:244
STL class.
#define GAUDI_API
Definition: Kernel.h:71