Logo ROOT   6.16/01
Reference Guide
List of all members | Public Member Functions | Private Types | Private Member Functions | Private Attributes | Static Private Attributes | Friends | List of all members
ROOT::RDF::RDisplay Class Reference

This class is the textual representation of the content of a columnar dataset.

This class is provided to the user, and it can be used to print on screen the entries of the dataset requested through the Display action in a compact representation or to return the full representation of the events as a string. In order to apply proper formatting the content is buffered in memory as strings.

Definition at line 63 of file RDisplay.hxx.

Public Member Functions

 RDisplay (const VecStr_t &columnNames, const VecStr_t &types, int entries)
 Creates an RDisplay to print the event values. More...
 
std::string AsString () const
 Returns the representation as a string. More...
 
void Print () const
 Prints the representation to the standard output. More...
 

Private Types

using DElement_t = ROOT::Internal::RDF::RDisplayElement
 
using VecStr_t = std::vector< std::string >
 

Private Member Functions

void AddCollectionToRow (const VecStr_t &collection)
 Adds a collection to the table. More...
 
template<typename T , typename std::enable_if< ROOT::TypeTraits::IsContainer< T >::value, int >::type = 0>
bool AddInterpreterString (std::stringstream &stream, T &collection, const int &index)
 Appends collection.size() cling::printValue call to the stringstream. More...
 
template<typename T , typename std::enable_if<!ROOT::TypeTraits::IsContainer< T >::value, int >::type = 0>
bool AddInterpreterString (std::stringstream &stream, T &element, const int &index)
 Appends a cling::printValue call to the stringstream. More...
 
template<typename... Columns>
void AddRow (Columns... columns)
 Adds a row of events to the table. More...
 
void AddToRow (const std::string &stringEle)
 Adds a single element to the next slot in the table. More...
 
void CallInterpreter (const std::string &code)
 Feed a piece of code to cling and handle errors. More...
 
size_t GetNColumnsToShorten () const
 Get the number of columns that do NOT fit in the characters limit. More...
 
bool HasNext ()
 If the number of required rows has been parsed, returns false. More...
 
void MovePosition ()
 Moves to the next cell. More...
 

Private Attributes

std::vector< VecStr_tfCollectionsRepresentations
 Used by the JITted code to store the string representation of the data in case of collection. More...
 
size_t fCurrentColumn = 0
 Column that is being filled. More...
 
size_t fCurrentRow = 0
 Row that is being filled. More...
 
size_t fEntries
 Number of events to process for each column (i.e. number of rows). More...
 
std::vector< bool > fIsCollection
 True if the column contains a collection. More...
 
size_t fNColumns
 Number of columns to be printed. More...
 
size_t fNextRow = 1
 Next row to be filled. More...
 
VecStr_t fRepresentations
 Used by the JITted code to store the string representation of the data. More...
 
std::vector< std::vector< DElement_t > > fTable
 String representation of the data to be printed. More...
 
VecStr_t fTypes
 This attribute stores the type of each column. It is needed by the interpreter to print it. More...
 
std::vector< unsigned short > fWidths
 Tracks the maximum width of each column, based on the largest element. More...
 

Static Private Attributes

static constexpr unsigned fgMaxWidth = 80
 
static constexpr char fgSeparator = ' '
 Spacing used to align the table entries. More...
 

Friends

template<typename T >
class ROOT::Internal::RDF::DisplayHelper
 

#include <ROOT/RDF/RDisplay.hxx>

Member Typedef Documentation

◆ DElement_t

Definition at line 68 of file RDisplay.hxx.

◆ VecStr_t

using ROOT::RDF::RDisplay::VecStr_t = std::vector<std::string>
private

Definition at line 67 of file RDisplay.hxx.

Constructor & Destructor Documentation

◆ RDisplay()

ROOT::RDF::RDisplay::RDisplay ( const VecStr_t columnNames,
const VecStr_t types,
int  entries 
)

Creates an RDisplay to print the event values.

Parameters
[in]columnNamesColumns to print
[in]typesThe type of each column
[in]entriesHow many events per column (row) must be processed.

Definition at line 169 of file RDFDisplay.cxx.

Member Function Documentation

◆ AddCollectionToRow()

void ROOT::RDF::RDisplay::AddCollectionToRow ( const VecStr_t collection)
private

Adds a collection to the table.

Starting from the slot, the elements are added one under the other, each one using a single cell of an entire row

Definition at line 105 of file RDFDisplay.cxx.

◆ AddInterpreterString() [1/2]

template<typename T , typename std::enable_if< ROOT::TypeTraits::IsContainer< T >::value, int >::type = 0>
bool ROOT::RDF::RDisplay::AddInterpreterString ( std::stringstream &  stream,
T &  collection,
const int &  index 
)
inlineprivate

Appends collection.size() cling::printValue call to the stringstream.

Template Parameters
Tthe type of the event to convert
Parameters
[in]streamWhere the conversion function call will be chained.
[in]elementThe event to convert to its string representation
[in]indexTo which column the event belongs to
Returns
true, the event is a collection This function chains a sequence of call to cling::printValue, one for each element of the collection.

Definition at line 115 of file RDisplay.hxx.

◆ AddInterpreterString() [2/2]

template<typename T , typename std::enable_if<!ROOT::TypeTraits::IsContainer< T >::value, int >::type = 0>
bool ROOT::RDF::RDisplay::AddInterpreterString ( std::stringstream &  stream,
T &  element,
const int &  index 
)
inlineprivate

Appends a cling::printValue call to the stringstream.

Template Parameters
Tthe type of the event to convert
Parameters
[in]streamWhere the conversion function call will be chained.
[in]elementThe event to convert to its string representation
[in]indexTo which column the event belongs to
Returns
false, the event is not a collection

Definition at line 99 of file RDisplay.hxx.

◆ AddRow()

template<typename... Columns>
void ROOT::RDF::RDisplay::AddRow ( Columns...  columns)
inlineprivate

Adds a row of events to the table.

Definition at line 163 of file RDisplay.hxx.

◆ AddToRow()

void ROOT::RDF::RDisplay::AddToRow ( const std::string &  stringEle)
private

Adds a single element to the next slot in the table.

Definition at line 92 of file RDFDisplay.cxx.

◆ AsString()

std::string ROOT::RDF::RDisplay::AsString ( ) const

Returns the representation as a string.

Definition at line 249 of file RDFDisplay.cxx.

◆ CallInterpreter()

void ROOT::RDF::RDisplay::CallInterpreter ( const std::string &  code)
private

Feed a piece of code to cling and handle errors.

Definition at line 159 of file RDFDisplay.cxx.

◆ GetNColumnsToShorten()

size_t ROOT::RDF::RDisplay::GetNColumnsToShorten ( ) const
private

Get the number of columns that do NOT fit in the characters limit.

Definition at line 181 of file RDFDisplay.cxx.

◆ HasNext()

bool ROOT::RDF::RDisplay::HasNext ( )
inlineprivate

If the number of required rows has been parsed, returns false.

Definition at line 187 of file RDisplay.hxx.

◆ MovePosition()

void ROOT::RDF::RDisplay::MovePosition ( )
private

Moves to the next cell.

Moves to the next cell, and if the row is full moves to the next row.

Definition at line 147 of file RDFDisplay.cxx.

◆ Print()

void ROOT::RDF::RDisplay::Print ( void  ) const

Prints the representation to the standard output.

Collections are shortened to the first and last element. The overall width is shortened to a fixed size of TODO

Definition at line 196 of file RDFDisplay.cxx.

Friends And Related Function Documentation

◆ ROOT::Internal::RDF::DisplayHelper

template<typename T >
friend class ROOT::Internal::RDF::DisplayHelper
friend

Definition at line 65 of file RDisplay.hxx.

Member Data Documentation

◆ fCollectionsRepresentations

std::vector<VecStr_t> ROOT::RDF::RDisplay::fCollectionsRepresentations
private

Used by the JITted code to store the string representation of the data in case of collection.

Each row corresponds to a column, each column to a value of the collection.

Definition at line 79 of file RDisplay.hxx.

◆ fCurrentColumn

size_t ROOT::RDF::RDisplay::fCurrentColumn = 0
private

Column that is being filled.

Definition at line 87 of file RDisplay.hxx.

◆ fCurrentRow

size_t ROOT::RDF::RDisplay::fCurrentRow = 0
private

Row that is being filled.

Definition at line 85 of file RDisplay.hxx.

◆ fEntries

size_t ROOT::RDF::RDisplay::fEntries
private

Number of events to process for each column (i.e. number of rows).

Definition at line 89 of file RDisplay.hxx.

◆ fgMaxWidth

constexpr unsigned ROOT::RDF::RDisplay::fgMaxWidth = 80
staticconstexprprivate

Definition at line 70 of file RDisplay.hxx.

◆ fgSeparator

constexpr char ROOT::RDF::RDisplay::fgSeparator = ' '
staticconstexprprivate

Spacing used to align the table entries.

Definition at line 69 of file RDisplay.hxx.

◆ fIsCollection

std::vector<bool> ROOT::RDF::RDisplay::fIsCollection
private

True if the column contains a collection.

Collections are treated differently during the printing.

Definition at line 73 of file RDisplay.hxx.

◆ fNColumns

size_t ROOT::RDF::RDisplay::fNColumns
private

Number of columns to be printed.

Definition at line 83 of file RDisplay.hxx.

◆ fNextRow

size_t ROOT::RDF::RDisplay::fNextRow = 1
private

Next row to be filled.

Definition at line 86 of file RDisplay.hxx.

◆ fRepresentations

VecStr_t ROOT::RDF::RDisplay::fRepresentations
private

Used by the JITted code to store the string representation of the data.

Definition at line 78 of file RDisplay.hxx.

◆ fTable

std::vector<std::vector<DElement_t> > ROOT::RDF::RDisplay::fTable
private

String representation of the data to be printed.

Definition at line 75 of file RDisplay.hxx.

◆ fTypes

VecStr_t ROOT::RDF::RDisplay::fTypes
private

This attribute stores the type of each column. It is needed by the interpreter to print it.

Definition at line 72 of file RDisplay.hxx.

◆ fWidths

std::vector<unsigned short> ROOT::RDF::RDisplay::fWidths
private

Tracks the maximum width of each column, based on the largest element.

Definition at line 76 of file RDisplay.hxx.

Libraries for ROOT::RDF::RDisplay:
[legend]

The documentation for this class was generated from the following files: