The Gaudi Framework  master (d98a2936)
Rankers.h
Go to the documentation of this file.
1 /***********************************************************************************\
2 * (c) Copyright 1998-2025 CERN for the benefit of the LHCb and ATLAS collaborations *
3 * *
4 * This software is distributed under the terms of the Apache version 2 licence, *
5 * copied verbatim in the file "LICENSE". *
6 * *
7 * In applying this licence, CERN does not waive the privileges and immunities *
8 * granted to it by virtue of its status as an Intergovernmental Organization *
9 * or submit itself to any jurisdiction. *
10 \***********************************************************************************/
11 #pragma once
12 
13 #include "../PrecedenceRulesGraph.h"
14 #include "IGraphVisitor.h"
15 
16 namespace concurrency {
17 
18  //--------------------------------------------------------------------------
20  public:
22 
23  bool visit( AlgorithmNode& ) override;
24  };
25 
26  //--------------------------------------------------------------------------
28  public:
30 
31  bool visit( AlgorithmNode& ) override;
32  void reset() override { m_nodesSucceeded = 0; }
33 
34  void runThroughAdjacents( boost::graph_traits<precedence::PrecTrace>::vertex_descriptor, precedence::PrecTrace );
35 
36  int m_nodesSucceeded{ 0 };
37  };
38 
39  //--------------------------------------------------------------------------
40  class RankerByTiming : public IGraphVisitor {
41  public:
43 
44  bool visit( AlgorithmNode& ) override;
45  };
46 
47  //--------------------------------------------------------------------------
49  public:
51 
52  bool visit( AlgorithmNode& ) override;
53  };
54 
55  //--------------------------------------------------------------------------
57  public:
59 
60  bool visit( AlgorithmNode& ) override;
61 
62  void reset() override {
63  m_currentDepth = 0;
64  m_maxKnownDepth = 0;
65  }
66 
70 
71  uint m_currentDepth{ 0 };
72  uint m_maxKnownDepth{ 0 };
73  };
74 
75 } // namespace concurrency
concurrency::RankerByDataRealmEccentricity::reset
void reset() override
Definition: Rankers.h:62
concurrency::RankerByProductConsumption
Definition: Rankers.h:19
concurrency::RankerByDataRealmEccentricity::recursiveVisit
void recursiveVisit(AlgorithmNode &)
Depth-first node parser to calculate node eccentricity (only within the data realm of the precedence ...
Definition: Rankers.cpp:168
concurrency::IGraphVisitor
Definition: IGraphVisitor.h:20
concurrency::AlgorithmNode
Definition: PrecedenceRulesGraph.h:485
concurrency::RankerByDataRealmEccentricity::m_currentDepth
uint m_currentDepth
Definition: Rankers.h:71
concurrency::RankerByDataRealmEccentricity::visit
bool visit(AlgorithmNode &) override
Definition: Rankers.cpp:153
IGraphVisitor.h
concurrency::RankerByEccentricity
Definition: Rankers.h:48
concurrency::RankerByCummulativeOutDegree::visit
bool visit(AlgorithmNode &) override
Definition: Rankers.cpp:38
concurrency::IGraphVisitor::visit
virtual bool visit(DecisionNode &)
Definition: IGraphVisitor.h:25
concurrency::RankerByCummulativeOutDegree::reset
void reset() override
Definition: Rankers.h:32
precedence::PrecTrace
boost::adjacency_list< boost::vecS, boost::vecS, boost::bidirectionalS, AlgoTraceProps > PrecTrace
Definition: PrecedenceRulesGraph.h:62
concurrency
Definition: PrecedenceRulesGraph.cpp:38
concurrency::RankerByEccentricity::visit
bool visit(AlgorithmNode &) override
Definition: Rankers.cpp:121
concurrency::RankerByCummulativeOutDegree::runThroughAdjacents
void runThroughAdjacents(boost::graph_traits< precedence::PrecTrace >::vertex_descriptor, precedence::PrecTrace)
Definition: Rankers.cpp:75
concurrency::RankerByTiming::visit
bool visit(AlgorithmNode &) override
Definition: Rankers.cpp:87
concurrency::RankerByCummulativeOutDegree
Definition: Rankers.h:27
concurrency::RankerByProductConsumption::visit
bool visit(AlgorithmNode &) override
Definition: Rankers.cpp:19
concurrency::RankerByCummulativeOutDegree::m_nodesSucceeded
int m_nodesSucceeded
Definition: Rankers.h:36
concurrency::RankerByDataRealmEccentricity::m_maxKnownDepth
uint m_maxKnownDepth
Definition: Rankers.h:72
concurrency::RankerByTiming
Definition: Rankers.h:40
concurrency::RankerByDataRealmEccentricity
Definition: Rankers.h:56