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 REntry & | GetEntry () 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. | |
RNTupleProcessor & | operator= (const RNTupleProcessor &)=delete |
RNTupleProcessor & | operator= (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::RFieldToken > | fJoinFieldTokens |
Tokens representing the join fields present in the main RNTuple. | |
std::vector< std::unique_ptr< Internal::RNTupleIndex > > | fJoinIndices |
std::unique_ptr< RNTupleModel > | fJoinModel |
Friends | |
class | RNTupleProcessor |
Additional Inherited Members | |
Static Public Member Functions inherited from ROOT::Experimental::RNTupleProcessor | |
static std::unique_ptr< RNTupleProcessor > | CreateChain (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< RNTupleProcessor > | CreateJoin (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< REntry > | fEntry |
std::unordered_map< std::string, RFieldContext > | fFieldContexts |
NTupleSize_t | fLocalEntryNumber |
NTupleSize_t | fNEntriesProcessed |
std::vector< RNTupleOpenSpec > | fNTuples |
std::unique_ptr< Internal::RPageSource > | fPageSource |
#include <ROOT/RNTupleProcessor.hxx>
|
private |
Constructs a new RNTupleJoinProcessor.
[in] | mainNTuple | The source specification (name and storage location) of the primary RNTuple. |
[in] | model | The 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.
|
delete |
|
delete |
|
inlineoverride |
Definition at line 359 of file RNTupleProcessor.hxx.
|
private |
Add an auxiliary RNTuple to the processor.
[in] | auxNTuple | The source specification (name and storage location) of the auxiliary RNTuple. |
[in] | joinFields | The names of the fields used in the join. |
[in] | model | The 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.
|
finalprivatevirtual |
Advance the processor to the next available entry.
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.
|
private |
Definition at line 318 of file RNTupleProcessor.cxx.
|
inlineprivate |
Definition at line 313 of file RNTupleProcessor.hxx.
|
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.
|
delete |
|
delete |
|
inlineprivate |
Populate fJoinFieldTokens with tokens for join fields belonging to the main RNTuple in the join model.
[in] | joinFields | The names of the fields used in the join. |
Definition at line 346 of file RNTupleProcessor.hxx.
|
friend |
Definition at line 304 of file RNTupleProcessor.hxx.
|
private |
Definition at line 308 of file RNTupleProcessor.hxx.
|
private |
Tokens representing the join fields present in the main RNTuple.
Definition at line 310 of file RNTupleProcessor.hxx.
|
private |
Definition at line 311 of file RNTupleProcessor.hxx.
|
private |
Definition at line 307 of file RNTupleProcessor.hxx.