The generic field for std::tuple<Ts...>
types.
Definition at line 801 of file RField.hxx.
Public Member Functions | |
RTupleField (RTupleField &&other)=default | |
RTupleField (std::string_view fieldName, std::vector< std::unique_ptr< Detail::RFieldBase > > &itemFields) | |
~RTupleField () override=default | |
void | DestroyValue (const Detail::RFieldValue &value, bool dtorOnly=false) override |
Releases the resources acquired during GenerateValue (memory and constructor) This implementation works for simple types but needs to be overwritten for complex ones. | |
Detail::RFieldValue | GenerateValue (void *where) override |
Generates a tree value in a given location of size at least GetValueSize(). | |
RTupleField & | operator= (RTupleField &&other)=default |
![]() | |
RRecordField (RRecordField &&other)=default | |
RRecordField (std::string_view fieldName, std::vector< std::unique_ptr< Detail::RFieldBase > > &&itemFields) | |
Construct a RRecordField based on a vector of child fields. | |
RRecordField (std::string_view fieldName, std::vector< std::unique_ptr< Detail::RFieldBase > > &itemFields) | |
~RRecordField () override=default | |
void | AcceptVisitor (Detail::RFieldVisitor &visitor) const final |
Detail::RFieldValue | CaptureValue (void *where) final |
Creates a value from a memory location with an already constructed object. | |
void | GenerateColumnsImpl () final |
Creates the backing columns corresponsing to the field type for writing. | |
void | GenerateColumnsImpl (const RNTupleDescriptor &) final |
Creates the backing columns corresponsing to the field type for reading. | |
size_t | GetAlignment () const final |
For many types, the alignment requirement is equal to the size; otherwise override. | |
size_t | GetValueSize () const final |
The number of bytes taken by a value of the appropriate type. | |
RRecordField & | operator= (RRecordField &&other)=default |
std::vector< Detail::RFieldValue > | SplitValue (const Detail::RFieldValue &value) const final |
Creates the list of direct child values given a value for this field. | |
![]() | |
RFieldBase (const RFieldBase &)=delete | |
RFieldBase (RFieldBase &&)=default | |
RFieldBase (std::string_view name, std::string_view type, ENTupleStructure structure, bool isSimple, std::size_t nRepetitions=0) | |
The constructor creates the underlying column objects and connects them to either a sink or a source. | |
virtual | ~RFieldBase () |
std::size_t | Append (const RFieldValue &value) |
Write the given value into columns. | |
void | Attach (std::unique_ptr< Detail::RFieldBase > child) |
Add a new subfield to the list of nested fields. | |
RSchemaIterator | begin () |
std::unique_ptr< RFieldBase > | Clone (std::string_view newName) const |
Copies the field and its sub fields using a possibly new name and a new, unconnected set of columns. | |
virtual void | CommitCluster () |
Perform housekeeping tasks for global to cluster-local index translation. | |
void | ConnectPageSink (RPageSink &pageSink) |
Fields and their columns live in the void until connected to a physical page storage. | |
void | ConnectPageSource (RPageSource &pageSource) |
RSchemaIterator | end () |
void | Flush () const |
Ensure that all received items are written from page buffers to the storage. | |
RFieldValue | GenerateValue () |
Generates an object of the field type and allocates new initialized memory according to the type. | |
std::string | GetDescription () const |
Get the field's description. | |
virtual std::uint32_t | GetFieldVersion () const |
Indicates an evolution of the mapping scheme from C++ type to columns. | |
std::string | GetName () const |
NTupleSize_t | GetNElements () const |
std::size_t | GetNRepetitions () const |
DescriptorId_t | GetOnDiskId () const |
RFieldBase * | GetParent () const |
ENTupleStructure | GetStructure () const |
std::vector< RFieldBase * > | GetSubFields () const |
int | GetTraits () const |
std::string | GetType () const |
virtual std::uint32_t | GetTypeVersion () const |
Indicates an evolution of the C++ type itself. | |
bool | HasReadCallbacks () const |
bool | IsSimple () const |
RFieldBase & | operator= (const RFieldBase &)=delete |
RFieldBase & | operator= (RFieldBase &&)=default |
void | Read (const RClusterIndex &clusterIndex, RFieldValue *value) |
void | Read (NTupleSize_t globalIndex, RFieldValue *value) |
Populate a single value with data from the tree, which needs to be of the fitting type. | |
void | SetDescription (std::string_view description) |
void | SetOnDiskId (DescriptorId_t id) |
Protected Member Functions | |
RTupleField (std::string_view fieldName, std::vector< std::unique_ptr< Detail::RFieldBase > > &&itemFields, const std::vector< std::size_t > &offsets) | |
std::unique_ptr< Detail::RFieldBase > | CloneImpl (std::string_view newName) const override |
Called by Clone(), which additionally copies the on-disk ID. | |
![]() | |
template<std::size_t N> | |
RRecordField (std::string_view fieldName, std::array< std::unique_ptr< Detail::RFieldBase >, N > &&itemFields, const std::array< std::size_t, N > &offsets, std::string_view typeName="") | |
RRecordField (std::string_view fieldName, std::vector< std::unique_ptr< Detail::RFieldBase > > &&itemFields, const std::vector< std::size_t > &offsets, std::string_view typeName="") | |
std::size_t | AppendImpl (const Detail::RFieldValue &value) final |
Operations on values of complex types, e.g. | |
std::size_t | GetItemPadding (std::size_t baseOffset, std::size_t itemAlignment) const |
void | ReadGlobalImpl (NTupleSize_t globalIndex, Detail::RFieldValue *value) final |
void | ReadInClusterImpl (const RClusterIndex &clusterIndex, Detail::RFieldValue *value) final |
![]() | |
size_t | AddReadCallback (ReadCallback_t func) |
Set a user-defined function to be called after reading a value, giving a chance to inspect and/or modify the value object. | |
ROOT::Experimental::EColumnType | EnsureColumnType (const std::vector< EColumnType > &requestedTypes, unsigned int columnIndex, const RNTupleDescriptor &desc) |
Throws an exception if the column given by fOnDiskId and the columnIndex in the provided descriptor is not of one of the requested types. | |
void | RemoveReadCallback (size_t idx) |
Static Private Member Functions | |
static std::string | GetTypeList (const std::vector< std::unique_ptr< Detail::RFieldBase > > &itemFields) |
Private Attributes | |
TClass * | fClass = nullptr |
Additional Inherited Members | |
![]() | |
static RResult< std::unique_ptr< RFieldBase > > | Create (const std::string &fieldName, const std::string &typeName) |
Factory method to resurrect a field from the stored on-disk type information. | |
static RResult< void > | EnsureValidFieldName (std::string_view fieldName) |
Check whether a given string is a valid field name. | |
![]() | |
static constexpr int | kTraitMappable = 0x04 |
A field of a fundamental type that can be directly mapped via RField<T>::Map() , i.e. | |
static constexpr int | kTraitTriviallyConstructible = 0x01 |
No constructor needs to be called, i.e. | |
static constexpr int | kTraitTriviallyDestructible = 0x02 |
The type is cleaned up just by freeing its memory. I.e. DestroyValue() is a no-op. | |
static constexpr int | kTraitTrivialType = kTraitTriviallyConstructible | kTraitTriviallyDestructible |
Shorthand for types that are both trivially constructible and destructible. | |
![]() | |
std::size_t | fMaxAlignment = 1 |
std::vector< std::size_t > | fOffsets |
std::size_t | fSize = 0 |
![]() | |
std::vector< std::unique_ptr< RColumn > > | fColumns |
The columns are connected either to a sink or to a source (not to both); they are owned by the field. | |
RFieldBase * | fParent |
Sub fields point to their mother field. | |
RColumn * | fPrincipalColumn |
Points into fColumns. | |
std::vector< ReadCallback_t > | fReadCallbacks |
List of functions to be called after reading a value. | |
std::vector< std::unique_ptr< RFieldBase > > | fSubFields |
Collections and classes own sub fields. | |
int | fTraits = 0 |
Properties of the type that allow for optimizations of collections of that type. | |
#include <ROOT/RField.hxx>
|
protected |
Definition at line 2051 of file RField.cxx.
ROOT::Experimental::RTupleField::RTupleField | ( | std::string_view | fieldName, |
std::vector< std::unique_ptr< Detail::RFieldBase > > & | itemFields | ||
) |
Definition at line 2059 of file RField.cxx.
|
default |
|
overridedefault |
|
overrideprotectedvirtual |
Called by Clone(), which additionally copies the on-disk ID.
Reimplemented from ROOT::Experimental::RRecordField.
Definition at line 2084 of file RField.cxx.
|
overridevirtual |
Releases the resources acquired during GenerateValue (memory and constructor) This implementation works for simple types but needs to be overwritten for complex ones.
Reimplemented from ROOT::Experimental::RRecordField.
Definition at line 2100 of file RField.cxx.
|
overridevirtual |
Generates a tree value in a given location of size at least GetValueSize().
Assumes that where has been allocated by malloc().
Reimplemented from ROOT::Experimental::RRecordField.
Definition at line 2095 of file RField.cxx.
|
staticprivate |
|
default |
|
private |
Definition at line 803 of file RField.hxx.