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

Meta-data stored for every field of an ntuple.

Definition at line 70 of file RNTupleDescriptor.hxx.

Public Member Functions

 RFieldDescriptor ()=default
 
 RFieldDescriptor (const RFieldDescriptor &other)=delete
 
 RFieldDescriptor (RFieldDescriptor &&other)=default
 
RFieldDescriptor Clone () const
 Get a copy of the descriptor.
 
std::unique_ptr< RFieldBaseCreateField (const RNTupleDescriptor &ntplDesc, bool continueOnError=false) const
 In general, we create a field simply from the C++ type name.
 
std::uint32_t GetColumnCardinality () const
 
const std::string & GetFieldDescription () const
 
const std::string & GetFieldName () const
 
std::uint32_t GetFieldVersion () const
 
DescriptorId_t GetId () const
 
const std::vector< DescriptorId_t > & GetLinkIds () const
 
const std::vector< DescriptorId_t > & GetLogicalColumnIds () const
 
std::uint64_t GetNRepetitions () const
 
DescriptorId_t GetParentId () const
 
DescriptorId_t GetProjectionSourceId () const
 
ENTupleStructure GetStructure () const
 
const std::string & GetTypeAlias () const
 
std::optional< std::uint32_t > GetTypeChecksum () const
 
const std::string & GetTypeName () const
 
std::uint32_t GetTypeVersion () const
 
bool IsCustomClass () const
 Tells if the field describes a user-defined class rather than a fundamental type, a collection, or one of the natively supported stdlib classes.
 
bool IsProjectedField () const
 
RFieldDescriptoroperator= (const RFieldDescriptor &other)=delete
 
RFieldDescriptoroperator= (RFieldDescriptor &&other)=default
 
bool operator== (const RFieldDescriptor &other) const
 

Private Attributes

std::uint32_t fColumnCardinality = 0
 The number of columns in the column representations of the field.
 
std::string fFieldDescription
 Free text set by the user.
 
DescriptorId_t fFieldId = kInvalidDescriptorId
 
std::string fFieldName
 The leaf name, not including parent fields.
 
std::uint32_t fFieldVersion = 0
 The version of the C++-type-to-column translation mechanics.
 
std::vector< DescriptorId_tfLinkIds
 The pointers in the other direction from parent to children.
 
std::vector< DescriptorId_tfLogicalColumnIds
 The ordered list of columns attached to this field: first by representation index then by column index.
 
std::uint64_t fNRepetitions = 0
 The number of elements per entry for fixed-size arrays.
 
DescriptorId_t fParentId = kInvalidDescriptorId
 Establishes sub field relationships, such as classes and collections.
 
DescriptorId_t fProjectionSourceId = kInvalidDescriptorId
 For projected fields, the source field ID.
 
ENTupleStructure fStructure = ENTupleStructure::kInvalid
 The structural information carried by this field in the data model tree.
 
std::string fTypeAlias
 A typedef or using directive that resolved to the type name during field creation.
 
std::optional< std::uint32_t > fTypeChecksum
 For custom classes, we store the ROOT TClass reported checksum to facilitate the use of I/O rules that identify types by their checksum.
 
std::string fTypeName
 The C++ type that was used when writing the field.
 
std::uint32_t fTypeVersion = 0
 The version of the C++ type itself.
 

Friends

class Internal::RFieldDescriptorBuilder
 
class Internal::RNTupleDescriptorBuilder
 

#include <ROOT/RNTupleDescriptor.hxx>

Constructor & Destructor Documentation

◆ RFieldDescriptor() [1/3]

ROOT::Experimental::RFieldDescriptor::RFieldDescriptor ( )
default

◆ RFieldDescriptor() [2/3]

ROOT::Experimental::RFieldDescriptor::RFieldDescriptor ( const RFieldDescriptor other)
delete

◆ RFieldDescriptor() [3/3]

ROOT::Experimental::RFieldDescriptor::RFieldDescriptor ( RFieldDescriptor &&  other)
default

Member Function Documentation

◆ Clone()

ROOT::Experimental::RFieldDescriptor ROOT::Experimental::RFieldDescriptor::Clone ( ) const

Get a copy of the descriptor.

Definition at line 47 of file RNTupleDescriptor.cxx.

◆ CreateField()

std::unique_ptr< ROOT::Experimental::RFieldBase > ROOT::Experimental::RFieldDescriptor::CreateField ( const RNTupleDescriptor ntplDesc,
bool  continueOnError = false 
) const

In general, we create a field simply from the C++ type name.

For untyped fields, however, we potentially need access to sub fields, which is provided by the ntuple descriptor argument.

Definition at line 69 of file RNTupleDescriptor.cxx.

◆ GetColumnCardinality()

std::uint32_t ROOT::Experimental::RFieldDescriptor::GetColumnCardinality ( ) const
inline

Definition at line 136 of file RNTupleDescriptor.hxx.

◆ GetFieldDescription()

const std::string & ROOT::Experimental::RFieldDescriptor::GetFieldDescription ( ) const
inline

Definition at line 127 of file RNTupleDescriptor.hxx.

◆ GetFieldName()

const std::string & ROOT::Experimental::RFieldDescriptor::GetFieldName ( ) const
inline

Definition at line 126 of file RNTupleDescriptor.hxx.

◆ GetFieldVersion()

std::uint32_t ROOT::Experimental::RFieldDescriptor::GetFieldVersion ( ) const
inline

Definition at line 124 of file RNTupleDescriptor.hxx.

◆ GetId()

DescriptorId_t ROOT::Experimental::RFieldDescriptor::GetId ( ) const
inline

Definition at line 123 of file RNTupleDescriptor.hxx.

◆ GetLinkIds()

const std::vector< DescriptorId_t > & ROOT::Experimental::RFieldDescriptor::GetLinkIds ( ) const
inline

Definition at line 134 of file RNTupleDescriptor.hxx.

◆ GetLogicalColumnIds()

const std::vector< DescriptorId_t > & ROOT::Experimental::RFieldDescriptor::GetLogicalColumnIds ( ) const
inline

Definition at line 135 of file RNTupleDescriptor.hxx.

◆ GetNRepetitions()

std::uint64_t ROOT::Experimental::RFieldDescriptor::GetNRepetitions ( ) const
inline

Definition at line 130 of file RNTupleDescriptor.hxx.

◆ GetParentId()

DescriptorId_t ROOT::Experimental::RFieldDescriptor::GetParentId ( ) const
inline

Definition at line 132 of file RNTupleDescriptor.hxx.

◆ GetProjectionSourceId()

DescriptorId_t ROOT::Experimental::RFieldDescriptor::GetProjectionSourceId ( ) const
inline

Definition at line 133 of file RNTupleDescriptor.hxx.

◆ GetStructure()

ENTupleStructure ROOT::Experimental::RFieldDescriptor::GetStructure ( ) const
inline

Definition at line 131 of file RNTupleDescriptor.hxx.

◆ GetTypeAlias()

const std::string & ROOT::Experimental::RFieldDescriptor::GetTypeAlias ( ) const
inline

Definition at line 129 of file RNTupleDescriptor.hxx.

◆ GetTypeChecksum()

std::optional< std::uint32_t > ROOT::Experimental::RFieldDescriptor::GetTypeChecksum ( ) const
inline

Definition at line 137 of file RNTupleDescriptor.hxx.

◆ GetTypeName()

const std::string & ROOT::Experimental::RFieldDescriptor::GetTypeName ( ) const
inline

Definition at line 128 of file RNTupleDescriptor.hxx.

◆ GetTypeVersion()

std::uint32_t ROOT::Experimental::RFieldDescriptor::GetTypeVersion ( ) const
inline

Definition at line 125 of file RNTupleDescriptor.hxx.

◆ IsCustomClass()

bool ROOT::Experimental::RFieldDescriptor::IsCustomClass ( ) const

Tells if the field describes a user-defined class rather than a fundamental type, a collection, or one of the natively supported stdlib classes.

The dictionary does not need to be available for this method.

Definition at line 133 of file RNTupleDescriptor.cxx.

◆ IsProjectedField()

bool ROOT::Experimental::RFieldDescriptor::IsProjectedField ( ) const
inline

Definition at line 138 of file RNTupleDescriptor.hxx.

◆ operator=() [1/2]

RFieldDescriptor & ROOT::Experimental::RFieldDescriptor::operator= ( const RFieldDescriptor other)
delete

◆ operator=() [2/2]

RFieldDescriptor & ROOT::Experimental::RFieldDescriptor::operator= ( RFieldDescriptor &&  other)
default

◆ operator==()

bool ROOT::Experimental::RFieldDescriptor::operator== ( const RFieldDescriptor other) const

Definition at line 37 of file RNTupleDescriptor.cxx.

Friends And Related Symbol Documentation

◆ Internal::RFieldDescriptorBuilder

friend class Internal::RFieldDescriptorBuilder
friend

Definition at line 72 of file RNTupleDescriptor.hxx.

◆ Internal::RNTupleDescriptorBuilder

Definition at line 71 of file RNTupleDescriptor.hxx.

Member Data Documentation

◆ fColumnCardinality

std::uint32_t ROOT::Experimental::RFieldDescriptor::fColumnCardinality = 0
private

The number of columns in the column representations of the field.

The column cardinality helps to navigate the list of logical column ids. For example, the second column of the third column representation is fLogicalColumnIds[2 * fColumnCardinality + 1]

Definition at line 102 of file RNTupleDescriptor.hxx.

◆ fFieldDescription

std::string ROOT::Experimental::RFieldDescriptor::fFieldDescription
private

Free text set by the user.

Definition at line 83 of file RNTupleDescriptor.hxx.

◆ fFieldId

DescriptorId_t ROOT::Experimental::RFieldDescriptor::fFieldId = kInvalidDescriptorId
private

Definition at line 75 of file RNTupleDescriptor.hxx.

◆ fFieldName

std::string ROOT::Experimental::RFieldDescriptor::fFieldName
private

The leaf name, not including parent fields.

Definition at line 81 of file RNTupleDescriptor.hxx.

◆ fFieldVersion

std::uint32_t ROOT::Experimental::RFieldDescriptor::fFieldVersion = 0
private

The version of the C++-type-to-column translation mechanics.

Definition at line 77 of file RNTupleDescriptor.hxx.

◆ fLinkIds

std::vector<DescriptorId_t> ROOT::Experimental::RFieldDescriptor::fLinkIds
private

The pointers in the other direction from parent to children.

They are serialized, too, to keep the order of sub fields.

Definition at line 98 of file RNTupleDescriptor.hxx.

◆ fLogicalColumnIds

std::vector<DescriptorId_t> ROOT::Experimental::RFieldDescriptor::fLogicalColumnIds
private

The ordered list of columns attached to this field: first by representation index then by column index.

Definition at line 104 of file RNTupleDescriptor.hxx.

◆ fNRepetitions

std::uint64_t ROOT::Experimental::RFieldDescriptor::fNRepetitions = 0
private

The number of elements per entry for fixed-size arrays.

Definition at line 89 of file RNTupleDescriptor.hxx.

◆ fParentId

DescriptorId_t ROOT::Experimental::RFieldDescriptor::fParentId = kInvalidDescriptorId
private

Establishes sub field relationships, such as classes and collections.

Definition at line 93 of file RNTupleDescriptor.hxx.

◆ fProjectionSourceId

DescriptorId_t ROOT::Experimental::RFieldDescriptor::fProjectionSourceId = kInvalidDescriptorId
private

For projected fields, the source field ID.

Definition at line 95 of file RNTupleDescriptor.hxx.

◆ fStructure

ENTupleStructure ROOT::Experimental::RFieldDescriptor::fStructure = ENTupleStructure::kInvalid
private

The structural information carried by this field in the data model tree.

Definition at line 91 of file RNTupleDescriptor.hxx.

◆ fTypeAlias

std::string ROOT::Experimental::RFieldDescriptor::fTypeAlias
private

A typedef or using directive that resolved to the type name during field creation.

Definition at line 87 of file RNTupleDescriptor.hxx.

◆ fTypeChecksum

std::optional<std::uint32_t> ROOT::Experimental::RFieldDescriptor::fTypeChecksum
private

For custom classes, we store the ROOT TClass reported checksum to facilitate the use of I/O rules that identify types by their checksum.

Definition at line 107 of file RNTupleDescriptor.hxx.

◆ fTypeName

std::string ROOT::Experimental::RFieldDescriptor::fTypeName
private

The C++ type that was used when writing the field.

Definition at line 85 of file RNTupleDescriptor.hxx.

◆ fTypeVersion

std::uint32_t ROOT::Experimental::RFieldDescriptor::fTypeVersion = 0
private

The version of the C++ type itself.

Definition at line 79 of file RNTupleDescriptor.hxx.

Libraries for ROOT::Experimental::RFieldDescriptor:

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