11 #ifndef ROOT_RDFBOOKEDCUSTOMCOLUMNS
12 #define ROOT_RDFBOOKEDCUSTOMCOLUMNS
24 class RCustomColumnBase;
31 namespace RDFDetail = ROOT::Detail::RDF;
39 class RBookedCustomColumns {
40 using RCustomColumnBasePtrMap_t = std::map<std::string, std::shared_ptr<RDFDetail::RCustomColumnBase>>;
41 using ColumnNames_t = std::vector<std::string>;
44 using RCustomColumnBasePtrMapPtr_t = std::shared_ptr<const RCustomColumnBasePtrMap_t>;
45 using ColumnNamesPtr_t = std::shared_ptr<const ColumnNames_t>;
48 RCustomColumnBasePtrMapPtr_t fCustomColumns;
49 ColumnNamesPtr_t fCustomColumnsNames;
54 RBookedCustomColumns(
const RBookedCustomColumns &) =
default;
58 RBookedCustomColumns(RBookedCustomColumns &&) =
default;
62 RBookedCustomColumns &operator=(
const RBookedCustomColumns &) =
default;
66 RBookedCustomColumns(RCustomColumnBasePtrMapPtr_t customColumns, ColumnNamesPtr_t customColumnNames)
67 : fCustomColumns(customColumns), fCustomColumnsNames(customColumnNames)
73 RBookedCustomColumns()
74 : fCustomColumns(std::make_shared<RCustomColumnBasePtrMap_t>()),
75 fCustomColumnsNames(std::make_shared<ColumnNames_t>())
81 ColumnNames_t GetNames()
const {
return *fCustomColumnsNames; }
85 const RCustomColumnBasePtrMap_t &GetColumns()
const {
return *fCustomColumns; }
89 bool HasName(std::string_view name)
const;
93 void AddColumn(
const std::shared_ptr<RDFDetail::RCustomColumnBase> &column, std::string_view name);
97 void AddName(std::string_view name);