Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
ROOT::Experimental::Detail::RRawPtrWriteEntry Class Reference

A container of const raw pointers, corresponding to a row in the data set.

This class can be used to write constant data products in frameworks. All other users are encouraged to use the API provided by REntry, with safe interfaces, type checks, and shared object ownership.

Definition at line 47 of file RRawPtrWriteEntry.hxx.

Public Member Functions

 RRawPtrWriteEntry (const RRawPtrWriteEntry &other)=delete
 
 RRawPtrWriteEntry (RRawPtrWriteEntry &&other)=default
 
 ~RRawPtrWriteEntry ()=default
 
template<typename T >
void BindRawPtr (RFieldToken token, const T *rawPtr)
 
template<typename T >
void BindRawPtr (std::string_view fieldName, const T *rawPtr)
 
std::uint64_t GetModelId () const
 
std::uint64_t GetSchemaId () const
 
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.
 
RRawPtrWriteEntryoperator= (const RRawPtrWriteEntry &other)=delete
 
RRawPtrWriteEntryoperator= (RRawPtrWriteEntry &&other)=default
 

Private Member Functions

 RRawPtrWriteEntry (std::uint64_t modelId, std::uint64_t schemaId)
 
void AddField (ROOT::RFieldBase &field)
 
std::size_t Append ()
 
void EnsureMatchingModel (RFieldToken token) const
 

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< ROOT::RFieldBase * > fFields
 Corresponds to the fields of the linked model.
 
std::uint64_t fModelId = 0
 The entry must be linked to a specific model, identified by a model ID.
 
std::vector< const void * > fRawPtrs
 The raw pointers corresponding to the fields.
 
std::uint64_t fSchemaId = 0
 The entry and its tokens are also linked to a specific schema, identified by a schema ID.
 

Friends

class ROOT::Experimental::RNTupleFillContext
 
class ROOT::RNTupleModel
 

#include <ROOT/RRawPtrWriteEntry.hxx>

Constructor & Destructor Documentation

◆ RRawPtrWriteEntry() [1/3]

ROOT::Experimental::Detail::RRawPtrWriteEntry::RRawPtrWriteEntry ( std::uint64_t modelId,
std::uint64_t schemaId )
inlineexplicitprivate

Definition at line 63 of file RRawPtrWriteEntry.hxx.

◆ RRawPtrWriteEntry() [2/3]

ROOT::Experimental::Detail::RRawPtrWriteEntry::RRawPtrWriteEntry ( const RRawPtrWriteEntry & other)
delete

◆ RRawPtrWriteEntry() [3/3]

ROOT::Experimental::Detail::RRawPtrWriteEntry::RRawPtrWriteEntry ( RRawPtrWriteEntry && other)
default

◆ ~RRawPtrWriteEntry()

ROOT::Experimental::Detail::RRawPtrWriteEntry::~RRawPtrWriteEntry ( )
default

Member Function Documentation

◆ AddField()

void ROOT::Experimental::Detail::RRawPtrWriteEntry::AddField ( ROOT::RFieldBase & field)
inlineprivate

Definition at line 65 of file RRawPtrWriteEntry.hxx.

◆ Append()

std::size_t ROOT::Experimental::Detail::RRawPtrWriteEntry::Append ( )
inlineprivate

Definition at line 72 of file RRawPtrWriteEntry.hxx.

◆ BindRawPtr() [1/2]

template<typename T >
void ROOT::Experimental::Detail::RRawPtrWriteEntry::BindRawPtr ( RFieldToken token,
const T * rawPtr )
inline

Definition at line 107 of file RRawPtrWriteEntry.hxx.

◆ BindRawPtr() [2/2]

template<typename T >
void ROOT::Experimental::Detail::RRawPtrWriteEntry::BindRawPtr ( std::string_view fieldName,
const T * rawPtr )
inline

Definition at line 114 of file RRawPtrWriteEntry.hxx.

◆ EnsureMatchingModel()

void ROOT::Experimental::Detail::RRawPtrWriteEntry::EnsureMatchingModel ( RFieldToken token) const
inlineprivate

Definition at line 81 of file RRawPtrWriteEntry.hxx.

◆ GetModelId()

std::uint64_t ROOT::Experimental::Detail::RRawPtrWriteEntry::GetModelId ( ) const
inline

Definition at line 119 of file RRawPtrWriteEntry.hxx.

◆ GetSchemaId()

std::uint64_t ROOT::Experimental::Detail::RRawPtrWriteEntry::GetSchemaId ( ) const
inline

Definition at line 120 of file RRawPtrWriteEntry.hxx.

◆ GetToken()

RFieldToken ROOT::Experimental::Detail::RRawPtrWriteEntry::GetToken ( std::string_view fieldName) const
inline

The ordinal of the (sub)field fieldName; can be used in other methods to address the corresponding value.

Definition at line 97 of file RRawPtrWriteEntry.hxx.

◆ operator=() [1/2]

RRawPtrWriteEntry & ROOT::Experimental::Detail::RRawPtrWriteEntry::operator= ( const RRawPtrWriteEntry & other)
delete

◆ operator=() [2/2]

RRawPtrWriteEntry & ROOT::Experimental::Detail::RRawPtrWriteEntry::operator= ( RRawPtrWriteEntry && other)
default

Friends And Related Symbol Documentation

◆ ROOT::Experimental::RNTupleFillContext

Definition at line 49 of file RRawPtrWriteEntry.hxx.

◆ ROOT::RNTupleModel

friend class ROOT::RNTupleModel
friend

Definition at line 48 of file RRawPtrWriteEntry.hxx.

Member Data Documentation

◆ fFieldName2Token

std::unordered_map<std::string, std::size_t> ROOT::Experimental::Detail::RRawPtrWriteEntry::fFieldName2Token
private

For fast lookup of token IDs given a (sub)field name present in the entry.

Definition at line 61 of file RRawPtrWriteEntry.hxx.

◆ fFields

std::vector<ROOT::RFieldBase *> ROOT::Experimental::Detail::RRawPtrWriteEntry::fFields
private

Corresponds to the fields of the linked model.

Definition at line 57 of file RRawPtrWriteEntry.hxx.

◆ fModelId

std::uint64_t ROOT::Experimental::Detail::RRawPtrWriteEntry::fModelId = 0
private

The entry must be linked to a specific model, identified by a model ID.

Definition at line 53 of file RRawPtrWriteEntry.hxx.

◆ fRawPtrs

std::vector<const void *> ROOT::Experimental::Detail::RRawPtrWriteEntry::fRawPtrs
private

The raw pointers corresponding to the fields.

Definition at line 59 of file RRawPtrWriteEntry.hxx.

◆ fSchemaId

std::uint64_t ROOT::Experimental::Detail::RRawPtrWriteEntry::fSchemaId = 0
private

The entry and its tokens are also linked to a specific schema, identified by a schema ID.

Definition at line 55 of file RRawPtrWriteEntry.hxx.

Libraries for ROOT::Experimental::Detail::RRawPtrWriteEntry:

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