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

A model is usually immutable after passing it to an RNTupleWriter.

However, for the rare cases that require changing the model after the fact, RUpdater provides limited support for incremental updates, e.g. addition of new fields.

See RNTupleWriter::CreateModelUpdater() for an example.

Definition at line 165 of file RNTupleModel.hxx.

Public Member Functions

 RUpdater (RNTupleWriter &writer)
 
 ~RUpdater ()
 
void AddField (std::unique_ptr< RFieldBase > field)
 
RResult< void > AddProjectedField (std::unique_ptr< RFieldBase > field, FieldMappingFunc_t mapping)
 
void BeginUpdate ()
 Begin a new set of alterations to the underlying model.
 
void CommitUpdate ()
 Commit changes since the last call to BeginUpdate().
 
template<typename T >
std::shared_ptr< T > MakeField (const NameWithDescription_t &fieldNameDesc)
 

Private Attributes

std::uint64_t fNewModelId = 0
 The model ID after committing.
 
Internal::RNTupleModelChangeset fOpenChangeset
 
RNTupleWriterfWriter
 

#include <ROOT/RNTupleModel.hxx>

Constructor & Destructor Documentation

◆ RUpdater()

ROOT::Experimental::RNTupleModel::RUpdater::RUpdater ( RNTupleWriter & writer)
explicit

Definition at line 173 of file RNTupleModel.cxx.

◆ ~RUpdater()

ROOT::Experimental::RNTupleModel::RUpdater::~RUpdater ( )
inline

Definition at line 173 of file RNTupleModel.hxx.

Member Function Documentation

◆ AddField()

void ROOT::Experimental::RNTupleModel::RUpdater::AddField ( std::unique_ptr< RFieldBase > field)

Definition at line 198 of file RNTupleModel.cxx.

◆ AddProjectedField()

ROOT::RResult< void > ROOT::Experimental::RNTupleModel::RUpdater::AddProjectedField ( std::unique_ptr< RFieldBase > field,
FieldMappingFunc_t mapping )

Definition at line 205 of file RNTupleModel.cxx.

◆ BeginUpdate()

void ROOT::Experimental::RNTupleModel::RUpdater::BeginUpdate ( )

Begin a new set of alterations to the underlying model.

As a side effect, all REntry instances related to the model are invalidated.

Definition at line 178 of file RNTupleModel.cxx.

◆ CommitUpdate()

void ROOT::Experimental::RNTupleModel::RUpdater::CommitUpdate ( )

Commit changes since the last call to BeginUpdate().

All the invalidated REntrys remain invalid. CreateEntry() or CreateBareEntry() can be used to create an REntry that matching the new model. Upon completion, BeginUpdate() can be called again to begin a new set of changes.

Definition at line 186 of file RNTupleModel.cxx.

◆ MakeField()

template<typename T >
std::shared_ptr< T > ROOT::Experimental::RNTupleModel::RUpdater::MakeField ( const NameWithDescription_t & fieldNameDesc)
inline

Definition at line 183 of file RNTupleModel.hxx.

Member Data Documentation

◆ fNewModelId

std::uint64_t ROOT::Experimental::RNTupleModel::RUpdater::fNewModelId = 0
private

The model ID after committing.

Definition at line 169 of file RNTupleModel.hxx.

◆ fOpenChangeset

Internal::RNTupleModelChangeset ROOT::Experimental::RNTupleModel::RUpdater::fOpenChangeset
private

Definition at line 168 of file RNTupleModel.hxx.

◆ fWriter

RNTupleWriter& ROOT::Experimental::RNTupleModel::RUpdater::fWriter
private

Definition at line 167 of file RNTupleModel.hxx.

Libraries for ROOT::Experimental::RNTupleModel::RUpdater:

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