Logo ROOT  
Reference Guide
 
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Loading...
Searching...
No Matches
ROOT::Experimental::RNTupleDescriptor::RHeaderExtension Class Reference

Summarizes information about fields and the corresponding columns that were added after the header has been serialized.

Definition at line 1085 of file RNTupleDescriptor.hxx.

Public Member Functions

bool ContainsExtendedColumnRepresentation (ROOT::DescriptorId_t columnId) const
 
bool ContainsField (ROOT::DescriptorId_t fieldId) const
 
const std::vector< ROOT::DescriptorId_t > & GetExtendedColumnRepresentations () const
 
std::size_t GetNFields () const
 
std::size_t GetNLogicalColumns () const
 
std::size_t GetNPhysicalColumns () const
 
std::vector< ROOT::DescriptorId_tGetTopLevelFields (const RNTupleDescriptor &desc) const
 Return a vector containing the IDs of the top-level fields defined in the extension header, in the order of their addition.
 

Private Member Functions

void MarkExtendedColumn (const RColumnDescriptor &columnDesc)
 Marks columnDesc as an extended column, i.e.
 
void MarkExtendedField (const RFieldDescriptor &fieldDesc)
 Marks fieldDesc as an extended field, i.e.
 

Private Attributes

std::vector< ROOT::DescriptorId_tfExtendedColumnRepresentations
 All logical column IDs of columns that extend, with additional column representations, fields of the regular header.
 
std::unordered_set< ROOT::DescriptorId_tfFieldIdsLookup
 All field IDs of late model extensions for efficient lookup.
 
std::vector< ROOT::DescriptorId_tfFieldIdsOrder
 All field IDs of late model extensions, in the order of field addition.
 
std::uint32_t fNLogicalColumns = 0
 Number of logical and physical columns; updated by the descriptor builder when columns are added.
 
std::uint32_t fNPhysicalColumns = 0
 

Friends

class Internal::RNTupleDescriptorBuilder
 

#include <ROOT/RNTupleDescriptor.hxx>

Member Function Documentation

◆ ContainsExtendedColumnRepresentation()

bool ROOT::Experimental::RNTupleDescriptor::RHeaderExtension::ContainsExtendedColumnRepresentation ( ROOT::DescriptorId_t columnId) const
inline

Definition at line 1144 of file RNTupleDescriptor.hxx.

◆ ContainsField()

bool ROOT::Experimental::RNTupleDescriptor::RHeaderExtension::ContainsField ( ROOT::DescriptorId_t fieldId) const
inline

Definition at line 1140 of file RNTupleDescriptor.hxx.

◆ GetExtendedColumnRepresentations()

const std::vector< ROOT::DescriptorId_t > & ROOT::Experimental::RNTupleDescriptor::RHeaderExtension::GetExtendedColumnRepresentations ( ) const
inline

Definition at line 1130 of file RNTupleDescriptor.hxx.

◆ GetNFields()

std::size_t ROOT::Experimental::RNTupleDescriptor::RHeaderExtension::GetNFields ( ) const
inline

Definition at line 1127 of file RNTupleDescriptor.hxx.

◆ GetNLogicalColumns()

std::size_t ROOT::Experimental::RNTupleDescriptor::RHeaderExtension::GetNLogicalColumns ( ) const
inline

Definition at line 1128 of file RNTupleDescriptor.hxx.

◆ GetNPhysicalColumns()

std::size_t ROOT::Experimental::RNTupleDescriptor::RHeaderExtension::GetNPhysicalColumns ( ) const
inline

Definition at line 1129 of file RNTupleDescriptor.hxx.

◆ GetTopLevelFields()

std::vector< ROOT::DescriptorId_t > ROOT::Experimental::RNTupleDescriptor::RHeaderExtension::GetTopLevelFields ( const RNTupleDescriptor & desc) const

Return a vector containing the IDs of the top-level fields defined in the extension header, in the order of their addition.

We cannot create this vector when building the fFields because at the time when AddExtendedField is called, the field is not yet linked into the schema tree.

Definition at line 542 of file RNTupleDescriptor.cxx.

◆ MarkExtendedColumn()

void ROOT::Experimental::RNTupleDescriptor::RHeaderExtension::MarkExtendedColumn ( const RColumnDescriptor & columnDesc)
inlineprivate

Marks columnDesc as an extended column, i.e.

a column that appears in the Header Extension (e.g. having been added through late model extension as an additional representation of an existing column). Note that the column descriptor should also have been added to the RNTuple Descriptor alongside non-extended columns.

Definition at line 1116 of file RNTupleDescriptor.hxx.

◆ MarkExtendedField()

void ROOT::Experimental::RNTupleDescriptor::RHeaderExtension::MarkExtendedField ( const RFieldDescriptor & fieldDesc)
inlineprivate

Marks fieldDesc as an extended field, i.e.

a field that appears in the Header Extension (e.g. having been added through late model extension). Note that the field descriptor should also have been added to the RNTuple Descriptor alongside non-extended fields.

Definition at line 1107 of file RNTupleDescriptor.hxx.

Friends And Related Symbol Documentation

◆ Internal::RNTupleDescriptorBuilder

Definition at line 1086 of file RNTupleDescriptor.hxx.

Member Data Documentation

◆ fExtendedColumnRepresentations

std::vector<ROOT::DescriptorId_t> ROOT::Experimental::RNTupleDescriptor::RHeaderExtension::fExtendedColumnRepresentations
private

All logical column IDs of columns that extend, with additional column representations, fields of the regular header.

During serialization, these columns are not picked up as columns of fFieldIdsOrder. But instead these columns need to be serialized in the extension header without re-serializing the field.

Definition at line 1099 of file RNTupleDescriptor.hxx.

◆ fFieldIdsLookup

std::unordered_set<ROOT::DescriptorId_t> ROOT::Experimental::RNTupleDescriptor::RHeaderExtension::fFieldIdsLookup
private

All field IDs of late model extensions for efficient lookup.

When a column gets added to the extension header, this enables us to determine if the column belongs to a field of the header extension of if it belongs to a field of the regular header that gets extended by additional column representations.

Definition at line 1095 of file RNTupleDescriptor.hxx.

◆ fFieldIdsOrder

std::vector<ROOT::DescriptorId_t> ROOT::Experimental::RNTupleDescriptor::RHeaderExtension::fFieldIdsOrder
private

All field IDs of late model extensions, in the order of field addition.

This is necessary to serialize the the fields in that order.

Definition at line 1091 of file RNTupleDescriptor.hxx.

◆ fNLogicalColumns

std::uint32_t ROOT::Experimental::RNTupleDescriptor::RHeaderExtension::fNLogicalColumns = 0
private

Number of logical and physical columns; updated by the descriptor builder when columns are added.

Definition at line 1101 of file RNTupleDescriptor.hxx.

◆ fNPhysicalColumns

std::uint32_t ROOT::Experimental::RNTupleDescriptor::RHeaderExtension::fNPhysicalColumns = 0
private

Definition at line 1102 of file RNTupleDescriptor.hxx.

Libraries for ROOT::Experimental::RNTupleDescriptor::RHeaderExtension:

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