The Gaudi Framework
v30r3 (a5ef0a68)
|
#include <src/PrecedenceRulesGraph.h>
Public Member Functions | |
AlgorithmNode (PrecedenceRulesGraph &graph, Algorithm *algoPtr, unsigned int nodeIndex, unsigned int algoIndex, bool inverted, bool allPass) | |
Constructor. More... | |
bool | accept (IGraphVisitor &visitor) override |
Visitor entry point. More... | |
void | addParentNode (DecisionNode *node) |
Add a parent node. More... | |
const std::vector< DecisionNode * > & | getParentDecisionHubs () const |
Get all parent decision hubs. 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... | |
Algorithm * | getAlgorithm () const |
get Algorithm representatives More... | |
const unsigned int & | getAlgoIndex () const |
Get algorithm index. More... | |
void | setIOBound (bool value) |
Set the I/O-boundness flag. More... | |
bool | isIOBound () const |
Check if algorithm is I/O-bound. More... | |
bool | isOptimist () const |
Check if positive control flow decision is enforced. More... | |
bool | isLiar () const |
Check if control flow logic is always inverted. More... | |
void | printState (std::stringstream &output, AlgsExecutionStates &states, const std::vector< int > &node_decisions, const unsigned int &recursionLevel) const override |
Print a string representing the control flow state. More... | |
Public Member Functions inherited from concurrency::ControlFlowNode | |
ControlFlowNode (PrecedenceRulesGraph &graph, unsigned int nodeIndex, const std::string &name) | |
Constructor. More... | |
virtual | ~ControlFlowNode ()=default |
Destructor. More... | |
const unsigned int & | getNodeIndex () const |
Get node index. More... | |
const std::string & | getNodeName () const |
Get node name. More... | |
Public Attributes | |
std::vector< DecisionNode * > | m_parents |
Control flow parents of an AlgorithmNode (DecisionNodes) More... | |
Public Attributes inherited from concurrency::ControlFlowNode | |
PrecedenceRulesGraph * | m_graph |
Private Attributes | |
Algorithm * | m_algorithm |
Algorithm representative behind the AlgorithmNode. More... | |
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... | |
float | m_rank = -1 |
Algorithm rank of any kind. More... | |
bool | m_isIOBound |
If an algorithm is blocking. More... | |
std::vector< DataNode * > | m_outputs |
Algorithm outputs (DataNodes) More... | |
std::vector< DataNode * > | m_inputs |
Algorithm inputs (DataNodes) More... | |
Additional Inherited Members | |
Protected Attributes inherited from concurrency::ControlFlowNode | |
unsigned int | m_nodeIndex |
std::string | m_nodeName |
Definition at line 506 of file PrecedenceRulesGraph.h.
|
inline |
Constructor.
Definition at line 510 of file PrecedenceRulesGraph.h.
|
overridevirtual |
Visitor entry point.
Implements concurrency::ControlFlowNode.
Definition at line 82 of file PrecedenceRulesGraph.cpp.
void concurrency::AlgorithmNode::addInputDataNode | ( | DataNode * | node | ) |
Associate an AlgorithmNode, which is a data consumer of this one.
Definition at line 108 of file PrecedenceRulesGraph.cpp.
void concurrency::AlgorithmNode::addOutputDataNode | ( | DataNode * | node | ) |
Associate an AlgorithmNode, which is a data supplier for this one.
Definition at line 101 of file PrecedenceRulesGraph.cpp.
void concurrency::AlgorithmNode::addParentNode | ( | DecisionNode * | node | ) |
Add a parent node.
Definition at line 94 of file PrecedenceRulesGraph.cpp.
|
inline |
Get algorithm index.
Definition at line 545 of file PrecedenceRulesGraph.h.
|
inline |
get Algorithm representatives
Definition at line 543 of file PrecedenceRulesGraph.h.
|
inline |
Get all consumer nodes.
Definition at line 535 of file PrecedenceRulesGraph.h.
|
inline |
Get all supplier nodes.
Definition at line 533 of file PrecedenceRulesGraph.h.
|
inline |
Get all parent decision hubs.
Definition at line 526 of file PrecedenceRulesGraph.h.
|
inline |
Get Algorithm rank.
Definition at line 540 of file PrecedenceRulesGraph.h.
|
inline |
Check if algorithm is I/O-bound.
Definition at line 550 of file PrecedenceRulesGraph.h.
|
inline |
Check if control flow logic is always inverted.
Definition at line 555 of file PrecedenceRulesGraph.h.
|
inline |
Check if positive control flow decision is enforced.
Definition at line 553 of file PrecedenceRulesGraph.h.
|
overridevirtual |
Print a string representing the control flow state.
Implements concurrency::ControlFlowNode.
Definition at line 72 of file PrecedenceRulesGraph.cpp.
|
inline |
Set the I/O-boundness flag.
Definition at line 548 of file PrecedenceRulesGraph.h.
|
inline |
Set Algorithm rank.
Definition at line 538 of file PrecedenceRulesGraph.h.
|
private |
The index of the algorithm.
Definition at line 569 of file PrecedenceRulesGraph.h.
|
private |
The name of the algorithm.
Definition at line 571 of file PrecedenceRulesGraph.h.
|
private |
Algorithm representative behind the AlgorithmNode.
Definition at line 567 of file PrecedenceRulesGraph.h.
|
private |
Whether the selection result is relevant or always "pass".
Definition at line 575 of file PrecedenceRulesGraph.h.
|
private |
Algorithm inputs (DataNodes)
Definition at line 584 of file PrecedenceRulesGraph.h.
|
private |
Whether the selection result is negated or not.
Definition at line 573 of file PrecedenceRulesGraph.h.
|
private |
If an algorithm is blocking.
Definition at line 579 of file PrecedenceRulesGraph.h.
|
private |
Algorithm outputs (DataNodes)
Definition at line 582 of file PrecedenceRulesGraph.h.
std::vector<DecisionNode*> concurrency::AlgorithmNode::m_parents |
Control flow parents of an AlgorithmNode (DecisionNodes)
Definition at line 563 of file PrecedenceRulesGraph.h.
|
private |
Algorithm rank of any kind.
Definition at line 577 of file PrecedenceRulesGraph.h.