31#include <unordered_map>
34namespace Experimental {
37class RNTupleProcessor;
38class RNTupleChainProcessor;
95 template <
typename T,
typename...
ArgsT>
99 auto ptr = std::make_shared<T>(std::forward<ArgsT>(args)...);
129 "make sure to use a token from a model with the same schema as this entry."));
133 template <
typename T>
136 if constexpr (!std::is_void_v<T>) {
139 throw RException(
R__FAIL(
"type mismatch for field " +
v.GetField().GetQualifiedFieldName() +
": " +
172 template <
typename T>
180 template <
typename T>
186 template <
typename T>
194 template <
typename T>
200 template <
typename T>
205 return std::static_pointer_cast<T>(
fValues[
token.fIndex].GetPtr<
void>());
208 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
The field token identifies a (sub)field in this entry.
std::size_t fIndex
The index in fValues that belongs to the field.
RFieldToken(std::size_t index, std::uint64_t schemaId)
std::uint64_t fSchemaId
Safety check to prevent tokens from other models being used.
The REntry is a collection of values in an ntuple corresponding to a complete row in the data set.
void EnsureMatchingType(RFieldToken token) const
std::uint64_t fSchemaId
The entry and its tokens are also linked to a specific schema, identified by a schema ID.
std::uint64_t fModelId
The entry must be linked to a specific model, identified by a model ID.
void BindValue(RFieldToken token, std::shared_ptr< T > objPtr)
REntry & operator=(REntry &&other)=default
std::uint64_t GetSchemaId() const
void Read(NTupleSize_t index)
ConstIterator_t begin() const
REntry & operator=(const REntry &other)=delete
void EmplaceNewValue(std::string_view fieldName)
REntry(REntry &&other)=default
std::uint64_t GetModelId() const
void EmplaceNewValue(RFieldToken token)
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.
void BindRawPtr(RFieldToken token, T *rawPtr)
std::unordered_map< std::string, std::size_t > fFieldName2Token
For fast lookup of token IDs given a (sub)field name present in the entry.
void BindValue(std::string_view fieldName, std::shared_ptr< T > objPtr)
void UpdateValue(RFieldToken token, RFieldBase::RValue &&value)
Update the RValue for a field in the entry.
REntry(std::uint64_t modelId, std::uint64_t schemaId)
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...
void AddValue(RFieldBase::RValue &&value)
void UpdateValue(RFieldToken token, RFieldBase::RValue &value)
std::vector< RFieldBase::RValue > fValues
Corresponds to the fields of the linked model.
void BindRawPtr(std::string_view fieldName, T *rawPtr)
ConstIterator_t end() const
void EnsureMatchingModel(RFieldToken token) const
REntry(const REntry &other)=delete
std::shared_ptr< T > GetPtr(std::string_view fieldName) const
std::shared_ptr< T > GetPtr(RFieldToken token) 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.
Classes with dictionaries that can be inspected by TClass.
static std::string TypeName()
Processor specializiation for vertically concatenated RNTuples (chains).
A context for filling entries (data) into clusters of an RNTuple.
The RNTupleModel encapulates the schema of an ntuple.
Interface for iterating over entries of RNTuples and vertically concatenated RNTuples (chains).
An RNTuple that is used to read data from storage.
std::uint64_t NTupleSize_t
Integer type long enough to hold the maximum number of entries in a column.
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...