![]() |
The Gaudi Framework
v27r0
|
This SchedulerSvc implements the IScheduler interface. More...
#include <src/SequentialSchedulerSvc.h>


Public Member Functions | |
| SequentialSchedulerSvc (const std::string &name, ISvcLocator *svc) | |
| Constructor. More... | |
| ~SequentialSchedulerSvc () | |
| Destructor. More... | |
| virtual StatusCode | initialize () |
| Initialise. More... | |
| virtual StatusCode | finalize () |
| Finalise. More... | |
| virtual StatusCode | pushNewEvent (EventContext *eventContext) |
| Make an event available to the scheduler. More... | |
| virtual StatusCode | pushNewEvents (std::vector< EventContext * > &eventContexts) |
| virtual StatusCode | popFinishedEvent (EventContext *&eventContext) |
| Blocks until an event is availble. More... | |
| virtual StatusCode | tryPopFinishedEvent (EventContext *&eventContext) |
| Try to fetch an event from the scheduler. More... | |
| virtual unsigned int | freeSlots () |
| Get free slots number. More... | |
Public Member Functions inherited from extends< BASE, Interfaces > | |
| void * | i_cast (const InterfaceID &tid) const override |
| Implementation of IInterface::i_cast. More... | |
| StatusCode | queryInterface (const InterfaceID &ti, void **pp) override |
| Implementation of IInterface::queryInterface. More... | |
| std::vector< std::string > | getInterfaceNames () const override |
| Implementation of IInterface::getInterfaceNames. More... | |
| ~extends () override=default | |
| Virtual destructor. More... | |
| void * | i_cast (const InterfaceID &tid) const override |
| Implementation of IInterface::i_cast. More... | |
| StatusCode | queryInterface (const InterfaceID &ti, void **pp) override |
| Implementation of IInterface::queryInterface. More... | |
| std::vector< std::string > | getInterfaceNames () const override |
| Implementation of IInterface::getInterfaceNames. More... | |
| ~extends () override=default | |
| Virtual destructor. More... | |
Public Member Functions inherited from extend_interfaces< Interfaces...> | |
| ~extend_interfaces () override=default | |
| Virtual destructor. More... | |
| ~extend_interfaces () override=default | |
| Virtual destructor. More... | |
Private Attributes | |
| bool | m_useTopAlgList |
| Decide if the top alglist or its flat version has to be used. More... | |
| std::list< IAlgorithm * > | m_algList |
| Cache the list of algs to be executed. More... | |
| EventContext * | m_eventContext |
| The context of the event being processed. More... | |
| int | m_freeSlots |
| The number of free slots (0 or 1) More... | |
Additional Inherited Members | |
Public Types inherited from extends< BASE, Interfaces > | |
| using | base_class = extends |
| Typedef to this class. More... | |
| using | extend_interfaces_base = extend_interfaces< Interfaces...> |
| Typedef to the base of this class. More... | |
| using | base_class = extends |
| Typedef to this class. More... | |
| using | extend_interfaces_base = extend_interfaces< Interfaces...> |
| Typedef to the base of this class. More... | |
Public Types inherited from extend_interfaces< Interfaces...> | |
| using | ext_iids = typename Gaudi::interface_list_cat< typename Interfaces::ext_iids...>::type |
| take union of the ext_iids of all Interfaces... More... | |
| using | ext_iids = typename Gaudi::interface_list_cat< typename Interfaces::ext_iids...>::type |
| take union of the ext_iids of all Interfaces... More... | |
This SchedulerSvc implements the IScheduler interface.
It executes all the algorithms in sequence, pulling them from the AlgResourcePool. No task level parallelism is involved. Given its sequential nature, the scheduler does not run in its own thread. It has therefore to be treated a as a THREAD UNSAFE and NON REENTRANT entity.
Definition at line 36 of file SequentialSchedulerSvc.h.
| SequentialSchedulerSvc::SequentialSchedulerSvc | ( | const std::string & | name, |
| ISvcLocator * | svc | ||
| ) |
Constructor.
Definition at line 23 of file SequentialSchedulerSvc.cpp.
| SequentialSchedulerSvc::~SequentialSchedulerSvc | ( | ) |
|
virtual |
Finalise.
Definition at line 57 of file SequentialSchedulerSvc.cpp.
|
virtual |
Get free slots number.
Given that the scheduler is sequential and its methods non reentrant, this is always 1.
Definition at line 173 of file SequentialSchedulerSvc.cpp.
|
virtual |
Initialise.
Definition at line 34 of file SequentialSchedulerSvc.cpp.
|
virtual |
Blocks until an event is availble.
Definition at line 154 of file SequentialSchedulerSvc.cpp.
|
virtual |
Make an event available to the scheduler.
Immediately the algortihms are executed.
Definition at line 69 of file SequentialSchedulerSvc.cpp.
|
virtual |
Definition at line 143 of file SequentialSchedulerSvc.cpp.
|
virtual |
Try to fetch an event from the scheduler.
The scheduler is sequential.
Therefore pop and try/pop are factually the same.
Definition at line 165 of file SequentialSchedulerSvc.cpp.
|
private |
Cache the list of algs to be executed.
Definition at line 72 of file SequentialSchedulerSvc.h.
|
private |
The context of the event being processed.
Definition at line 75 of file SequentialSchedulerSvc.h.
|
private |
The number of free slots (0 or 1)
Definition at line 78 of file SequentialSchedulerSvc.h.
|
private |
Decide if the top alglist or its flat version has to be used.
Definition at line 69 of file SequentialSchedulerSvc.h.