The Gaudi Framework  v29r2 (7a580596)
concurrency::DataNode Class Reference

#include <src/PrecedenceRulesGraph.h>

Inheritance diagram for concurrency::DataNode:
Collaboration diagram for concurrency::DataNode:

Public Member Functions

 DataNode (PrecedenceRulesGraph &graph, const DataObjID &path)
 Constructor. More...
 
virtual ~DataNode ()=default
 Destructor. More...
 
const DataObjIDgetPath ()
 
virtual bool accept (IGraphVisitor &visitor)
 Entry point for a visitor. More...
 
void addProducerNode (AlgorithmNode *node)
 Add relationship to producer AlgorithmNode. More...
 
void addConsumerNode (AlgorithmNode *node)
 Add relationship to consumer AlgorithmNode. More...
 
const std::vector< AlgorithmNode * > & getProducers () const
 Get all data object producers. More...
 
const std::vector< AlgorithmNode * > & getConsumers () const
 Get all data object consumers. More...
 

Public Attributes

PrecedenceRulesGraphm_graph
 

Private Attributes

DataObjID m_data_object_path
 
std::vector< AlgorithmNode * > m_producers
 
std::vector< AlgorithmNode * > m_consumers
 

Detailed Description

Definition at line 498 of file PrecedenceRulesGraph.h.

Constructor & Destructor Documentation

concurrency::DataNode::DataNode ( PrecedenceRulesGraph graph,
const DataObjID path 
)
inline

Constructor.

Definition at line 502 of file PrecedenceRulesGraph.h.

virtual concurrency::DataNode::~DataNode ( )
virtualdefault

Destructor.

Member Function Documentation

virtual bool concurrency::DataNode::accept ( IGraphVisitor visitor)
inlinevirtual

Entry point for a visitor.

Reimplemented in concurrency::ConditionNode.

Definition at line 510 of file PrecedenceRulesGraph.h.

511  {
512  if ( visitor.visitEnter( *this ) ) return visitor.visit( *this );
513  return true;
514  }
void concurrency::DataNode::addConsumerNode ( AlgorithmNode node)
inline

Add relationship to consumer AlgorithmNode.

Definition at line 522 of file PrecedenceRulesGraph.h.

523  {
524  if ( std::find( m_consumers.begin(), m_consumers.end(), node ) == m_consumers.end() )
525  m_consumers.push_back( node );
526  }
std::vector< AlgorithmNode * > m_consumers
T find(T...args)
void concurrency::DataNode::addProducerNode ( AlgorithmNode node)
inline

Add relationship to producer AlgorithmNode.

Definition at line 516 of file PrecedenceRulesGraph.h.

517  {
518  if ( std::find( m_producers.begin(), m_producers.end(), node ) == m_producers.end() )
519  m_producers.push_back( node );
520  }
T find(T...args)
std::vector< AlgorithmNode * > m_producers
const std::vector<AlgorithmNode*>& concurrency::DataNode::getConsumers ( ) const
inline

Get all data object consumers.

Definition at line 530 of file PrecedenceRulesGraph.h.

530 { return m_consumers; }
std::vector< AlgorithmNode * > m_consumers
const DataObjID& concurrency::DataNode::getPath ( )
inline

Definition at line 507 of file PrecedenceRulesGraph.h.

507 { return m_data_object_path; }
const std::vector<AlgorithmNode*>& concurrency::DataNode::getProducers ( ) const
inline

Get all data object producers.

Definition at line 528 of file PrecedenceRulesGraph.h.

528 { return m_producers; }
std::vector< AlgorithmNode * > m_producers

Member Data Documentation

std::vector<AlgorithmNode*> concurrency::DataNode::m_consumers
private

Definition at line 538 of file PrecedenceRulesGraph.h.

DataObjID concurrency::DataNode::m_data_object_path
private

Definition at line 536 of file PrecedenceRulesGraph.h.

PrecedenceRulesGraph* concurrency::DataNode::m_graph

Definition at line 533 of file PrecedenceRulesGraph.h.

std::vector<AlgorithmNode*> concurrency::DataNode::m_producers
private

Definition at line 537 of file PrecedenceRulesGraph.h.


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