30#include <unordered_map>
36namespace Experimental {
37class RNTupleFillContext;
38class RNTupleProcessor;
39class RNTupleSingleProcessor;
40class RNTupleChainProcessor;
41class RNTupleJoinProcessor;
69 std::vector<ROOT::RFieldBase::RValue>
fValues;
117 "make sure to use a token from a model with the same schema as this entry."));
130 static const std::string empty =
"";
134 template <
typename T>
137 if constexpr (!std::is_void_v<T>) {
177 template <
typename T>
192 template <
typename T>
201 template <
typename T>
216 template <
typename T>
225 template <
typename T>
230 return std::static_pointer_cast<T>(
fValues[
token.fIndex].GetPtr<
void>());
239 template <
typename T>
#define R__FAIL(msg)
Short-hand to return an RResult<T> in an error state; the RError is implicitly converted into RResult...
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t index
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void value
Processor specialization for vertically combined (chained) RNTupleProcessors.
A context for filling entries (data) into clusters of an RNTuple.
Processor specialization for horizontally combined (joined) RNTupleProcessors.
Interface for iterating over entries of RNTuples and vertically concatenated RNTuples (chains).
Processor specialization for processing a single RNTuple.
The REntry is a collection of values in an RNTuple corresponding to a complete row in the data set.
std::uint64_t fModelId
The entry must be linked to a specific model, identified by a model ID.
void EmplaceNewValue(ROOT::RFieldToken token)
Create a new value for the field referenced by token.
std::shared_ptr< T > GetPtr(ROOT::RFieldToken token) const
Get the (typed) pointer to the value for the field referenced by token.
std::vector< ROOT::RFieldBase::RValue > fValues
Corresponds to the fields of the linked model.
std::uint64_t GetModelId() const
void BindValue(std::string_view fieldName, std::shared_ptr< T > objPtr)
Bind the value for the field, referenced by its name, to objPtr.
void BindValue(ROOT::RFieldToken token, std::shared_ptr< T > objPtr)
Bind the value for the field, referenced by token, to objPtr.
std::uint64_t GetSchemaId() const
REntry(const REntry &other)=delete
const std::string & FindFieldName(ROOT::RFieldToken token) const
This function has linear complexity, only use it for more helpful error messages!
const std::string & GetTypeName(ROOT::RFieldToken token) const
void EnsureMatchingType(ROOT::RFieldToken token) const
ConstIterator_t begin() const
void Read(ROOT::NTupleSize_t index)
std::vector< std::string > fFieldTypes
To ensure that the entry is standalone, a copy of all field types.
std::uint64_t fSchemaId
The entry and its tokens are also linked to a specific schema, identified by a schema ID.
void BindRawPtr(std::string_view fieldName, T *rawPtr)
Bind the value for the field, referenced by its name, to rawPtr.
void AddValue(ROOT::RFieldBase::RValue &&value)
std::shared_ptr< T > GetPtr(std::string_view fieldName) const
Get the (typed) pointer to the value for the field referenced by token.
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)
REntry & operator=(REntry &&other)=default
REntry & operator=(const REntry &other)=delete
ConstIterator_t end() const
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 EnsureMatchingModel(ROOT::RFieldToken token) const
void BindRawPtr(ROOT::RFieldToken token, T *rawPtr)
Bind the value for the field, referenced by token, to rawPtr.
void EmplaceNewValue(std::string_view fieldName)
Create a new value for the field referenced by its name.
REntry(REntry &&other)=default
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 va...
std::unordered_map< std::string, std::size_t > fFieldName2Token
For fast lookup of token IDs given a (sub)field name present in the entry.
const std::string & GetTypeName(std::string_view fieldName) const
Base class for all ROOT issued exceptions.
Points to an object with RNTuple I/O support and keeps a pointer to the corresponding field.
A field token identifies a (sub)field in an entry.
Classes with dictionaries that can be inspected by TClass.
The RNTupleModel encapulates the schema of an RNTuple.
Reads RNTuple data from storage.
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...
std::uint64_t NTupleSize_t
Integer type long enough to hold the maximum number of entries in a column.