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

Processor specializiation for horizontally concatenated RNTuples (joins).

Definition at line 303 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 ()
 
std::size_t GetCurrentNTupleNumber () const
 Get the index to the RNTuple currently being processed, according to the sources specified upon creation.
 
const REntryGetEntry () const
 Returns a reference to the entry used by the processor.
 
NTupleSize_t GetLocalEntryNumber () const
 Get the entry number local to the RNTuple that is currently being processed.
 
NTupleSize_t GetNEntriesProcessed () const
 Get the total number of entries processed so far.
 
RNTupleProcessoroperator= (const RNTupleProcessor &)=delete
 
RNTupleProcessoroperator= (RNTupleProcessor &&)=delete
 

Private Member Functions

 RNTupleJoinProcessor (const RNTupleOpenSpec &mainNTuple, std::unique_ptr< RNTupleModel > model=nullptr)
 Constructs 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.
 
NTupleSize_t Advance () final
 Advance the processor to the next available entry.
 
void ConnectFields ()
 
bool IsUsingIndex () const
 
void LoadEntry () final
 Fill the entry with values belonging to the current entry number of the primary RNTuple.
 
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::RNTupleIndex > > fJoinIndices
 
std::unique_ptr< RNTupleModelfJoinModel
 

Friends

class RNTupleProcessor
 

Additional Inherited Members

- Static Public Member Functions inherited from ROOT::Experimental::RNTupleProcessor
static std::unique_ptr< RNTupleProcessorCreateChain (const std::vector< RNTupleOpenSpec > &ntuples, std::unique_ptr< RNTupleModel > model=nullptr)
 Create a new RNTuple processor chain for vertical concatenation 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 a new RNTuple processor for horizontallly concatenated RNTuples.
 
- Protected Member Functions inherited from ROOT::Experimental::RNTupleProcessor
 RNTupleProcessor (const std::vector< RNTupleOpenSpec > &ntuples)
 
void ConnectField (RFieldContext &fieldContext, Internal::RPageSource &pageSource, REntry &entry)
 Creates and connects a concrete field to the current page source, based on its proto field.
 
- Protected Attributes inherited from ROOT::Experimental::RNTupleProcessor
std::size_t fCurrentNTupleNumber
 
std::unique_ptr< REntryfEntry
 
std::unordered_map< std::string, RFieldContextfFieldContexts
 
NTupleSize_t fLocalEntryNumber
 
NTupleSize_t fNEntriesProcessed
 
std::vector< RNTupleOpenSpecfNTuples
 
std::unique_ptr< Internal::RPageSourcefPageSource
 

#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::unique_ptr< RNTupleModel model = nullptr 
)
private

Constructs a new RNTupleJoinProcessor.

Parameters
[in]mainNTupleThe source specification (name and storage location) of the primary 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 187 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 359 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 223 of file RNTupleProcessor.cxx.

◆ Advance()

ROOT::Experimental::NTupleSize_t ROOT::Experimental::RNTupleJoinProcessor::Advance ( )
finalprivatevirtual

Advance the processor to the next available entry.

Returns
The updated number of entries processed so far after advancing, or kInvalidNTupleIndex if the last (global) entry has been processed.

Checks if the end of the currently connected RNTuple is reached. If this is the case, either the next RNTuple is connected or the iterator has reached the end.

Implements ROOT::Experimental::RNTupleProcessor.

Definition at line 327 of file RNTupleProcessor.cxx.

◆ ConnectFields()

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

Definition at line 318 of file RNTupleProcessor.cxx.

◆ IsUsingIndex()

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

Definition at line 313 of file RNTupleProcessor.hxx.

◆ LoadEntry()

void ROOT::Experimental::RNTupleJoinProcessor::LoadEntry ( )
finalprivatevirtual

Fill the entry with values belonging to the current entry number of the primary RNTuple.

Implements ROOT::Experimental::RNTupleProcessor.

Definition at line 341 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

◆ 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 346 of file RNTupleProcessor.hxx.

Friends And Related Symbol Documentation

◆ RNTupleProcessor

friend class RNTupleProcessor
friend

Definition at line 304 of file RNTupleProcessor.hxx.

Member Data Documentation

◆ fAuxiliaryPageSources

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

Definition at line 308 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 310 of file RNTupleProcessor.hxx.

◆ fJoinIndices

std::vector<std::unique_ptr<Internal::RNTupleIndex> > ROOT::Experimental::RNTupleJoinProcessor::fJoinIndices
private

Definition at line 311 of file RNTupleProcessor.hxx.

◆ fJoinModel

std::unique_ptr<RNTupleModel> ROOT::Experimental::RNTupleJoinProcessor::fJoinModel
private

Definition at line 307 of file RNTupleProcessor.hxx.

Libraries for ROOT::Experimental::RNTupleJoinProcessor:

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