| The Gaudi Framework v27r1

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | List of all members
concurrency::ControlFlowNode Class Referenceabstract

`#include <src/ExecutionFlowGraph.h>`

Inheritance diagram for concurrency::ControlFlowNode:
[legend]
Collaboration diagram for concurrency::ControlFlowNode:
[legend]

## Public Member Functions
| ControlFlowNode (ExecutionFlowGraph &graph, unsigned int nodeIndex, const std::string &name)
| Constructor. More...
virtual | ~ControlFlowNode ()
| Destructor. More...
virtual void | initialize (const std::unordered_map< std::string, unsigned int > &algname_index_map)=0
| Initialize. More...
virtual bool | accept (IGraphVisitor &visitor)=0
virtual bool | promoteToControlReadyState (const int &slotNum, AlgsExecutionStates &states, std::vector< int > &node_decisions) const =0
| XXX: CF tests. Method to set algos to CONTROLREADY, if possible. More...
virtual int | updateState (AlgsExecutionStates &states, std::vector< int > &node_decisions) const =0
| XXX: CF tests. Method to set algos to CONTROLREADY, if possible. More...
virtual void | printState (std::stringstream &output, AlgsExecutionStates &states, const std::vector< int > &node_decisions, const unsigned int &recursionLevel) const =0
| Print a string representing the control flow state. More...
const unsigned int & | getNodeIndex () const
| XXX: CF tests. More...
const std::string & | getNodeName () const
virtual void | updateDecision (const int &slotNum, AlgsExecutionStates &states, std::vector< int > &node_decisions, const AlgorithmNode *requestor=nullptr) const =0

## Public Attributes
ExecutionFlowGraph * | m_graph

## Protected Member Functions
std::string | stateToString (const int &stateId) const
| Translation between state id and name. More...

## Protected Attributes
unsigned int | m_nodeIndex
std::string | m_nodeName

## Detailed Description

Definition at line 46 of file ExecutionFlowGraph.h.

## Constructor & Destructor Documentation

concurrency::ControlFlowNode::ControlFlowNode | ( | ExecutionFlowGraph & | graph,
|  | unsigned int | nodeIndex,
|  | const std::string & | name
| ) |  |
| inline

Constructor.

Definition at line 49 of file ExecutionFlowGraph.h.

49 :
50 m_graph(&graph), m_nodeIndex(nodeIndex), m_nodeName(name) {};
concurrency::ControlFlowNode::m_graph
ExecutionFlowGraph * m_graph
Definition: ExecutionFlowGraph.h:77
plotSpeedupsPyRoot.graph
tuple graph
Definition: plotSpeedupsPyRoot.py:134
concurrency::ControlFlowNode::m_nodeIndex
unsigned int m_nodeIndex
Definition: ExecutionFlowGraph.h:81
concurrency::ControlFlowNode::m_nodeName
std::string m_nodeName
Definition: ExecutionFlowGraph.h:82

virtual concurrency::ControlFlowNode::~ControlFlowNode | ( |  | ) |
| inline virtual

Destructor.

Definition at line 52 of file ExecutionFlowGraph.h.

52 {};

## Member Function Documentation

virtual bool concurrency::ControlFlowNode::accept | ( | IGraphVisitor & | visitor | ) |
| pure virtual

Implemented in concurrency::AlgorithmNode, and concurrency::DecisionNode.

const unsigned int& concurrency::ControlFlowNode::getNodeIndex | ( |  | ) | const
| inline

XXX: CF tests.

Definition at line 70 of file ExecutionFlowGraph.h.

70 { return m_nodeIndex; }
concurrency::ControlFlowNode::m_nodeIndex
unsigned int m_nodeIndex
Definition: ExecutionFlowGraph.h:81

const std::string& concurrency::ControlFlowNode::getNodeName | ( |  | ) | const
| inline

Definition at line 71 of file ExecutionFlowGraph.h.

71 { return m_nodeName; }
concurrency::ControlFlowNode::m_nodeName
std::string m_nodeName
Definition: ExecutionFlowGraph.h:82

virtual void concurrency::ControlFlowNode::initialize | ( | const std::unordered_map< std::string, unsigned int > & | algname_index_map | ) |
| pure virtual

Initialize.

Implemented in concurrency::AlgorithmNode, and concurrency::DecisionNode.

virtual void concurrency::ControlFlowNode::printState | ( | std::stringstream & | output,
|  | AlgsExecutionStates & | states,
|  | const std::vector< int > & | node_decisions,
|  | const unsigned int & | recursionLevel
| ) |  | const
| pure virtual

Print a string representing the control flow state.

Implemented in concurrency::AlgorithmNode, and concurrency::DecisionNode.

virtual bool concurrency::ControlFlowNode::promoteToControlReadyState | ( | const int & | slotNum,
|  | AlgsExecutionStates & | states,
|  | std::vector< int > & | node_decisions
| ) |  | const
| pure virtual

XXX: CF tests. Method to set algos to CONTROLREADY, if possible.

Implemented in concurrency::AlgorithmNode, and concurrency::DecisionNode.

std::string concurrency::ControlFlowNode::stateToString | ( | const int & | stateId | ) | const
| protected

Translation between state id and name.

Definition at line 7 of file ExecutionFlowGraph.cpp.

7 {
8
9 if (0 == stateId ) return "FALSE";
10 else if (1 == stateId ) return "TRUE";
11 else return "UNDEFINED";
12 }

virtual void concurrency::ControlFlowNode::updateDecision | ( | const int & | slotNum,
|  | AlgsExecutionStates & | states,
|  | std::vector< int > & | node_decisions,
|  | const AlgorithmNode * | requestor = `nullptr`
| ) |  | const
| pure virtual

Implemented in concurrency::AlgorithmNode, and concurrency::DecisionNode.

virtual int concurrency::ControlFlowNode::updateState | ( | AlgsExecutionStates & | states,
|  | std::vector< int > & | node_decisions
| ) |  | const
| pure virtual

XXX: CF tests. Method to set algos to CONTROLREADY, if possible.

Implemented in concurrency::AlgorithmNode, and concurrency::DecisionNode.

## Member Data Documentation

ExecutionFlowGraph* concurrency::ControlFlowNode::m_graph

Definition at line 77 of file ExecutionFlowGraph.h.

unsigned int concurrency::ControlFlowNode::m_nodeIndex
| protected

Definition at line 81 of file ExecutionFlowGraph.h.

std::string concurrency::ControlFlowNode::m_nodeName
| protected

Definition at line 82 of file ExecutionFlowGraph.h.

The documentation for this class was generated from the following files:

- GaudiHive/src/ExecutionFlowGraph.h
- GaudiHive/src/ExecutionFlowGraph.cpp