Loading [MathJax]/extensions/tex2jax.js
The Gaudi Framework  v28r2p1 (f1a77ff4)
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
concurrency::ControlFlowNode Class Referenceabstract

#include <src/PrecedenceRulesGraph.h>

Inheritance diagram for concurrency::ControlFlowNode:
Collaboration diagram for concurrency::ControlFlowNode:

Public Member Functions

 ControlFlowNode (PrecedenceRulesGraph &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::stringgetNodeName () const
 
virtual void updateDecision (const int &slotNum, AlgsExecutionStates &states, std::vector< int > &node_decisions, const AlgorithmNode *requestor=nullptr) const =0
 

Public Attributes

PrecedenceRulesGraphm_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 PrecedenceRulesGraph.h.

Constructor & Destructor Documentation

concurrency::ControlFlowNode::ControlFlowNode ( PrecedenceRulesGraph graph,
unsigned int  nodeIndex,
const std::string name 
)
inline

Constructor.

Definition at line 49 of file PrecedenceRulesGraph.h.

virtual concurrency::ControlFlowNode::~ControlFlowNode ( )
inlinevirtual

Destructor.

Definition at line 52 of file PrecedenceRulesGraph.h.

52 {}

Member Function Documentation

virtual bool concurrency::ControlFlowNode::accept ( IGraphVisitor visitor)
pure virtual
const unsigned int& concurrency::ControlFlowNode::getNodeIndex ( ) const
inline

XXX: CF tests.

Definition at line 70 of file PrecedenceRulesGraph.h.

70 { return m_nodeIndex; }
const std::string& concurrency::ControlFlowNode::getNodeName ( ) const
inline

Definition at line 71 of file PrecedenceRulesGraph.h.

71 { return m_nodeName; }
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 ControlFlowNode::stateToString ( const int &  stateId) const
protected

Translation between state id and name.

Definition at line 10 of file PrecedenceRulesGraph.cpp.

11  {
12 
13  if ( 0 == stateId )
14  return "FALSE";
15  else if ( 1 == stateId )
16  return "TRUE";
17  else
18  return "UNDEFINED";
19  }
virtual void concurrency::ControlFlowNode::updateDecision ( const int &  slotNum,
AlgsExecutionStates states,
std::vector< int > &  node_decisions,
const AlgorithmNode requestor = nullptr 
) const
pure virtual
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

PrecedenceRulesGraph* concurrency::ControlFlowNode::m_graph

Definition at line 77 of file PrecedenceRulesGraph.h.

unsigned int concurrency::ControlFlowNode::m_nodeIndex
protected

Definition at line 81 of file PrecedenceRulesGraph.h.

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

Definition at line 82 of file PrecedenceRulesGraph.h.


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