11#ifndef ROOT_RDFDISPLAYER
12#define ROOT_RDFDISPLAYER
76 std::vector<std::vector<DElement_t>>
fTable;
99 template <typename T, typename std::enable_if<!ROOT::TypeTraits::IsContainer<T>::value,
int>
::type = 0>
115 template <typename T, typename std::enable_if<ROOT::TypeTraits::IsContainer<T>::value,
int>
::type = 0>
118 size_t collectionSize = std::distance(std::begin(collection), std::end(collection));
129 for (
size_t i = 0; i < collectionSize; ++i) {
138 void AddToRow(
const std::string &stringEle);
162 std::stringstream calc;
Helper class to let Display print compact tabular representations of the events.
bool IsIgnore() const
Return if the cell has to be skipped.
bool IsDot() const
Return if the cell has to be replaced by "...".
const std::string & GetRepresentation() const
bool IsPrint() const
Return if the cell has to be printed.
void SetDots()
Flag this cell to be replaced by "...".
PrintingAction fPrintingAction
void SetPrint()
Flag this cell as to be printed.
void SetIgnore()
Flag this cell as to be skipped.
std::string fRepresentation
RDisplayElement()
Constructor assuming an empty representation to be printed.
This class is the textual representation of the content of a columnar dataset.
void AddRow(Columns... columns)
Adds a row of events to the table.
size_t fEntries
Number of events to process for each column (i.e. number of rows).
void AddCollectionToRow(const VecStr_t &collection)
Adds a collection to the table.
size_t fCurrentColumn
Column that is being filled.
bool HasNext()
If the number of required rows has been parsed, returns false.
std::vector< std::vector< DElement_t > > fTable
String representation of the data to be printed.
std::vector< bool > fIsCollection
True if the column contains a collection.
std::string AsString() const
Returns the representation as a string.
void AddToRow(const std::string &stringEle)
Adds a single element to the next slot in the table.
size_t fCurrentRow
Row that is being filled.
VecStr_t fRepresentations
Used by the JITted code to store the string representation of the data.
void MovePosition()
Moves to the next cell.
std::vector< unsigned short > fWidths
Tracks the maximum width of each column, based on the largest element.
bool AddInterpreterString(std::stringstream &stream, T &collection, const int &index)
Appends collection.size() cling::printValue call to the stringstream.
static constexpr unsigned fgMaxWidth
RDisplay(const VecStr_t &columnNames, const VecStr_t &types, int entries)
Creates an RDisplay to print the event values.
void EnsureCurrentColumnWidth(size_t w)
size_t fNextRow
Next row to be filled.
std::vector< std::string > VecStr_t
void Print() const
Prints the representation to the standard output.
std::vector< VecStr_t > fCollectionsRepresentations
Used by the JITted code to store the string representation of the data in case of collection.
size_t GetNColumnsToShorten() const
Get the number of columns that do NOT fit in the characters limit.
static constexpr char fgSeparator
Spacing used to align the table entries.
bool AddInterpreterString(std::stringstream &stream, T &element, const int &index)
Appends a cling::printValue call to the stringstream.
VecStr_t fTypes
This attribute stores the type of each column. It is needed by the interpreter to print it.
size_t fNColumns
Number of columns to be printed.
std::string PrettyPrintAddr(const void *const addr)
Long64_t InterpreterCalc(const std::string &code, const std::string &context)
RooCmdArg Columns(Int_t ncol)
int GetSplit(const char *type, std::vector< std::string > &output, int &nestedLoc, EModType mode=TClassEdit::kNone)
Stores in output (after emptying it) the split type.
static void output(int code)