The REntry is a collection of values in an RNTuple corresponding to a complete row in the data set.
The entry provides a memory-managed binder for a set of values read from fields in an RNTuple. The memory locations that are associated with values are managed through shared pointers.
Definition at line 54 of file REntry.hxx.
Public Types | |
using | ConstIterator_t = decltype(fValues)::const_iterator |
Public Member Functions | |
REntry (const REntry &other)=delete | |
REntry (REntry &&other)=default | |
~REntry ()=default | |
ConstIterator_t | begin () const |
template<typename T > | |
void | BindRawPtr (ROOT::RFieldToken token, T *rawPtr) |
Bind the value for the field, referenced by token , to rawPtr . | |
template<typename T > | |
void | BindRawPtr (std::string_view fieldName, T *rawPtr) |
Bind the value for the field, referenced by its name, to rawPtr . | |
template<typename T > | |
void | BindValue (ROOT::RFieldToken token, std::shared_ptr< T > objPtr) |
Bind the value for the field, referenced by token , to objPtr . | |
template<typename T > | |
void | BindValue (std::string_view fieldName, std::shared_ptr< T > objPtr) |
Bind the value for the field, referenced by its name, to objPtr . | |
void | EmplaceNewValue (ROOT::RFieldToken token) |
Create a new value for the field referenced by token . | |
void | EmplaceNewValue (std::string_view fieldName) |
Create a new value for the field referenced by its name. | |
ConstIterator_t | end () const |
std::uint64_t | GetModelId () const |
template<typename T > | |
std::shared_ptr< T > | GetPtr (ROOT::RFieldToken token) const |
Get the (typed) pointer to the value for the field referenced by token . | |
template<typename T > | |
std::shared_ptr< T > | GetPtr (std::string_view fieldName) const |
Get the (typed) pointer to the value for the field referenced by token . | |
std::uint64_t | GetSchemaId () const |
ROOT::RFieldToken | GetToken (std::string_view fieldName) const |
The ordinal of the (sub)field fieldName; can be used in other methods to address the corresponding value. | |
const std::string & | GetTypeName (ROOT::RFieldToken token) const |
const std::string & | GetTypeName (std::string_view fieldName) const |
REntry & | operator= (const REntry &other)=delete |
REntry & | operator= (REntry &&other)=default |
Private Member Functions | |
REntry ()=default | |
Creation of entries can be done by the RNTupleModel, the RNTupleReader, or the RNTupleWriter. | |
REntry (std::uint64_t modelId, std::uint64_t schemaId) | |
template<typename T > | |
std::shared_ptr< T > | AddValue (ROOT::RField< T > &field) |
While building the entry, adds a new value for the field and returns the value's shared pointer. | |
void | AddValue (ROOT::RFieldBase::RValue &&value) |
std::size_t | Append () |
void | EnsureMatchingModel (ROOT::RFieldToken token) const |
template<typename T > | |
void | EnsureMatchingType (ROOT::RFieldToken token) const |
const std::string & | FindFieldName (ROOT::RFieldToken token) const |
This function has linear complexity, only use it for more helpful error messages! | |
void | Read (ROOT::NTupleSize_t index) |
Private Attributes | |
std::unordered_map< std::string, std::size_t > | fFieldName2Token |
For fast lookup of token IDs given a (sub)field name present in the entry. | |
std::vector< std::string > | fFieldTypes |
To ensure that the entry is standalone, a copy of all field types. | |
std::uint64_t | fModelId = 0 |
The entry must be linked to a specific model, identified by a model ID. | |
std::uint64_t | fSchemaId = 0 |
The entry and its tokens are also linked to a specific schema, identified by a schema ID. | |
std::vector< ROOT::RFieldBase::RValue > | fValues |
Corresponds to the fields of the linked model. | |
#include <ROOT/REntry.hxx>
using ROOT::REntry::ConstIterator_t = decltype(fValues)::const_iterator |
Definition at line 146 of file REntry.hxx.
|
privatedefault |
Creation of entries can be done by the RNTupleModel, the RNTupleReader, or the RNTupleWriter.
|
inlineexplicitprivate |
Definition at line 77 of file REntry.hxx.
|
default |
|
default |
|
inlineprivate |
While building the entry, adds a new value for the field and returns the value's shared pointer.
Definition at line 88 of file REntry.hxx.
|
inlineprivate |
Definition at line 79 of file REntry.hxx.
|
inlineprivate |
Definition at line 104 of file REntry.hxx.
|
inline |
Definition at line 256 of file REntry.hxx.
|
inline |
Bind the value for the field, referenced by token
, to rawPtr
.
Definition at line 202 of file REntry.hxx.
|
inline |
Bind the value for the field, referenced by its name, to rawPtr
.
The caller retains ownership of the object and must ensure it is kept alive when reading or writing using the entry.
Note: if T = void
, type checks are disabled. It is the caller's responsibility to match the field and object types.
Definition at line 217 of file REntry.hxx.
|
inline |
Bind the value for the field, referenced by token
, to objPtr
.
Definition at line 178 of file REntry.hxx.
|
inline |
Bind the value for the field, referenced by its name, to objPtr
.
Ownership is shared with the caller and the object will be kept alive until it is replaced (by a call to EmplaceNewValue, BindValue, or BindRawPtr) or the entry is destructed.
Note: if T = void
, type checks are disabled. It is the caller's responsibility to match the field and object types.
Definition at line 193 of file REntry.hxx.
|
inline |
Create a new value for the field referenced by token
.
Definition at line 165 of file REntry.hxx.
|
inline |
Create a new value for the field referenced by its name.
Definition at line 172 of file REntry.hxx.
|
inline |
Definition at line 257 of file REntry.hxx.
|
inlineprivate |
Definition at line 113 of file REntry.hxx.
|
inlineprivate |
Definition at line 135 of file REntry.hxx.
|
inlineprivate |
This function has linear complexity, only use it for more helpful error messages!
Definition at line 122 of file REntry.hxx.
|
inline |
Definition at line 253 of file REntry.hxx.
|
inline |
Get the (typed) pointer to the value for the field referenced by token
.
Definition at line 226 of file REntry.hxx.
|
inline |
Get the (typed) pointer to the value for the field referenced by token
.
Ownership is shared and the caller can continue to use the object after the entry is destructed.
Note: if T = void
, type checks are disabled. It is the caller's responsibility to use the returned pointer according to the field type.
Definition at line 240 of file REntry.hxx.
|
inline |
Definition at line 254 of file REntry.hxx.
|
inline |
The ordinal of the (sub)field fieldName; can be used in other methods to address the corresponding value.
Definition at line 155 of file REntry.hxx.
|
inline |
Definition at line 245 of file REntry.hxx.
|
inline |
Definition at line 251 of file REntry.hxx.
|
inlineprivate |
Definition at line 97 of file REntry.hxx.
|
friend |
Definition at line 60 of file REntry.hxx.
|
friend |
Definition at line 57 of file REntry.hxx.
|
friend |
Definition at line 61 of file REntry.hxx.
|
friend |
Definition at line 58 of file REntry.hxx.
|
friend |
Definition at line 59 of file REntry.hxx.
|
friend |
Definition at line 55 of file REntry.hxx.
|
friend |
Definition at line 56 of file REntry.hxx.
|
private |
For fast lookup of token IDs given a (sub)field name present in the entry.
Definition at line 71 of file REntry.hxx.
|
private |
To ensure that the entry is standalone, a copy of all field types.
Definition at line 73 of file REntry.hxx.
|
private |
The entry must be linked to a specific model, identified by a model ID.
Definition at line 65 of file REntry.hxx.
|
private |
The entry and its tokens are also linked to a specific schema, identified by a schema ID.
Definition at line 67 of file REntry.hxx.
|
private |
Corresponds to the fields of the linked model.
Definition at line 69 of file REntry.hxx.