Logo ROOT  
Reference Guide
ROOT::Experimental::REntry Class Reference

The REntry is a collection of values in an ntuple corresponding to a complete row in the data set.

The entry provides a memory-managed binder for a set of values. Through shared pointers, the memory locations that are associated to values are managed.

Definition at line 43 of file REntry.hxx.

Public Types

using Iterator_t = decltype(fValues)::iterator
 

Public Member Functions

 REntry (const REntry &other)=delete
 
 REntry (REntry &&other)=default
 
 ~REntry ()
 
Iterator_t begin ()
 
void CaptureValueUnsafe (std::string_view fieldName, void *where)
 
Iterator_t end ()
 
template<typename T >
T * Get (std::string_view fieldName) const
 
std::uint64_t GetModelId () const
 
Detail::RFieldValue GetValue (std::string_view fieldName) const
 
REntryoperator= (const REntry &other)=delete
 
REntryoperator= (REntry &&other)=default
 

Private Member Functions

 REntry ()=default
 
 REntry (std::uint64_t modelId)
 
void AddValue (const Detail::RFieldValue &value)
 Adds a value whose storage is managed by the entry. More...
 
template<typename T , typename... ArgsT>
std::shared_ptr< T > AddValue (RField< T > *field, ArgsT &&... args)
 While building the entry, adds a new value to the list and return the value's shared pointer. More...
 
void CaptureValue (const Detail::RFieldValue &value)
 Adds a value whose storage is not managed by the entry. More...
 

Private Attributes

std::vector< std::size_t > fManagedValues
 Points into fValues and indicates the values that are owned by the entry and need to be destructed. More...
 
std::uint64_t fModelId = 0
 The entry must be linked to a specific model (or one if its clones), identified by a model ID. More...
 
std::vector< std::shared_ptr< void > > fValuePtrs
 The objects involed in serialization and deserialization might be used long after the entry is gone: hence the shared pointer. More...
 
std::vector< Detail::RFieldValuefValues
 Corresponds to the top-level fields of the linked model. More...
 

Friends

class RNTupleModel
 

#include <ROOT/REntry.hxx>

Member Typedef Documentation

◆ Iterator_t

using ROOT::Experimental::REntry::Iterator_t = decltype(fValues)::iterator

Definition at line 77 of file REntry.hxx.

Constructor & Destructor Documentation

◆ REntry() [1/4]

ROOT::Experimental::REntry::REntry ( )
privatedefault

◆ REntry() [2/4]

ROOT::Experimental::REntry::REntry ( std::uint64_t  modelId)
inlineexplicitprivate

Definition at line 59 of file REntry.hxx.

◆ REntry() [3/4]

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

◆ REntry() [4/4]

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

◆ ~REntry()

ROOT::Experimental::REntry::~REntry ( )

Definition at line 22 of file REntry.cxx.

Member Function Documentation

◆ AddValue() [1/2]

void ROOT::Experimental::REntry::AddValue ( const Detail::RFieldValue value)
private

Adds a value whose storage is managed by the entry.

Definition at line 29 of file REntry.cxx.

◆ AddValue() [2/2]

template<typename T , typename... ArgsT>
std::shared_ptr< T > ROOT::Experimental::REntry::AddValue ( RField< T > *  field,
ArgsT &&...  args 
)
inlineprivate

While building the entry, adds a new value to the list and return the value's shared pointer.

Definition at line 69 of file REntry.hxx.

◆ begin()

Iterator_t ROOT::Experimental::REntry::begin ( )
inline

Definition at line 110 of file REntry.hxx.

◆ CaptureValue()

void ROOT::Experimental::REntry::CaptureValue ( const Detail::RFieldValue value)
private

Adds a value whose storage is not managed by the entry.

Definition at line 35 of file REntry.cxx.

◆ CaptureValueUnsafe()

void ROOT::Experimental::REntry::CaptureValueUnsafe ( std::string_view  fieldName,
void where 
)

Definition at line 40 of file REntry.cxx.

◆ end()

Iterator_t ROOT::Experimental::REntry::end ( )
inline

Definition at line 111 of file REntry.hxx.

◆ Get()

template<typename T >
T * ROOT::Experimental::REntry::Get ( std::string_view  fieldName) const
inline

Definition at line 97 of file REntry.hxx.

◆ GetModelId()

std::uint64_t ROOT::Experimental::REntry::GetModelId ( ) const
inline

Definition at line 108 of file REntry.hxx.

◆ GetValue()

Detail::RFieldValue ROOT::Experimental::REntry::GetValue ( std::string_view  fieldName) const
inline

Definition at line 87 of file REntry.hxx.

◆ operator=() [1/2]

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

◆ operator=() [2/2]

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

Friends And Related Function Documentation

◆ RNTupleModel

friend class RNTupleModel
friend

Definition at line 44 of file REntry.hxx.

Member Data Documentation

◆ fManagedValues

std::vector<std::size_t> ROOT::Experimental::REntry::fManagedValues
private

Points into fValues and indicates the values that are owned by the entry and need to be destructed.

Definition at line 54 of file REntry.hxx.

◆ fModelId

std::uint64_t ROOT::Experimental::REntry::fModelId = 0
private

The entry must be linked to a specific model (or one if its clones), identified by a model ID.

Definition at line 47 of file REntry.hxx.

◆ fValuePtrs

std::vector<std::shared_ptr<void> > ROOT::Experimental::REntry::fValuePtrs
private

The objects involed in serialization and deserialization might be used long after the entry is gone: hence the shared pointer.

Definition at line 52 of file REntry.hxx.

◆ fValues

std::vector<Detail::RFieldValue> ROOT::Experimental::REntry::fValues
private

Corresponds to the top-level fields of the linked model.

Definition at line 49 of file REntry.hxx.

Libraries for ROOT::Experimental::REntry:
[legend]

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