![]() |
The Gaudi Framework
v27r0
|
#include <src/ExecutionFlowGraph.h>
Public Member Functions | |
AlgorithmNode (ExecutionFlowGraph &graph, unsigned int nodeIndex, const std::string &algoName, bool inverted, bool allPass) | |
Constructor. More... | |
~AlgorithmNode () | |
Destructor. More... | |
virtual void | initialize (const std::unordered_map< std::string, unsigned int > &algname_index_map) |
Initialize. More... | |
virtual bool | accept (IGraphVisitor &visitor) |
void | addParentNode (DecisionNode *node) |
XXX: CF tests. Method to add a parent node. More... | |
void | addSupplierNode (AlgorithmNode *node) |
Associate an AlgorithmNode, which is a data supplier for this one. More... | |
void | addConsumerNode (AlgorithmNode *node) |
Associate an AlgorithmNode, which is a data consumer of this one. More... | |
void | attachAlgorithm (IAlgorithm *ialgo) |
Attach Algorithm representative. More... | |
const std::vector< IAlgorithm * > & | getAlgorithmRepresentatives () const |
get Algorithm representatives More... | |
const std::vector< AlgorithmNode * > & | getSupplierNodes () const |
Get all supplier nodes. More... | |
const std::vector< AlgorithmNode * > & | getConsumerNodes () const |
Get all consumer nodes. More... | |
void | addOutputDataNode (DataNode *node) |
Associate an AlgorithmNode, which is a data supplier for this one. More... | |
void | addInputDataNode (DataNode *node) |
Associate an AlgorithmNode, which is a data consumer of this one. More... | |
const std::vector< DataNode * > & | getOutputDataNodes () const |
Get all supplier nodes. More... | |
const std::vector< DataNode * > & | getInputDataNodes () const |
Get all consumer nodes. More... | |
void | setRank (float &rank) |
Set Algorithm rank. More... | |
const float & | getRank () const |
Get Algorithm rank. More... | |
const unsigned int & | getAlgoIndex () const |
XXX: CF tests. More... | |
bool | dataDependenciesSatisfied (const int &slotNum) const |
Method to check whether the Algorithm has its all data dependency satisfied. More... | |
bool | dataDependenciesSatisfied (AlgsExecutionStates &states) const |
virtual int | updateState (AlgsExecutionStates &states, std::vector< int > &node_decisions) const |
Method to set algos to CONTROLREADY, if possible. More... | |
virtual bool | promoteToControlReadyState (const int &slotNum, AlgsExecutionStates &states, std::vector< int > &node_decisions) const |
XXX: CF tests. More... | |
bool | promoteToDataReadyState (const int &slotNum, const AlgorithmNode *requestor=nullptr) const |
virtual void | updateDecision (const int &slotNum, AlgsExecutionStates &states, std::vector< int > &node_decisions, const AlgorithmNode *requestor=nullptr) const |
XXX: CF tests. More... | |
virtual void | printState (std::stringstream &output, AlgsExecutionStates &states, const std::vector< int > &node_decisions, const unsigned int &recursionLevel) const |
Print a string representing the control flow state. More... | |
![]() | |
ControlFlowNode (ExecutionFlowGraph &graph, unsigned int nodeIndex, const std::string &name) | |
Constructor. More... | |
virtual | ~ControlFlowNode () |
Destructor. More... | |
const unsigned int & | getNodeIndex () const |
XXX: CF tests. More... | |
const std::string & | getNodeName () const |
Private Attributes | |
unsigned int | m_algoIndex |
The index of the algorithm. More... | |
std::string | m_algoName |
The name of the algorithm. More... | |
bool | m_inverted |
Whether the selection result is negated or not. More... | |
bool | m_allPass |
Whether the selection result is relevant or always "pass". More... | |
std::vector< DecisionNode * > | m_parents |
XXX: CF tests. More... | |
std::vector< AlgorithmNode * > | m_suppliers |
Vectors, used in data dependencies realm AlgorithmNodes that represent algorithms producing an input needed for the algorithm. More... | |
std::vector< AlgorithmNode * > | m_consumers |
AlgorithmNodes that represent algorithms which need the output of the algorithm. More... | |
std::vector< DataNode * > | m_outputs |
Vectors, used in augmented data dependencies realm Outputs of the algorithm, represented as DataNode's. More... | |
std::vector< DataNode * > | m_inputs |
Inputs of the algorithm, represented as DataNode's. More... | |
float | m_rank |
Algorithm rank of any kind. More... | |
std::vector< IAlgorithm * > | m_representatives |
Representatives (including clones) of the node. More... | |
Additional Inherited Members | |
![]() | |
ExecutionFlowGraph * | m_graph |
![]() | |
std::string | stateToString (const int &stateId) const |
Translation between state id and name. More... | |
![]() | |
unsigned int | m_nodeIndex |
std::string | m_nodeName |
Definition at line 137 of file ExecutionFlowGraph.h.
|
inline |
Constructor.
Definition at line 140 of file ExecutionFlowGraph.h.
concurrency::AlgorithmNode::~AlgorithmNode | ( | ) |
Destructor.
Definition at line 194 of file ExecutionFlowGraph.cpp.
|
virtual |
Implements concurrency::ControlFlowNode.
Definition at line 367 of file ExecutionFlowGraph.cpp.
|
inline |
Associate an AlgorithmNode, which is a data consumer of this one.
Definition at line 156 of file ExecutionFlowGraph.h.
void concurrency::AlgorithmNode::addInputDataNode | ( | DataNode * | node | ) |
Associate an AlgorithmNode, which is a data consumer of this one.
Definition at line 393 of file ExecutionFlowGraph.cpp.
void concurrency::AlgorithmNode::addOutputDataNode | ( | DataNode * | node | ) |
Associate an AlgorithmNode, which is a data supplier for this one.
Definition at line 386 of file ExecutionFlowGraph.cpp.
void concurrency::AlgorithmNode::addParentNode | ( | DecisionNode * | node | ) |
XXX: CF tests. Method to add a parent node.
Definition at line 379 of file ExecutionFlowGraph.cpp.
|
inline |
Associate an AlgorithmNode, which is a data supplier for this one.
Definition at line 154 of file ExecutionFlowGraph.h.
|
inline |
Attach Algorithm representative.
Definition at line 158 of file ExecutionFlowGraph.h.
bool concurrency::AlgorithmNode::dataDependenciesSatisfied | ( | const int & | slotNum | ) | const |
Method to check whether the Algorithm has its all data dependency satisfied.
Definition at line 262 of file ExecutionFlowGraph.cpp.
bool concurrency::AlgorithmNode::dataDependenciesSatisfied | ( | AlgsExecutionStates & | states | ) | const |
Definition at line 281 of file ExecutionFlowGraph.cpp.
|
inline |
XXX: CF tests.
Definition at line 180 of file ExecutionFlowGraph.h.
|
inline |
get Algorithm representatives
Definition at line 160 of file ExecutionFlowGraph.h.
|
inline |
Get all consumer nodes.
Definition at line 164 of file ExecutionFlowGraph.h.
|
inline |
Get all consumer nodes.
Definition at line 173 of file ExecutionFlowGraph.h.
|
inline |
Get all supplier nodes.
Definition at line 171 of file ExecutionFlowGraph.h.
|
inline |
Get Algorithm rank.
Definition at line 177 of file ExecutionFlowGraph.h.
|
inline |
Get all supplier nodes.
Definition at line 162 of file ExecutionFlowGraph.h.
|
virtual |
Initialize.
Implements concurrency::ControlFlowNode.
Definition at line 202 of file ExecutionFlowGraph.cpp.
|
virtual |
Print a string representing the control flow state.
Implements concurrency::ControlFlowNode.
Definition at line 300 of file ExecutionFlowGraph.cpp.
|
virtual |
XXX: CF tests.
Implements concurrency::ControlFlowNode.
Definition at line 208 of file ExecutionFlowGraph.cpp.
bool concurrency::AlgorithmNode::promoteToDataReadyState | ( | const int & | slotNum, |
const AlgorithmNode * | requestor = nullptr |
||
) | const |
Definition at line 227 of file ExecutionFlowGraph.cpp.
|
inline |
Set Algorithm rank.
Definition at line 175 of file ExecutionFlowGraph.h.
|
virtual |
XXX: CF tests.
Implements concurrency::ControlFlowNode.
Definition at line 334 of file ExecutionFlowGraph.cpp.
|
virtual |
Method to set algos to CONTROLREADY, if possible.
Implements concurrency::ControlFlowNode.
Definition at line 310 of file ExecutionFlowGraph.cpp.
|
private |
The index of the algorithm.
Definition at line 205 of file ExecutionFlowGraph.h.
|
private |
The name of the algorithm.
Definition at line 207 of file ExecutionFlowGraph.h.
|
private |
Whether the selection result is relevant or always "pass".
Definition at line 211 of file ExecutionFlowGraph.h.
|
private |
AlgorithmNodes that represent algorithms which need the output of the algorithm.
Definition at line 219 of file ExecutionFlowGraph.h.
|
private |
Inputs of the algorithm, represented as DataNode's.
Definition at line 225 of file ExecutionFlowGraph.h.
|
private |
Whether the selection result is negated or not.
Definition at line 209 of file ExecutionFlowGraph.h.
|
private |
Vectors, used in augmented data dependencies realm Outputs of the algorithm, represented as DataNode's.
Definition at line 223 of file ExecutionFlowGraph.h.
|
private |
XXX: CF tests.
Definition at line 213 of file ExecutionFlowGraph.h.
|
private |
Algorithm rank of any kind.
Definition at line 227 of file ExecutionFlowGraph.h.
|
private |
Representatives (including clones) of the node.
Definition at line 229 of file ExecutionFlowGraph.h.
|
private |
Vectors, used in data dependencies realm AlgorithmNodes that represent algorithms producing an input needed for the algorithm.
Definition at line 217 of file ExecutionFlowGraph.h.