Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
ROOT::Experimental::RNTupleChainProcessor Class Reference

Processor specialization for vertically combined (chained) RNTupleProcessors.

Definition at line 442 of file RNTupleProcessor.hxx.

Public Member Functions

 RNTupleChainProcessor (const RNTupleChainProcessor &)=delete
 
 RNTupleChainProcessor (RNTupleChainProcessor &&)=delete
 
 ~RNTupleChainProcessor () override=default
 
RNTupleChainProcessoroperator= (const RNTupleChainProcessor &)=delete
 
RNTupleChainProcessoroperator= (RNTupleChainProcessor &&)=delete
 
- Public Member Functions inherited from ROOT::Experimental::RNTupleProcessor
 RNTupleProcessor (const RNTupleProcessor &)=delete
 
 RNTupleProcessor (RNTupleProcessor &&)=delete
 
virtual ~RNTupleProcessor ()=default
 
RIterator begin ()
 
RIterator end ()
 
ROOT::NTupleSize_t GetCurrentEntryNumber () const
 Get the entry number that is currently being processed.
 
std::size_t GetCurrentProcessorNumber () const
 Get the number of the inner processor currently being read.
 
const ROOT::REntryGetEntry () const
 Get a reference to the entry used by the processor.
 
const ROOT::RNTupleModelGetModel () const
 Get the model used by the processor.
 
ROOT::NTupleSize_t GetNEntriesProcessed () const
 Get the total number of entries processed so far.
 
const std::string & GetProcessorName () const
 Get the name of the processor.
 
RNTupleProcessoroperator= (const RNTupleProcessor &)=delete
 
RNTupleProcessoroperator= (RNTupleProcessor &&)=delete
 
void PrintStructure (std::ostream &output=std::cout)
 Print a graphical representation of the processor composition.
 

Private Member Functions

 RNTupleChainProcessor (std::vector< std::unique_ptr< RNTupleProcessor > > processors, std::unique_ptr< ROOT::RNTupleModel > model, std::string_view processorName)
 Construct a new RNTupleChainProcessor.
 
void AddEntriesToJoinTable (Internal::RNTupleJoinTable &joinTable, ROOT::NTupleSize_t entryOffset=0) final
 Add the entry mappings for this processor to the provided join table.
 
ROOT::NTupleSize_t GetNEntries () final
 Get the total number of entries in this processor.
 
ROOT::NTupleSize_t LoadEntry (ROOT::NTupleSize_t entryNumber) final
 Load the entry identified by the provided (global) entry number (i.e., considering all RNTuples in this processor).
 
void PrintStructureImpl (std::ostream &output) const final
 Processor-specific implementation for printing its structure, called by PrintStructure().
 
void SetEntryPointers (const ROOT::REntry &, std::string_view fieldNamePrefix) final
 

Private Attributes

std::vector< ROOT::NTupleSize_tfInnerNEntries
 
std::vector< std::unique_ptr< RNTupleProcessor > > fInnerProcessors
 

Friends

class RNTupleProcessor
 

Additional Inherited Members

- Static Public Member Functions inherited from ROOT::Experimental::RNTupleProcessor
static std::unique_ptr< RNTupleProcessorCreate (RNTupleOpenSpec ntuple, std::unique_ptr< ROOT::RNTupleModel > model=nullptr, std::string_view processorName="")
 Create an RNTupleProcessor for a single RNTuple.
 
static std::unique_ptr< RNTupleProcessorCreateChain (std::vector< RNTupleOpenSpec > ntuples, std::unique_ptr< ROOT::RNTupleModel > model=nullptr, std::string_view processorName="")
 Create an RNTupleProcessor for a chain (i.e., a vertical combination) of RNTuples.
 
static std::unique_ptr< RNTupleProcessorCreateChain (std::vector< std::unique_ptr< RNTupleProcessor > > innerProcessors, std::unique_ptr< ROOT::RNTupleModel > model=nullptr, std::string_view processorName="")
 Create an RNTupleProcessor for a chain (i.e., a vertical combination) of other RNTupleProcessors.
 
static std::unique_ptr< RNTupleProcessorCreateJoin (RNTupleOpenSpec primaryNTuple, RNTupleOpenSpec auxNTuple, const std::vector< std::string > &joinFields, std::unique_ptr< ROOT::RNTupleModel > primaryModel=nullptr, std::unique_ptr< ROOT::RNTupleModel > auxModel=nullptr, std::string_view processorName="")
 Create an RNTupleProcessor for a join (i.e., a horizontal combination) of RNTuples.
 
static std::unique_ptr< RNTupleProcessorCreateJoin (std::unique_ptr< RNTupleProcessor > primaryProcessor, std::unique_ptr< RNTupleProcessor > auxProcessor, const std::vector< std::string > &joinFields, std::unique_ptr< ROOT::RNTupleModel > primaryModel=nullptr, std::unique_ptr< ROOT::RNTupleModel > auxModel=nullptr, std::string_view processorName="")
 Create an RNTupleProcessor for a join (i.e., a horizontal combination) of RNTuples.
 
- Protected Member Functions inherited from ROOT::Experimental::RNTupleProcessor
 RNTupleProcessor (std::string_view processorName, std::unique_ptr< ROOT::RNTupleModel > model)
 Create a new base RNTupleProcessor.
 
- Protected Attributes inherited from ROOT::Experimental::RNTupleProcessor
ROOT::NTupleSize_t fCurrentEntryNumber = 0
 
std::size_t fCurrentProcessorNumber = 0
 
std::unique_ptr< ROOT::REntryfEntry
 
std::unique_ptr< ROOT::RNTupleModelfModel
 
ROOT::NTupleSize_t fNEntries = kInvalidNTupleIndex
 Total number of entries.
 
ROOT::NTupleSize_t fNEntriesProcessed = 0
 
std::string fProcessorName
 

#include <ROOT/RNTupleProcessor.hxx>

Inheritance diagram for ROOT::Experimental::RNTupleChainProcessor:
[legend]

Constructor & Destructor Documentation

◆ RNTupleChainProcessor() [1/3]

ROOT::Experimental::RNTupleChainProcessor::RNTupleChainProcessor ( std::vector< std::unique_ptr< RNTupleProcessor > > processors,
std::unique_ptr< ROOT::RNTupleModel > model,
std::string_view processorName )
private

Construct a new RNTupleChainProcessor.

Parameters
[in]ntuplesThe source specification (name and storage location) for each RNTuple to process.
[in]modelThe model that specifies which fields should be read by the processor. The pointer returned by RNTupleModel::MakeField can be used to access a field's value during the processor iteration. When no model is specified, it is created from the descriptor of the first RNTuple specified in ntuples.
[in]processorNameName of the processor. Unless specified otherwise in RNTupleProcessor::CreateChain, this is the name of the first inner processor.

RNTuples are processed in the order in which they are specified.

Definition at line 261 of file RNTupleProcessor.cxx.

◆ RNTupleChainProcessor() [2/3]

ROOT::Experimental::RNTupleChainProcessor::RNTupleChainProcessor ( const RNTupleChainProcessor & )
delete

◆ RNTupleChainProcessor() [3/3]

ROOT::Experimental::RNTupleChainProcessor::RNTupleChainProcessor ( RNTupleChainProcessor && )
delete

◆ ~RNTupleChainProcessor()

ROOT::Experimental::RNTupleChainProcessor::~RNTupleChainProcessor ( )
overridedefault

Member Function Documentation

◆ AddEntriesToJoinTable()

void ROOT::Experimental::RNTupleChainProcessor::AddEntriesToJoinTable ( Internal::RNTupleJoinTable & joinTable,
ROOT::NTupleSize_t entryOffset = 0 )
finalprivatevirtual

Add the entry mappings for this processor to the provided join table.

See also
ROOT::Experimental::RNTupleProcessor::AddEntriesToJoinTable

Implements ROOT::Experimental::RNTupleProcessor.

Definition at line 354 of file RNTupleProcessor.cxx.

◆ GetNEntries()

ROOT::NTupleSize_t ROOT::Experimental::RNTupleChainProcessor::GetNEntries ( )
finalprivatevirtual

Get the total number of entries in this processor.

Note
This requires opening all underlying RNTuples being processed in the chain, and could become costly!

Implements ROOT::Experimental::RNTupleProcessor.

Definition at line 294 of file RNTupleProcessor.cxx.

◆ LoadEntry()

ROOT::NTupleSize_t ROOT::Experimental::RNTupleChainProcessor::LoadEntry ( ROOT::NTupleSize_t entryNumber)
finalprivatevirtual

Load the entry identified by the provided (global) entry number (i.e., considering all RNTuples in this processor).

See also
ROOT::Experimental::RNTupleProcessor::LoadEntry

Implements ROOT::Experimental::RNTupleProcessor.

Definition at line 327 of file RNTupleProcessor.cxx.

◆ operator=() [1/2]

RNTupleChainProcessor & ROOT::Experimental::RNTupleChainProcessor::operator= ( const RNTupleChainProcessor & )
delete

◆ operator=() [2/2]

RNTupleChainProcessor & ROOT::Experimental::RNTupleChainProcessor::operator= ( RNTupleChainProcessor && )
delete

◆ PrintStructureImpl()

void ROOT::Experimental::RNTupleChainProcessor::PrintStructureImpl ( std::ostream & output) const
finalprivatevirtual

Processor-specific implementation for printing its structure, called by PrintStructure().

See also
ROOT::Experimental::RNTupleProcessor::PrintStructureImpl

Implements ROOT::Experimental::RNTupleProcessor.

Definition at line 364 of file RNTupleProcessor.cxx.

◆ SetEntryPointers()

void ROOT::Experimental::RNTupleChainProcessor::SetEntryPointers ( const ROOT::REntry & entry,
std::string_view fieldNamePrefix )
finalprivatevirtual

Friends And Related Symbol Documentation

◆ RNTupleProcessor

friend class RNTupleProcessor
friend

Definition at line 443 of file RNTupleProcessor.hxx.

Member Data Documentation

◆ fInnerNEntries

std::vector<ROOT::NTupleSize_t> ROOT::Experimental::RNTupleChainProcessor::fInnerNEntries
private

Definition at line 447 of file RNTupleProcessor.hxx.

◆ fInnerProcessors

std::vector<std::unique_ptr<RNTupleProcessor> > ROOT::Experimental::RNTupleChainProcessor::fInnerProcessors
private

Definition at line 446 of file RNTupleProcessor.hxx.

Libraries for ROOT::Experimental::RNTupleChainProcessor:

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