The Gaudi Framework  v29r0 (ff2e7097)
ExecutionFlowManager.cpp
Go to the documentation of this file.
1 #include "ExecutionFlowManager.h"
2 
3 namespace concurrency
4 {
5 
6  namespace recursive_CF
7  {
8 
9  //---------------------------------------------------------------------------
11  const std::unordered_map<std::string, unsigned int>& algname_index_map )
12  {
13  m_CFGraph = graph;
14  graph->initialize( algname_index_map );
15  }
16 
18  std::vector<int>& node_decisions ) const
19  {
20  m_CFGraph->updateEventState( algo_states, node_decisions );
21  }
22 
23  //---------------------------------------------------------------------------
25  {
26 
27  return ( -1 != node_decisions[m_CFGraph->getHeadNode()->getNodeIndex()] ) ? true : false;
28  }
29  }
30 }
ControlFlowGraph * m_CFGraph
the control flow graph
const unsigned int & getNodeIndex() const
Get node index.
void updateEventState(AlgsExecutionStates &states, std::vector< int > &node_decisions) const
Start revision of states and decisions.
The AlgsExecutionStates encodes the state machine for the execution of algorithms within a single eve...
DecisionNode * getHeadNode() const
Get head node.
void initialize(ControlFlowGraph *graph, 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...
void initialize(const std::unordered_map< std::string, unsigned int > &algname_index_map)
Initialize graph.
void updateEventState(AlgsExecutionStates &algo_states, std::vector< int > &node_decisions) const
Update states and decisions of algorithms.
bool rootDecisionResolved(const std::vector< int > &node_decisions) const
Check whether root decision was resolved.