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 432 of file RNTupleModel.hxx.
Public Member Functions | |
| RUpdater (ROOT::RNTupleWriter &writer) | |
| ~RUpdater () | |
| void | AddField (std::unique_ptr< ROOT::RFieldBase > field, std::string_view parentName="") |
| RResult< void > | AddProjectedField (std::unique_ptr< ROOT::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 (std::string_view name, std::string_view description="") |
Private Attributes | |
| std::uint64_t | fNewModelId = 0 |
| The model ID after committing. | |
| Internal::RNTupleModelChangeset | fOpenChangeset |
| ROOT::RNTupleWriter & | fWriter |
#include <ROOT/RNTupleModel.hxx>
|
explicit |
Definition at line 191 of file RNTupleModel.cxx.
| ROOT::RNTupleModel::RUpdater::~RUpdater | ( | ) |
Definition at line 196 of file RNTupleModel.cxx.
| void ROOT::RNTupleModel::RUpdater::AddField | ( | std::unique_ptr< ROOT::RFieldBase > | field, |
| std::string_view | parentName = "" ) |
Definition at line 269 of file RNTupleModel.cxx.
| ROOT::RResult< void > ROOT::RNTupleModel::RUpdater::AddProjectedField | ( | std::unique_ptr< ROOT::RFieldBase > | field, |
| FieldMappingFunc_t | mapping ) |
Definition at line 285 of file RNTupleModel.cxx.
| void ROOT::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 205 of file RNTupleModel.cxx.
| void ROOT::RNTupleModel::RUpdater::CommitUpdate | ( | ) |
Commit changes since the last call to BeginUpdate().
All the invalidated REntries remain invalid. CreateEntry() or CreateBareEntry() can be used to create an REntry that matches the new model. Upon completion, BeginUpdate() can be called again to begin a new set of changes.
Definition at line 213 of file RNTupleModel.cxx.
|
inline |
Definition at line 450 of file RNTupleModel.hxx.
|
private |
The model ID after committing.
Definition at line 436 of file RNTupleModel.hxx.
|
private |
Definition at line 435 of file RNTupleModel.hxx.
|
private |
Definition at line 434 of file RNTupleModel.hxx.