11 #ifndef ROOT_RACTIONBASE
12 #define ROOT_RACTIONBASE
26 class RCustomColumnBase;
32 namespace GraphDrawing {
36 using namespace ROOT::Detail::RDF;
39 namespace GraphDrawing {
40 bool CheckIfDefaultOrDSColumn(
const std::string &name,
41 const std::shared_ptr<ROOT::Detail::RDF::RCustomColumnBase> &column);
48 RLoopManager *fLoopManager;
51 const unsigned int fNSlots;
53 const ColumnNames_t fColumnNames;
55 RBookedCustomColumns fCustomColumns;
58 RActionBase(RLoopManager *lm,
const ColumnNames_t &colNames, RBookedCustomColumns &&customColumns);
59 RActionBase(
const RActionBase &) =
delete;
60 RActionBase &operator=(
const RActionBase &) =
delete;
61 virtual ~RActionBase();
63 const ColumnNames_t &GetColumnNames()
const {
return fColumnNames; }
64 RBookedCustomColumns &GetCustomColumns() {
return fCustomColumns; }
65 RLoopManager *GetLoopManager() {
return fLoopManager; }
66 unsigned int GetNSlots()
const {
return fNSlots; }
67 virtual void Run(
unsigned int slot, Long64_t entry) = 0;
68 virtual void Initialize() = 0;
69 virtual void InitSlot(TTreeReader *r,
unsigned int slot) = 0;
70 virtual void TriggerChildrenCount() = 0;
71 virtual void ClearValueReaders(
unsigned int slot) = 0;
72 virtual void FinalizeSlot(
unsigned int) = 0;
73 virtual void Finalize() = 0;
76 virtual void *PartialUpdate(
unsigned int slot) = 0;
79 virtual bool HasRun()
const {
return fHasRun; }
80 virtual void SetHasRun() { fHasRun =
true; }
82 virtual std::shared_ptr<ROOT::Internal::RDF::GraphDrawing::GraphNode> GetGraph() = 0;
89 #endif // ROOT_RACTIONBASE