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

Processor specialization for horizontally combined (joined) RNTuples.

Definition at line 495 of file RNTupleProcessor.hxx.

Public Member Functions

 RNTupleJoinProcessor (const RNTupleJoinProcessor &)=delete
 
 RNTupleJoinProcessor (RNTupleJoinProcessor &&)=delete
 
 ~RNTupleJoinProcessor () override
 
RNTupleJoinProcessor operator= (const RNTupleJoinProcessor &)=delete
 
RNTupleJoinProcessor operator= (RNTupleJoinProcessor &&)=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 REntryGetEntry () const
 Get a reference to the entry used by the processor.
 
const 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
 

Private Member Functions

 RNTupleJoinProcessor (const RNTupleOpenSpec &mainNTuple, std::string_view processorName, std::unique_ptr< RNTupleModel > model=nullptr)
 Construct a new RNTupleJoinProcessor.
 
void AddAuxiliary (const RNTupleOpenSpec &auxNTuple, const std::vector< std::string > &joinFields, std::unique_ptr< RNTupleModel > model=nullptr)
 Add an auxiliary RNTuple to the processor.
 
void ConnectFields ()
 Connect all fields, once the primary and all auxiliary RNTuples have been added.
 
ROOT::NTupleSize_t GetNEntries () final
 Get the total number of entries in this processor.
 
bool HasJoinTable () const
 
ROOT::NTupleSize_t LoadEntry (ROOT::NTupleSize_t entryNumber) final
 Load the entry identified by the provided entry number of the primary RNTuple.
 
void SetEntryPointers (const REntry &) final
 
void SetJoinFieldTokens (const std::vector< std::string > &joinFields)
 Populate fJoinFieldTokens with tokens for join fields belonging to the main RNTuple in the join model.
 

Private Attributes

std::vector< std::unique_ptr< Internal::RPageSource > > fAuxiliaryPageSources
 
std::vector< REntry::RFieldTokenfJoinFieldTokens
 Tokens representing the join fields present in the main RNTuple.
 
std::vector< std::unique_ptr< Internal::RNTupleJoinTable > > fJoinTables
 

Friends

class RNTupleProcessor
 

Additional Inherited Members

- Static Public Member Functions inherited from ROOT::Experimental::RNTupleProcessor
static std::unique_ptr< RNTupleProcessorCreate (const RNTupleOpenSpec &ntuple, std::string_view processorName, std::unique_ptr< RNTupleModel > model=nullptr)
 Create an RNTupleProcessor for a single RNTuple.
 
static std::unique_ptr< RNTupleProcessorCreate (const RNTupleOpenSpec &ntuple, std::unique_ptr< RNTupleModel > model=nullptr)
 Create an RNTupleProcessor for a single RNTuple.
 
static std::unique_ptr< RNTupleProcessorCreateChain (const std::vector< RNTupleOpenSpec > &ntuples, std::string_view processorName, std::unique_ptr< RNTupleModel > model=nullptr)
 Create an RNTupleProcessor for a chain (i.e., a vertical combination) of RNTuples.
 
static std::unique_ptr< RNTupleProcessorCreateChain (const std::vector< RNTupleOpenSpec > &ntuples, std::unique_ptr< RNTupleModel > model=nullptr)
 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::string_view processorName, std::unique_ptr< RNTupleModel > model=nullptr)
 Create an RNTupleProcessor for a chain (i.e., a vertical combination) of other RNTupleProcessors.
 
static std::unique_ptr< RNTupleProcessorCreateChain (std::vector< std::unique_ptr< RNTupleProcessor > > innerProcessors, std::unique_ptr< RNTupleModel > model=nullptr)
 Create an RNTupleProcessor for a chain (i.e., a vertical combination) of other RNTupleProcessors.
 
static std::unique_ptr< RNTupleProcessorCreateJoin (const std::vector< RNTupleOpenSpec > &ntuples, const std::vector< std::string > &joinFields, std::string_view processorName, std::vector< std::unique_ptr< RNTupleModel > > models={})
 Create an RNTupleProcessor for a join (i.e., a horizontal combination) of RNTuples.
 
static std::unique_ptr< RNTupleProcessorCreateJoin (const std::vector< RNTupleOpenSpec > &ntuples, const std::vector< std::string > &joinFields, std::vector< std::unique_ptr< RNTupleModel > > models={})
 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< RNTupleModel > model)
 Create a new base RNTupleProcessor.
 
void ConnectField (RFieldContext &fieldContext, Internal::RPageSource &pageSource, REntry &entry)
 Create and connect a concrete field to the current page source, based on its proto field.
 
- Protected Attributes inherited from ROOT::Experimental::RNTupleProcessor
ROOT::NTupleSize_t fCurrentEntryNumber = 0
 
std::size_t fCurrentProcessorNumber = 0
 
std::unique_ptr< REntryfEntry
 
std::unordered_map< std::string, RFieldContextfFieldContexts
 Maps the (qualified) field name to its corresponding field context.
 
std::unique_ptr< RNTupleModelfModel
 
ROOT::NTupleSize_t fNEntries = kInvalidNTupleIndex
 Total number of entries.
 
ROOT::NTupleSize_t fNEntriesProcessed = 0
 
std::vector< RNTupleOpenSpecfNTuples
 
std::unique_ptr< Internal::RPageSourcefPageSource
 
std::string fProcessorName
 

#include <ROOT/RNTupleProcessor.hxx>

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

Constructor & Destructor Documentation

◆ RNTupleJoinProcessor() [1/3]

ROOT::Experimental::RNTupleJoinProcessor::RNTupleJoinProcessor ( const RNTupleOpenSpec & mainNTuple,
std::string_view processorName,
std::unique_ptr< RNTupleModel > model = nullptr )
private

Construct a new RNTupleJoinProcessor.

Parameters
[in]mainNTupleThe source specification (name and storage location) of the primary RNTuple.
[in]processorNameName of the processor. Unless specified otherwise in RNTupleProcessor::CreateJoin, this is the name of the main RNTuple.
[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 RNTuple's descriptor.

Definition at line 347 of file RNTupleProcessor.cxx.

◆ RNTupleJoinProcessor() [2/3]

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

◆ RNTupleJoinProcessor() [3/3]

ROOT::Experimental::RNTupleJoinProcessor::RNTupleJoinProcessor ( RNTupleJoinProcessor && )
delete

◆ ~RNTupleJoinProcessor()

ROOT::Experimental::RNTupleJoinProcessor::~RNTupleJoinProcessor ( )
inlineoverride

Definition at line 564 of file RNTupleProcessor.hxx.

Member Function Documentation

◆ AddAuxiliary()

void ROOT::Experimental::RNTupleJoinProcessor::AddAuxiliary ( const RNTupleOpenSpec & auxNTuple,
const std::vector< std::string > & joinFields,
std::unique_ptr< RNTupleModel > model = nullptr )
private

Add an auxiliary RNTuple to the processor.

Parameters
[in]auxNTupleThe source specification (name and storage location) of the auxiliary RNTuple.
[in]joinFieldsThe names of the fields used in the join.
[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 RNTuple's descriptor.

Definition at line 387 of file RNTupleProcessor.cxx.

◆ ConnectFields()

void ROOT::Experimental::RNTupleJoinProcessor::ConnectFields ( )
private

Connect all fields, once the primary and all auxiliary RNTuples have been added.

Definition at line 482 of file RNTupleProcessor.cxx.

◆ GetNEntries()

ROOT::NTupleSize_t ROOT::Experimental::RNTupleJoinProcessor::GetNEntries ( )
inlinefinalprivatevirtual

Get the total number of entries in this processor.

Implements ROOT::Experimental::RNTupleProcessor.

Definition at line 518 of file RNTupleProcessor.hxx.

◆ HasJoinTable()

bool ROOT::Experimental::RNTupleJoinProcessor::HasJoinTable ( ) const
inlineprivate

Definition at line 504 of file RNTupleProcessor.hxx.

◆ LoadEntry()

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

Load the entry identified by the provided entry number of the primary RNTuple.

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

Implements ROOT::Experimental::RNTupleProcessor.

Definition at line 503 of file RNTupleProcessor.cxx.

◆ operator=() [1/2]

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

◆ operator=() [2/2]

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

◆ SetEntryPointers()

void ROOT::Experimental::RNTupleJoinProcessor::SetEntryPointers ( const REntry & entry)
finalprivatevirtual

◆ SetJoinFieldTokens()

void ROOT::Experimental::RNTupleJoinProcessor::SetJoinFieldTokens ( const std::vector< std::string > & joinFields)
inlineprivate

Populate fJoinFieldTokens with tokens for join fields belonging to the main RNTuple in the join model.

Parameters
[in]joinFieldsThe names of the fields used in the join.

Definition at line 551 of file RNTupleProcessor.hxx.

Friends And Related Symbol Documentation

◆ RNTupleProcessor

friend class RNTupleProcessor
friend

Definition at line 496 of file RNTupleProcessor.hxx.

Member Data Documentation

◆ fAuxiliaryPageSources

std::vector<std::unique_ptr<Internal::RPageSource> > ROOT::Experimental::RNTupleJoinProcessor::fAuxiliaryPageSources
private

Definition at line 499 of file RNTupleProcessor.hxx.

◆ fJoinFieldTokens

std::vector<REntry::RFieldToken> ROOT::Experimental::RNTupleJoinProcessor::fJoinFieldTokens
private

Tokens representing the join fields present in the main RNTuple.

Definition at line 501 of file RNTupleProcessor.hxx.

◆ fJoinTables

std::vector<std::unique_ptr<Internal::RNTupleJoinTable> > ROOT::Experimental::RNTupleJoinProcessor::fJoinTables
private

Definition at line 502 of file RNTupleProcessor.hxx.

Libraries for ROOT::Experimental::RNTupleJoinProcessor:

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