Processor specialization for processing a single RNTuple.
Definition at line 773 of file RNTupleProcessor.hxx.
Public Member Functions | |
| RNTupleSingleProcessor (const RNTupleSingleProcessor &)=delete | |
| RNTupleSingleProcessor (RNTupleSingleProcessor &&)=delete | |
| ~RNTupleSingleProcessor () override | |
| RIterator | begin () |
| RIterator | end () |
| ROOT::NTupleSize_t | GetNEntriesProcessed () const |
| Get the total number of entries processed so far. | |
| const RNTupleProcessorOptions & | GetOptions () const |
| Get the options used for this processor. | |
| void | LoadEntry (const REntryMapping &mapping) |
| Load the entry identified by the entry mapping. | |
| RNTupleSingleProcessor & | operator= (const RNTupleSingleProcessor &)=delete |
| RNTupleSingleProcessor & | operator= (RNTupleSingleProcessor &&)=delete |
| void | PrintStructure (std::ostream &output=std::cout) |
| Print a graphical representation of the processor composition. | |
| RNTupleProcessorOptionalPtr< void > | RequestField (const std::string &fieldName, const std::string &typeName, void *valuePtr=nullptr) |
| Request access to a field for reading during processing. | |
| template<typename T > | |
| RNTupleProcessorOptionalPtr< T > | RequestField (const std::string &fieldName, void *valuePtr=nullptr) |
| Request access to a field for reading during processing. | |
Static Public Member Functions | |
| static std::unique_ptr< RNTupleProcessor > | Create (RNTupleOpenSpec ntuple, const RNTupleProcessorOptions &opts=RNTupleProcessorOptions()) |
| Create an RNTupleProcessor for a single RNTuple. | |
| static std::unique_ptr< RNTupleProcessor > | CreateChain (std::vector< RNTupleOpenSpec > ntuples, const RNTupleProcessorOptions &opts=RNTupleProcessorOptions()) |
| Create an RNTupleProcessor for a chain (i.e., a vertical combination) of RNTuples. | |
| static std::unique_ptr< RNTupleProcessor > | CreateChain (std::vector< std::unique_ptr< RNTupleProcessor > > innerProcessors, const RNTupleProcessorOptions &opts=RNTupleProcessorOptions()) |
| Create an RNTupleProcessor for a chain (i.e., a vertical combination) of other RNTupleProcessors. | |
Protected Member Functions | |
| Internal::RNTupleProcessorEntry & | GetEntry () |
| Get a reference to the processor's internal entry. | |
| const Internal::RNTupleProcessorEntry & | GetEntry () const |
| Get a reference to the processor's internal entry. | |
| void | IncrementEntryMapping (REntryMapping &mapping) |
| Increment the local entry mapping by one. | |
| bool | IsInitialized () const |
| Check if the processor already has been initialized. | |
Protected Attributes | |
| std::shared_ptr< Internal::RNTupleProcessorEntry > | fEntry = nullptr |
| std::unordered_set< Internal::RNTupleProcessorEntry::FieldIndex_t > | fFieldIdxs |
| ROOT::NTupleSize_t | fNEntries = kInvalidNTupleIndex |
| Total number of entries. | |
| ROOT::NTupleSize_t | fNEntriesProcessed = 0 |
| RNTupleProcessorOptions | fOptions |
Private Member Functions | |
| RNTupleSingleProcessor (RNTupleOpenSpec ntuple, const RNTupleProcessorOptions &opts) | |
| Construct a new RNTupleProcessor for processing a single RNTuple. | |
| void | AddAllFieldsToEntry (const Internal::RNTupleProcessorProvenance &provenance, bool includeSubfields) final |
| Add all known fields (from on-disk information) to the entry. | |
| void | AddEntriesToJoinTable (Internal::RNTupleJoinTable &joinTable, ROOT::NTupleSize_t entryOffset=0) final |
| Add the entry mappings for this processor to the provided join table. | |
| Internal::RNTupleProcessorEntry::FieldIndex_t | AddFieldToEntry (const std::string &fieldName, const std::string &typeName, void *valuePtr=nullptr, const Internal::RNTupleProcessorProvenance &provenance=Internal::RNTupleProcessorProvenance()) final |
| Add a field to the entry. | |
| Internal::RNTupleProcessorEntry::FieldIndex_t | AddFieldToEntry (std::unique_ptr< ROOT::RFieldBase > field, const std::string &fieldName, void *valuePtr, const Internal::RNTupleProcessorProvenance &provenance) final |
| Add a field to the entry. | |
| bool | CanReadFieldFromDisk (std::string_view fieldName) final |
| Check if a field exists on-disk and can be read by the processor. | |
| void | Connect (const std::unordered_set< Internal::RNTupleProcessorEntry::FieldIndex_t > &fieldIdxs, const Internal::RNTupleProcessorProvenance &provenance=Internal::RNTupleProcessorProvenance(), bool updateFields=false) final |
| Connect the provided fields indices in the entry to their on-disk fields. | |
| std::unique_ptr< ROOT::RFieldBase > | ConnectField (std::unique_ptr< ROOT::RFieldBase > field) |
| Connect an existing field to the processor's page source. | |
| std::unique_ptr< ROOT::RFieldBase > | CreateAndConnectField (const std::string &qualifiedFieldName, const std::string &typeName) |
| Create a new field and connect it to the processor's page source. | |
| void | Disconnect () final |
| Disconnect the processor from associated physical storage. | |
| ROOT::NTupleSize_t | GetNEntries () final |
| Get the total number of entries in this processor. | |
| void | Initialize (std::shared_ptr< Internal::RNTupleProcessorEntry > entry=nullptr) final |
Initialize the processor by creating an (initially empty) fEntry, or setting an existing one. | |
| void | LoadEntryImpl (const REntryMapping &mapping) final |
| Load the entry identified by the entry mapping. | |
| void | PrintStructureImpl (std::ostream &output) const final |
| Processor-specific implementation for printing its structure, called by PrintStructure(). | |
| void | SetEntryMapping (ROOT::NTupleSize_t globalEntryNumber, REntryMapping &mapping) final |
| Set the local entry mapping (for nested processors), according to a global entry number. | |
Private Attributes | |
| RNTupleOpenSpec | fNTupleSpec |
| std::unique_ptr< ROOT::Internal::RPageSource > | fPageSource |
Friends | |
| class | RNTupleProcessor |
#include <ROOT/RNTupleProcessor.hxx>
|
private |
Construct a new RNTupleProcessor for processing a single RNTuple.
| [in] | ntuple | The source specification (name and storage location) for the RNTuple to process. |
| [in] | opts | Options for the processor. |
Definition at line 118 of file RNTupleProcessor.cxx.
|
delete |
|
delete |
|
inlineoverride |
Definition at line 890 of file RNTupleProcessor.hxx.
|
finalprivatevirtual |
Add all known fields (from on-disk information) to the entry.
Implements ROOT::Experimental::RNTupleProcessor.
Definition at line 256 of file RNTupleProcessor.cxx.
|
finalprivatevirtual |
Add the entry mappings for this processor to the provided join table.
Implements ROOT::Experimental::RNTupleProcessor.
Definition at line 332 of file RNTupleProcessor.cxx.
|
finalprivatevirtual |
Add a field to the entry.
Implements ROOT::Experimental::RNTupleProcessor.
Definition at line 203 of file RNTupleProcessor.cxx.
|
finalprivatevirtual |
Add a field to the entry.
Implements ROOT::Experimental::RNTupleProcessor.
Definition at line 230 of file RNTupleProcessor.cxx.
|
inlineinherited |
Definition at line 731 of file RNTupleProcessor.hxx.
|
finalprivatevirtual |
Check if a field exists on-disk and can be read by the processor.
Implements ROOT::Experimental::RNTupleProcessor.
Definition at line 145 of file RNTupleProcessor.cxx.
|
finalprivatevirtual |
Connect the provided fields indices in the entry to their on-disk fields.
Implements ROOT::Experimental::RNTupleProcessor.
Definition at line 306 of file RNTupleProcessor.cxx.
|
private |
Connect an existing field to the processor's page source.
| [in] | field | Pointer to the field to add |
Definition at line 193 of file RNTupleProcessor.cxx.
|
staticinherited |
Create an RNTupleProcessor for a single RNTuple.
| [in] | ntuple | The name and storage location of the RNTuple to process. |
| [in] | opts | Options for the processor. |
Definition at line 46 of file RNTupleProcessor.cxx.
|
private |
Create a new field and connect it to the processor's page source.
| [in] | qualifiedFieldName | Name of the field to add, prefixed with its parent fields, if applicable. |
| [in] | typeName | Type of the field to add. |
| ROOT::RException | In case the requested field cannot be found on disk. |
Definition at line 156 of file RNTupleProcessor.cxx.
|
staticinherited |
Create an RNTupleProcessor for a chain (i.e., a vertical combination) of RNTuples.
| [in] | ntuples | A list specifying the names and locations of the RNTuples to process. |
| [in] | opts | Options for the processor. |
Definition at line 52 of file RNTupleProcessor.cxx.
|
staticinherited |
Create an RNTupleProcessor for a chain (i.e., a vertical combination) of other RNTupleProcessors.
| [in] | innerProcessors | A list with the processors to chain. |
| [in] | opts | Options for the processor. |
Definition at line 69 of file RNTupleProcessor.cxx.
|
finalprivatevirtual |
Disconnect the processor from associated physical storage.
Implements ROOT::Experimental::RNTupleProcessor.
Definition at line 324 of file RNTupleProcessor.cxx.
|
inlineinherited |
Definition at line 732 of file RNTupleProcessor.hxx.
|
inlineprotectedinherited |
Get a reference to the processor's internal entry.
Definition at line 487 of file RNTupleProcessor.hxx.
|
inlineprotectedinherited |
Get a reference to the processor's internal entry.
Definition at line 491 of file RNTupleProcessor.hxx.
|
inlinefinalprivatevirtual |
Get the total number of entries in this processor.
Implements ROOT::Experimental::RNTupleProcessor.
Definition at line 831 of file RNTupleProcessor.hxx.
|
inlineinherited |
Get the total number of entries processed so far.
Definition at line 582 of file RNTupleProcessor.hxx.
|
inlineinherited |
Get the options used for this processor.
Definition at line 578 of file RNTupleProcessor.hxx.
|
inlineprotectedinherited |
Increment the local entry mapping by one.
| [in] | mapping | Entry mapping to increment |
Definition at line 477 of file RNTupleProcessor.hxx.
|
finalprivatevirtual |
Initialize the processor by creating an (initially empty) fEntry, or setting an existing one.
At this point, the page source for the underlying RNTuple of the processor will be created and opened.
Implements ROOT::Experimental::RNTupleProcessor.
Definition at line 127 of file RNTupleProcessor.cxx.
|
inlineprotectedinherited |
Check if the processor already has been initialized.
Definition at line 450 of file RNTupleProcessor.hxx.
|
inlineinherited |
Load the entry identified by the entry mapping.
| [in] | mapping | Mapping to the entry to load |
Definition at line 654 of file RNTupleProcessor.hxx.
|
finalprivatevirtual |
Load the entry identified by the entry mapping.
Implements ROOT::Experimental::RNTupleProcessor.
Definition at line 295 of file RNTupleProcessor.cxx.
|
delete |
|
delete |
|
inlineinherited |
Print a graphical representation of the processor composition.
| [in,out] | output | Stream to print to (default is stdout). |
The structure of a processor representing a join between a single primary RNTuple and a chain of two auxiliary RNTuples will be printed as follows:
Definition at line 674 of file RNTupleProcessor.hxx.
|
finalprivatevirtual |
Processor-specific implementation for printing its structure, called by PrintStructure().
Implements ROOT::Experimental::RNTupleProcessor.
Definition at line 339 of file RNTupleProcessor.cxx.
|
inlineinherited |
Request access to a field for reading during processing.
| [in] | fieldName | Name of the requested field. |
| [in] | typeName | Type of the requested field. |
| [in] | valuePtr | Pointer to bind to the field's value in the entry. If this is a nullptr, a pointer will be created. |
valuePtr with care! Values may not always be valid for every entry during processing, for example when a field is not present in one of the chained processors or when during a join operation, no matching entry in the auxiliary processor can be found. Reading valuePtr as-is therefore comes with the risk of reading invalid data. After passing a pointer to RequestField, we strongly recommend only accessing its data through the interface of the returned RNTupleProcessorOptionalPtr, to ensure that only valid data can be read. Definition at line 643 of file RNTupleProcessor.hxx.
|
inlineinherited |
Request access to a field for reading during processing.
| T | Type of the requested field. |
| [in] | fieldName | Name of the requested field. |
| [in] | valuePtr | Pointer to bind to the field's value in the entry. If this is a nullptr, a pointer will be created. |
T, which provides access to the field's value.valuePtr with care! Values may not always be valid for every entry during processing, for example when a field is not present in one of the chained processors or when during a join operation, no matching entry in the auxiliary processor can be found. Reading valuePtr as-is therefore comes with the risk of reading invalid data. After passing a pointer to RequestField, we strongly recommend only accessing its data through the interface of the returned RNTupleProcessorOptionalPtr, to ensure that only valid data can be read. Definition at line 601 of file RNTupleProcessor.hxx.
|
finalprivatevirtual |
Set the local entry mapping (for nested processors), according to a global entry number.
Implements ROOT::Experimental::RNTupleProcessor.
Definition at line 286 of file RNTupleProcessor.cxx.
|
friend |
Definition at line 774 of file RNTupleProcessor.hxx.
|
protectedinherited |
Definition at line 435 of file RNTupleProcessor.hxx.
|
protectedinherited |
Definition at line 436 of file RNTupleProcessor.hxx.
|
protectedinherited |
Total number of entries.
Only to be used internally by the processor, not meant to be exposed in the public interface.
Definition at line 440 of file RNTupleProcessor.hxx.
|
protectedinherited |
Definition at line 442 of file RNTupleProcessor.hxx.
|
private |
Definition at line 777 of file RNTupleProcessor.hxx.
|
protectedinherited |
Definition at line 433 of file RNTupleProcessor.hxx.
|
private |
Definition at line 778 of file RNTupleProcessor.hxx.