1 #ifndef MARLINMT_ISCHEDULER_h 2 #define MARLINMT_ISCHEDULER_h 1 40 virtual void end() = 0 ;
54 virtual void pushEvent( std::shared_ptr<EventStore> event ) = 0 ;
61 virtual void popFinishedEvents( std::vector<std::shared_ptr<EventStore>> &events ) = 0 ;
66 virtual std::size_t
freeSlots()
const = 0 ;
IScheduler interface Interface for implementing a scheduling algorithm for event processing.
virtual void initialize() override
Initialize the scheduler.
virtual void processRunHeader(std::shared_ptr< RunHeader > rhdr)=0
Process a run header.
virtual void pushEvent(std::shared_ptr< EventStore > event)=0
Push a new event to the scheduler for processing.
virtual void end()=0
Terminate the scheduler activites Cleanup memory, etc ...
virtual void popFinishedEvents(std::vector< std::shared_ptr< EventStore >> &events)=0
Retrieve finished events from the scheduler.
virtual std::size_t freeSlots() const =0
Get the number of free event slots.
virtual ~IScheduler()=default