Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
RRangeBase.hxx
Go to the documentation of this file.
1// Author: Enrico Guiraud, Danilo Piparo CERN 09/2018
2
3/*************************************************************************
4 * Copyright (C) 1995-2018, Rene Brun and Fons Rademakers. *
5 * All rights reserved. *
6 * *
7 * For the licensing terms see $ROOTSYS/LICENSE. *
8 * For the list of contributors see $ROOTSYS/README/CREDITS. *
9 *************************************************************************/
10
11#ifndef ROOT_RRANGEBASE
12#define ROOT_RRANGEBASE
13
15#include "RtypesCore.h"
16
17namespace ROOT {
18
19// fwd decl
20namespace Internal {
21namespace RDF {
22class GraphNode;
23} // ns RDF
24} // ns Internal
25
26namespace Detail {
27namespace RDF {
29
30class RLoopManager;
31
32class RRangeBase : public RNodeBase {
33protected:
34 unsigned int fStart;
35 unsigned int fStop;
36 unsigned int fStride;
38 bool fLastResult{true};
40 bool fHasStopped{false}; ///< True if the end of the range has been reached
41 const unsigned int fNSlots; ///< Number of thread slots used by this node, inherited from parent node.
42
43 void ResetCounters();
44
45public:
46 RRangeBase(RLoopManager *implPtr, unsigned int start, unsigned int stop, unsigned int stride,
47 const unsigned int nSlots);
48
49 RRangeBase &operator=(const RRangeBase &) = delete;
50 virtual ~RRangeBase();
51
52 void InitNode() { ResetCounters(); }
53 virtual std::shared_ptr<RDFGraphDrawing::GraphNode> GetGraph() = 0;
54};
55
56} // ns RDF
57} // ns Detail
58} // ns ROOT
59
60#endif // ROOT_RRANGEBASE
long long Long64_t
Definition RtypesCore.h:73
unsigned long long ULong64_t
Definition RtypesCore.h:74
The head node of a RDF computation graph.
Base class for non-leaf nodes of the computational graph.
Definition RNodeBase.hxx:41
RRangeBase & operator=(const RRangeBase &)=delete
virtual std::shared_ptr< RDFGraphDrawing::GraphNode > GetGraph()=0
const unsigned int fNSlots
Number of thread slots used by this node, inherited from parent node.
bool fHasStopped
True if the end of the range has been reached.
Class used to create the operation graph to be printed in the dot representation.
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...