Processor specialization for processing a single RNTuple.
Definition at line 554 of file RNTupleProcessor.hxx.
|
| static std::unique_ptr< RNTupleProcessor > | Create (RNTupleOpenSpec ntuple, std::string_view processorName="") |
| | Create an RNTupleProcessor for a single RNTuple.
|
| |
| static std::unique_ptr< RNTupleProcessor > | CreateChain (std::vector< RNTupleOpenSpec > ntuples, std::string_view processorName="") |
| | 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, std::string_view processorName="") |
| | Create an RNTupleProcessor for a chain (i.e., a vertical combination) of other RNTupleProcessors.
|
| |
| static std::unique_ptr< RNTupleProcessor > | CreateJoin (RNTupleOpenSpec primaryNTuple, RNTupleOpenSpec auxNTuple, const std::vector< std::string > &joinFields, std::string_view processorName="") |
| | Create an RNTupleProcessor for a join (i.e., a horizontal combination) of RNTuples.
|
| |
| static std::unique_ptr< RNTupleProcessor > | CreateJoin (std::unique_ptr< RNTupleProcessor > primaryProcessor, std::unique_ptr< RNTupleProcessor > auxProcessor, const std::vector< std::string > &joinFields, std::string_view processorName="") |
| | Create an RNTupleProcessor for a join (i.e., a horizontal combination) of RNTuples.
|
| |
|
| | RNTupleSingleProcessor (RNTupleOpenSpec ntuple, std::string_view processorName) |
| | Construct a new RNTupleProcessor for processing a single RNTuple.
|
| |
| 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.
|
| |
| 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 > | CreateAndConnectField (const std::string &qualifiedFieldName, const std::string &typeName) |
| | Create a new field and connect it to the processor's page source.
|
| |
| 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.
|
| |
| 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().
|
| |
#include <ROOT/RNTupleProcessor.hxx>
◆ RNTupleSingleProcessor() [1/3]
| ROOT::Experimental::RNTupleSingleProcessor::RNTupleSingleProcessor |
( |
RNTupleOpenSpec | ntuple, |
|
|
std::string_view | processorName ) |
|
private |
◆ RNTupleSingleProcessor() [2/3]
◆ RNTupleSingleProcessor() [3/3]
◆ ~RNTupleSingleProcessor()
| ROOT::Experimental::RNTupleSingleProcessor::~RNTupleSingleProcessor |
( |
| ) |
|
|
inlineoverride |
◆ AddEntriesToJoinTable()
◆ AddFieldToEntry()
◆ begin()
| RIterator ROOT::Experimental::RNTupleProcessor::begin |
( |
| ) |
|
|
inlineinherited |
◆ CanReadFieldFromDisk()
| bool ROOT::Experimental::RNTupleSingleProcessor::CanReadFieldFromDisk |
( |
std::string_view | fieldName | ) |
|
|
finalprivatevirtual |
◆ Connect()
◆ Create()
◆ CreateAndConnectField()
| std::unique_ptr< ROOT::RFieldBase > ROOT::Experimental::RNTupleSingleProcessor::CreateAndConnectField |
( |
const std::string & | qualifiedFieldName, |
|
|
const std::string & | typeName ) |
|
private |
Create a new field and connect it to the processor's page source.
- Parameters
-
| [in] | qualifiedFieldName | Name of the field to add, prefixed with its parent fields, if applicable. |
| [in] | typeName | Type of the field to add. |
- Returns
- The newly created field.
- Exceptions
-
Definition at line 146 of file RNTupleProcessor.cxx.
◆ CreateChain() [1/2]
Create an RNTupleProcessor for a chain (i.e., a vertical combination) of RNTuples.
- Parameters
-
| [in] | ntuples | A list specifying the names and locations of the RNTuples to process. |
| [in] | processorName | The name to give to the processor. If empty, the name of the first RNTuple is used. |
- Returns
- A pointer to the newly created RNTupleProcessor.
Definition at line 43 of file RNTupleProcessor.cxx.
◆ CreateChain() [2/2]
Create an RNTupleProcessor for a chain (i.e., a vertical combination) of other RNTupleProcessors.
- Parameters
-
| [in] | innerProcessors | A list with the processors to chain. |
| [in] | processorName | The name to give to the processor. If empty, the name of the first inner processor is used. |
- Returns
- A pointer to the newly created RNTupleProcessor.
Definition at line 59 of file RNTupleProcessor.cxx.
◆ CreateJoin() [1/2]
Create an RNTupleProcessor for a join (i.e., a horizontal combination) of RNTuples.
- Parameters
-
| [in] | primaryNTuple | The name and location of the primary RNTuple. Its entries are processed in sequential order. |
| [in] | auxNTuple | The name and location of the RNTuple to join the primary RNTuple with. The order in which its entries are processed is determined by the primary RNTuple and doesn't necessarily have to be sequential. |
| [in] | joinFields | The names of the fields on which to join, in case the specified RNTuples are unaligned. The join is made based on the combined join field values, and therefore each field has to be present in each specified RNTuple. If an empty list is provided, it is assumed that the specified ntuple are fully aligned. |
| [in] | processorName | The name to give to the processor. If empty, the name of the primary RNTuple is used. |
- Returns
- A pointer to the newly created RNTupleProcessor.
Definition at line 69 of file RNTupleProcessor.cxx.
◆ CreateJoin() [2/2]
Create an RNTupleProcessor for a join (i.e., a horizontal combination) of RNTuples.
- Parameters
-
| [in] | primaryProcessor | The primary processor. Its entries are processed in sequential order. |
| [in] | auxProcessor | The processor to join the primary processor with. The order in which its entries are processed is determined by the primary processor and doesn't necessarily have to be sequential. |
| [in] | joinFields | The names of the fields on which to join, in case the specified processors are unaligned. The join is made based on the combined join field values, and therefore each field has to be present in each specified processors. If an empty list is provided, it is assumed that the specified processors are fully aligned. |
| [in] | processorName | The name to give to the processor. If empty, the name of the primary processor is used. |
- Returns
- A pointer to the newly created RNTupleProcessor.
Definition at line 89 of file RNTupleProcessor.cxx.
◆ end()
| RIterator ROOT::Experimental::RNTupleProcessor::end |
( |
| ) |
|
|
inlineinherited |
◆ GetCurrentEntryNumber()
◆ GetCurrentProcessorNumber()
| std::size_t ROOT::Experimental::RNTupleProcessor::GetCurrentProcessorNumber |
( |
| ) |
const |
|
inlineinherited |
Get the number of the inner processor currently being read.
This method is only relevant for the RNTupleChainProcessor. For the other processors, 0 is always returned.
Definition at line 361 of file RNTupleProcessor.hxx.
◆ GetNEntries()
|
|
inlinefinalprivatevirtual |
◆ GetNEntriesProcessed()
◆ GetProcessorName()
| const std::string & ROOT::Experimental::RNTupleProcessor::GetProcessorName |
( |
| ) |
const |
|
inlineinherited |
◆ Initialize()
◆ IsInitialized()
| bool ROOT::Experimental::RNTupleProcessor::IsInitialized |
( |
| ) |
const |
|
inlineprotectedinherited |
◆ LoadEntry()
◆ operator=() [1/2]
◆ operator=() [2/2]
◆ PrintStructure()
| void ROOT::Experimental::RNTupleProcessor::PrintStructure |
( |
std::ostream & | output = std::cout | ) |
|
|
inlineinherited |
Print a graphical representation of the processor composition.
- Parameters
-
| [in,out] | output | Stream to print to (default is stdout). |
Example:
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 417 of file RNTupleProcessor.hxx.
◆ PrintStructureImpl()
| void ROOT::Experimental::RNTupleSingleProcessor::PrintStructureImpl |
( |
std::ostream & | output | ) |
const |
|
finalprivatevirtual |
◆ RequestField()
Request access to a field for reading during processing.
- Template Parameters
-
| T | Type of the requested field. |
- Parameters
-
| [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. |
- Returns
- An RNTupleProcessorOptionalPtr, which provides access to the field's value.
- Warning
- Provide a
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 388 of file RNTupleProcessor.hxx.
◆ RNTupleProcessor
◆ fCurrentEntryNumber
◆ fCurrentProcessorNumber
| std::size_t ROOT::Experimental::RNTupleProcessor::fCurrentProcessorNumber = 0 |
|
protectedinherited |
◆ fEntry
◆ fFieldIdxs
◆ fNEntries
Total number of entries.
Only to be used internally by the processor, not meant to be exposed in the public interface.
Definition at line 261 of file RNTupleProcessor.hxx.
◆ fNEntriesProcessed
◆ fNTupleSpec
◆ fPageSource
◆ fProcessorName
| std::string ROOT::Experimental::RNTupleProcessor::fProcessorName |
|
protectedinherited |
The documentation for this class was generated from the following files: