![]() |
The Gaudi Framework
v28r1
|
Manage the execution flow using an execution flow graph Once initialized, the graph is const and can be shared across events. More...
#include <GaudiHive/src/ExecutionFlowManager.h>
Public Member Functions | |
ExecutionFlowManager () | |
Constructor. More... | |
~ExecutionFlowManager () override=default | |
Destructor. More... | |
StatusCode | initialize (ExecutionFlowGraph *CFGraph, const std::unordered_map< std::string, unsigned int > &algname_index_map) |
Initialize the control flow manager It greps the topalg list and the index map for the algo names. More... | |
StatusCode | initialize (ExecutionFlowGraph *CFGraph, const std::unordered_map< std::string, unsigned int > &algname_index_map, std::vector< EventSlot > &eventSlots, const std::string &mode) |
void | simulateExecutionFlow (IGraphVisitor &visitor) const |
ExecutionFlowGraph * | getExecutionFlowGraph () const |
Get the flow graph instance. More... | |
bool | needsAlgorithmToRun (const unsigned int iAlgo) const |
A little bit silly, but who cares. ;-) More... | |
void | updateEventState (AlgsExecutionStates &algo_states, std::vector< int > &node_decisions) const |
Update the state of algorithms to controlready, where possible. More... | |
void | updateDecision (const std::string &algo_name, const int &slotNum, AlgsExecutionStates &states, std::vector< int > &node_decisions) const |
void | updateEventState (AlgsExecutionStates &algo_states) const |
XXX: CF tests. More... | |
void | promoteToControlReadyState (AlgsExecutionStates &algo_states, std::vector< int > &node_decisions, const int &slotNum=-1) const |
XXX: CF tests. More... | |
bool | algoDataDependenciesSatisfied (const std::string &algo_name, const int &slotNum) const |
Check all data dependencies of an algorithm are satisfied. More... | |
bool | rootDecisionResolved (const std::vector< int > &node_decisions) const |
Check whether root decision was resolved. More... | |
void | printEventState (std::stringstream &ss, AlgsExecutionStates &states, const std::vector< int > &node_decisions, const unsigned int &recursionLevel) const |
Print the state of the control flow for a given event. More... | |
void | touchReadyAlgorithms (IGraphVisitor &visitor) const |
Promote all algorithms, ready to be executed, to DataReady state. More... | |
const std::string & | name () const override |
Retrieve name of the service. More... | |
SmartIF< ISvcLocator > & | serviceLocator () const override |
Retrieve pointer to service locator. More... | |
![]() | |
virtual | ~CommonMessagingBase ()=default |
Virtual destructor. More... | |
SmartIF< IMessageSvc > & | msgSvc () const |
The standard message service. More... | |
MsgStream & | msgStream () const |
Return an uninitialized MsgStream. More... | |
MsgStream & | msgStream (const MSG::Level level) const |
Predefined configurable message stream for the efficient printouts. More... | |
MsgStream & | always () const |
shortcut for the method msgStream(MSG::ALWAYS) More... | |
MsgStream & | fatal () const |
shortcut for the method msgStream(MSG::FATAL) More... | |
MsgStream & | err () const |
shortcut for the method msgStream(MSG::ERROR) More... | |
MsgStream & | error () const |
shortcut for the method msgStream(MSG::ERROR) More... | |
MsgStream & | warning () const |
shortcut for the method msgStream(MSG::WARNING) More... | |
MsgStream & | info () const |
shortcut for the method msgStream(MSG::INFO) More... | |
MsgStream & | debug () const |
shortcut for the method msgStream(MSG::DEBUG) More... | |
MsgStream & | verbose () const |
shortcut for the method msgStream(MSG::VERBOSE) More... | |
MsgStream & | msg () const |
shortcut for the method msgStream(MSG::INFO) More... | |
MSG::Level | msgLevel () const |
get the output level from the embedded MsgStream More... | |
MSG::Level | outputLevel () const __attribute__((deprecated)) |
Backward compatibility function for getting the output level. More... | |
bool | msgLevel (MSG::Level lvl) const |
get the output level from the embedded MsgStream More... | |
Private Attributes | |
std::string | m_name |
ExecutionFlowGraph * | m_EFGraph |
the control flow graph More... | |
Additional Inherited Members | |
![]() | |
using | base_class = CommonMessaging |
![]() | |
void | updateMsgStreamOutputLevel (int level) |
Update the output level of the cached MsgStream. More... | |
Manage the execution flow using an execution flow graph Once initialized, the graph is const and can be shared across events.
Definition at line 21 of file ExecutionFlowManager.h.
|
inline |
Constructor.
Definition at line 24 of file ExecutionFlowManager.h.
|
overridedefault |
Destructor.
bool concurrency::ExecutionFlowManager::algoDataDependenciesSatisfied | ( | const std::string & | algo_name, |
const int & | slotNum | ||
) | const |
Check all data dependencies of an algorithm are satisfied.
Definition at line 116 of file ExecutionFlowManager.cpp.
|
inline |
Get the flow graph instance.
Definition at line 38 of file ExecutionFlowManager.h.
StatusCode concurrency::ExecutionFlowManager::initialize | ( | ExecutionFlowGraph * | CFGraph, |
const std::unordered_map< std::string, unsigned int > & | algname_index_map | ||
) |
Initialize the control flow manager It greps the topalg list and the index map for the algo names.
Definition at line 6 of file ExecutionFlowManager.cpp.
StatusCode concurrency::ExecutionFlowManager::initialize | ( | ExecutionFlowGraph * | CFGraph, |
const std::unordered_map< std::string, unsigned int > & | algname_index_map, | ||
std::vector< EventSlot > & | eventSlots, | ||
const std::string & | mode | ||
) |
Definition at line 17 of file ExecutionFlowManager.cpp.
|
inlineoverride |
bool concurrency::ExecutionFlowManager::needsAlgorithmToRun | ( | const unsigned int | iAlgo | ) | const |
A little bit silly, but who cares. ;-)
|
inline |
Print the state of the control flow for a given event.
Definition at line 60 of file ExecutionFlowManager.h.
void concurrency::ExecutionFlowManager::promoteToControlReadyState | ( | AlgsExecutionStates & | algo_states, |
std::vector< int > & | node_decisions, | ||
const int & | slotNum = -1 |
||
) | const |
XXX: CF tests.
Definition at line 109 of file ExecutionFlowManager.cpp.
bool concurrency::ExecutionFlowManager::rootDecisionResolved | ( | const std::vector< int > & | node_decisions | ) | const |
Check whether root decision was resolved.
Definition at line 121 of file ExecutionFlowManager.cpp.
|
inlineoverride |
Retrieve pointer to service locator.
Definition at line 69 of file ExecutionFlowManager.h.
void concurrency::ExecutionFlowManager::simulateExecutionFlow | ( | IGraphVisitor & | visitor | ) | const |
Definition at line 53 of file ExecutionFlowManager.cpp.
void concurrency::ExecutionFlowManager::touchReadyAlgorithms | ( | IGraphVisitor & | visitor | ) | const |
Promote all algorithms, ready to be executed, to DataReady state.
Definition at line 127 of file ExecutionFlowManager.cpp.
void concurrency::ExecutionFlowManager::updateDecision | ( | const std::string & | algo_name, |
const int & | slotNum, | ||
AlgsExecutionStates & | states, | ||
std::vector< int > & | node_decisions | ||
) | const |
Definition at line 101 of file ExecutionFlowManager.cpp.
void concurrency::ExecutionFlowManager::updateEventState | ( | AlgsExecutionStates & | algo_states, |
std::vector< int > & | node_decisions | ||
) | const |
Update the state of algorithms to controlready, where possible.
Definition at line 95 of file ExecutionFlowManager.cpp.
void concurrency::ExecutionFlowManager::updateEventState | ( | AlgsExecutionStates & | algo_states | ) | const |
XXX: CF tests.
|
private |
the control flow graph
Definition at line 73 of file ExecutionFlowManager.h.
|
private |
Definition at line 71 of file ExecutionFlowManager.h.