8#ifndef COLUMNAR_TEST_FIXTURES_COLUMN_READER_H
9#define COLUMNAR_TEST_FIXTURES_COLUMN_READER_H
18#include <unordered_map>
27 class RNTupleInspector;
33 class ColumnVectorData;
37 struct BranchPerfData;
38 struct TestDefinition;
41 ROOT::RNTupleReader*
reader =
nullptr;
42 ROOT::Experimental::RNTupleInspector*
inspector =
nullptr;
45 using Backend = std::variant<TTree*, RNTupleBackend*>;
71 col.columnIndex =
header.getColumnIndex (col.name);
89 void makeCommonLateColumnReaders (std::vector<std::shared_ptr<TestUtils::ColumnReader>>& knownColumns,
const std::vector<std::string>& allMetTermNames);
a class that holds the columnar data for a single call
the header information for the entire columnar data vector
static constexpr std::size_t nullIndex
the index used for an invalid index (always has to be 0)
std::vector< OutputColumnInfo > outputColumns
virtual ~ColumnReader() noexcept=default
virtual BranchPerfData getPerfData(float emptyTime)=0
void connectColumnIndices(const ColumnVectorHeader &header)
lookup and store column indices from the header for all enabled output columns
virtual void setData(ColumnVectorData &columnData)=0
virtual void collectColumnData()=0
virtual bool connect(Backend source, std::unordered_map< std::string, const std::vector< ColumnarOffsetType > * > &offsetColumns, std::unordered_map< std::string, ColumnInfo > &requestedColumns)=0
virtual void getEntry(Long64_t entry)=0
virtual void clearColumns()=0
Selection rules: declare transient members.
std::variant< TTree *, RNTupleBackend * > Backend
void makeTTreeColumnReaders(std::vector< std::shared_ptr< TestUtils::ColumnReader > > &knownColumns, TTree *tree)
void makeCommonColumnReaders(std::vector< std::shared_ptr< TestUtils::ColumnReader > > &knownColumns)
void makeCommonLateColumnReaders(std::vector< std::shared_ptr< TestUtils::ColumnReader > > &knownColumns, const std::vector< std::string > &allMetTermNames)
void makeRNTupleColumnReaders(std::vector< std::shared_ptr< TestUtils::ColumnReader > > &knownColumns, RNTupleBackend *rntbackend)
void makeOutputColumnReaders(std::vector< std::shared_ptr< TestUtils::ColumnReader > > &knownColumns, const ColumnVectorHeader &columnHeader)
std::size_t ColumnarOffsetType
the type used for the size and offsets in the columnar data
a struct that contains meta-information about each column that's needed to interface the column with ...
the performance data for reading a single branch/column
ROOT::Experimental::RNTupleInspector * inspector
ROOT::RNTupleReader * reader