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

A helper class for piece-wise construction of an RNTupleDescriptor.

Used by RPageStorage implementations in order to construct the RNTupleDescriptor from the various header parts.

Definition at line 1362 of file RNTupleDescriptor.hxx.

Public Member Functions

RResult< void > AddCluster (RClusterDescriptor &&clusterDesc)
 
RResult< void > AddClusterGroup (RClusterGroupDescriptor &&clusterGroup)
 
RResult< void > AddColumn (RColumnDescriptor &&columnDesc)
 
RResult< void > AddExtraTypeInfo (RExtraTypeInfoDescriptor &&extraTypeInfoDesc)
 
void AddField (const RFieldDescriptor &fieldDesc)
 
RResult< void > AddFieldLink (DescriptorId_t fieldId, DescriptorId_t linkId)
 
RResult< void > AddFieldProjection (DescriptorId_t sourceId, DescriptorId_t targetId)
 
void AddToOnDiskFooterSize (std::uint64_t size)
 The real footer size also include the page list envelopes.
 
void BeginHeaderExtension ()
 Mark the beginning of the header extension; any fields and columns added after a call to this function are annotated as begin part of the header extension.
 
RNTupleSerializer::StreamerInfoMap_t BuildStreamerInfos () const
 Get the streamer info records for custom classes. Currently requires the corresponding dictionaries to be loaded.
 
RResult< void > EnsureValidDescriptor () const
 Checks whether invariants hold:
 
const RNTupleDescriptorGetDescriptor () const
 
RNTupleDescriptor MoveDescriptor ()
 
void Reset ()
 Clears so-far stored clusters, fields, and columns and return to a pristine ntuple descriptor.
 
void SetFeature (unsigned int flag)
 
void SetNTuple (const std::string_view name, const std::string_view description)
 
void SetOnDiskHeaderSize (std::uint64_t size)
 
void SetOnDiskHeaderXxHash3 (std::uint64_t xxhash3)
 
void ShiftAliasColumns (std::uint32_t offset)
 If the descriptor is constructed in pieces consisting of physical and alias columns (regular and projected fields), the natural column order would be.
 

Private Member Functions

RResult< void > EnsureFieldExists (DescriptorId_t fieldId) const
 

Private Attributes

RNTupleDescriptor fDescriptor
 

#include <ROOT/RNTupleDescriptor.hxx>

Member Function Documentation

◆ AddCluster()

ROOT::Experimental::RResult< void > ROOT::Experimental::Internal::RNTupleDescriptorBuilder::AddCluster ( RClusterDescriptor &&  clusterDesc)

Definition at line 1092 of file RNTupleDescriptor.cxx.

◆ AddClusterGroup()

ROOT::Experimental::RResult< void > ROOT::Experimental::Internal::RNTupleDescriptorBuilder::AddClusterGroup ( RClusterGroupDescriptor &&  clusterGroup)

Definition at line 1040 of file RNTupleDescriptor.cxx.

◆ AddColumn()

ROOT::Experimental::RResult< void > ROOT::Experimental::Internal::RNTupleDescriptorBuilder::AddColumn ( RColumnDescriptor &&  columnDesc)

Definition at line 985 of file RNTupleDescriptor.cxx.

◆ AddExtraTypeInfo()

ROOT::Experimental::RResult< void > ROOT::Experimental::Internal::RNTupleDescriptorBuilder::AddExtraTypeInfo ( RExtraTypeInfoDescriptor &&  extraTypeInfoDesc)

Definition at line 1102 of file RNTupleDescriptor.cxx.

◆ AddField()

void ROOT::Experimental::Internal::RNTupleDescriptorBuilder::AddField ( const RFieldDescriptor fieldDesc)

Definition at line 920 of file RNTupleDescriptor.cxx.

◆ AddFieldLink()

ROOT::Experimental::RResult< void > ROOT::Experimental::Internal::RNTupleDescriptorBuilder::AddFieldLink ( DescriptorId_t  fieldId,
DescriptorId_t  linkId 
)

Definition at line 931 of file RNTupleDescriptor.cxx.

◆ AddFieldProjection()

ROOT::Experimental::RResult< void > ROOT::Experimental::Internal::RNTupleDescriptorBuilder::AddFieldProjection ( DescriptorId_t  sourceId,
DescriptorId_t  targetId 
)

Definition at line 956 of file RNTupleDescriptor.cxx.

◆ AddToOnDiskFooterSize()

void ROOT::Experimental::Internal::RNTupleDescriptorBuilder::AddToOnDiskFooterSize ( std::uint64_t  size)
inline

The real footer size also include the page list envelopes.

Definition at line 1382 of file RNTupleDescriptor.hxx.

◆ BeginHeaderExtension()

void ROOT::Experimental::Internal::RNTupleDescriptorBuilder::BeginHeaderExtension ( )

Mark the beginning of the header extension; any fields and columns added after a call to this function are annotated as begin part of the header extension.

Definition at line 1062 of file RNTupleDescriptor.cxx.

◆ BuildStreamerInfos()

ROOT::Experimental::Internal::RNTupleSerializer::StreamerInfoMap_t ROOT::Experimental::Internal::RNTupleDescriptorBuilder::BuildStreamerInfos ( ) const

Get the streamer info records for custom classes. Currently requires the corresponding dictionaries to be loaded.

Definition at line 1114 of file RNTupleDescriptor.cxx.

◆ EnsureFieldExists()

ROOT::Experimental::RResult< void > ROOT::Experimental::Internal::RNTupleDescriptorBuilder::EnsureFieldExists ( DescriptorId_t  fieldId) const
private

Definition at line 785 of file RNTupleDescriptor.cxx.

◆ EnsureValidDescriptor()

ROOT::Experimental::RResult< void > ROOT::Experimental::Internal::RNTupleDescriptorBuilder::EnsureValidDescriptor ( ) const

Checks whether invariants hold:

  • NTuple name is valid
  • Fields have valid parents
  • Number of columns is constant across column representations

Definition at line 792 of file RNTupleDescriptor.cxx.

◆ GetDescriptor()

const RNTupleDescriptor & ROOT::Experimental::Internal::RNTupleDescriptorBuilder::GetDescriptor ( ) const
inline

Definition at line 1373 of file RNTupleDescriptor.hxx.

◆ MoveDescriptor()

ROOT::Experimental::RNTupleDescriptor ROOT::Experimental::Internal::RNTupleDescriptorBuilder::MoveDescriptor ( )

Definition at line 827 of file RNTupleDescriptor.cxx.

◆ Reset()

void ROOT::Experimental::Internal::RNTupleDescriptorBuilder::Reset ( )

Clears so-far stored clusters, fields, and columns and return to a pristine ntuple descriptor.

Definition at line 1051 of file RNTupleDescriptor.cxx.

◆ SetFeature()

void ROOT::Experimental::Internal::RNTupleDescriptorBuilder::SetFeature ( unsigned int  flag)

Definition at line 842 of file RNTupleDescriptor.cxx.

◆ SetNTuple()

void ROOT::Experimental::Internal::RNTupleDescriptorBuilder::SetNTuple ( const std::string_view  name,
const std::string_view  description 
)

Definition at line 835 of file RNTupleDescriptor.cxx.

◆ SetOnDiskHeaderSize()

void ROOT::Experimental::Internal::RNTupleDescriptorBuilder::SetOnDiskHeaderSize ( std::uint64_t  size)
inline

Definition at line 1380 of file RNTupleDescriptor.hxx.

◆ SetOnDiskHeaderXxHash3()

void ROOT::Experimental::Internal::RNTupleDescriptorBuilder::SetOnDiskHeaderXxHash3 ( std::uint64_t  xxhash3)
inline

Definition at line 1379 of file RNTupleDescriptor.hxx.

◆ ShiftAliasColumns()

void ROOT::Experimental::Internal::RNTupleDescriptorBuilder::ShiftAliasColumns ( std::uint32_t  offset)

If the descriptor is constructed in pieces consisting of physical and alias columns (regular and projected fields), the natural column order would be.

  • Physical and alias columns of piece one
  • Physical and alias columns of piece two
  • etc. What we want, however, are first all physical column IDs and then all alias column IDs. This method adds offset to the logical column IDs of all alias columns and fixes up the corresponding column IDs in the projected field descriptors. In this way, a new piece of physical and alias columns can first shift the existing alias columns by the number of new physical columns, resulting in the following order
  • Physical columns of piece one
  • Physical columns of piece two
  • ...

Logical columns of piece two

  • ...

Definition at line 1068 of file RNTupleDescriptor.cxx.

Member Data Documentation

◆ fDescriptor

RNTupleDescriptor ROOT::Experimental::Internal::RNTupleDescriptorBuilder::fDescriptor
private

Definition at line 1364 of file RNTupleDescriptor.hxx.

Libraries for ROOT::Experimental::Internal::RNTupleDescriptorBuilder:

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