Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
ROOT::RField< bool > Class Referencefinal

Definition at line 62 of file RFieldFundamental.hxx.

Public Types

enum  
 
using ColumnRepresentation_t
 
enum  EState
 During its lifetime, a field undergoes the following possible state transitions: More...
 
using RConstSchemaIterator
 
using RSchemaIterator
 

Public Member Functions

 RField (RField &&other)=default
 
 RField (RField &&other)=default
 
 RField (std::string_view name)
 
 RField (std::string_view name)
 
 ~RField () final=default
 
 ~RField () final=default
 
void AcceptVisitor (ROOT::Detail::RFieldVisitor &visitor) const final
 
void AcceptVisitor (ROOT::Detail::RFieldVisitor &visitor) const final
 
RSchemaIterator begin ()
 
RConstSchemaIterator begin () const
 
RValue BindValue (std::shared_ptr< void > objPtr)
 Creates a value from a memory location with an already constructed object.
 
RConstSchemaIterator cbegin () const
 
RConstSchemaIterator cend () const
 
std::unique_ptr< RFieldBaseClone (std::string_view newName) const
 Copies the field and its subfields using a possibly new name and a new, unconnected set of columns.
 
RBulkValues CreateBulk ()
 Creates a new, initially empty bulk.
 
std::unique_ptr< void, typename RFieldBase::RCreateObjectDeleter< void >::deleter > CreateObject () const
 
std::unique_ptr< bool, typename RCreateObjectDeleter< bool >::deleter > CreateObject () const
 Generates an object of the field type and allocates new initialized memory according to the type.
 
std::unique_ptr< void, typename ROOT::RFieldBase::RCreateObjectDeleter< void >::deleter > CreateObject () const
 
RValue CreateValue ()
 Generates an object of the field's type, wraps it in a shared pointer and returns it as an RValue connected to the field.
 
RSchemaIterator end ()
 
RConstSchemaIterator end () const
 
std::size_t GetAlignment () const final
 What alignof(T) for this type returns.
 
const TClassGetClass () const
 Return the TClass instance backing this field.
 
RColumnRepresentations::Selection_t GetColumnRepresentatives () const
 Returns the fColumnRepresentative pointee or, if unset (always the case for artificial fields), the field's default representative.
 
std::vector< const RFieldBase * > GetConstSubfields () const
 
const std::string & GetDescription () const
 Get the field's description.
 
const std::string & GetFieldName () const
 
virtual std::uint32_t GetFieldVersion () const
 Indicates an evolution of the mapping scheme from C++ type to columns.
 
std::vector< RFieldBase * > GetMutableSubfields ()
 
std::size_t GetNRepetitions () const
 
ROOT::DescriptorId_t GetOnDiskId () const
 
std::uint32_t GetOnDiskTypeChecksum () const
 Return checksum stored in the field descriptor; only valid after a call to ConnectPageSource(), if the field stored a type checksum.
 
std::uint32_t GetOnDiskTypeVersion () const
 Return the C++ type version stored in the field descriptor; only valid after a call to ConnectPageSource()
 
const RFieldBaseGetParent () const
 
const std::type_info * GetPolymorphicTypeInfo () const
 For polymorphic classes (that declare or inherit at least one virtual method), return the expected dynamic type of any user object.
 
std::string GetQualifiedFieldName () const
 Returns the field name and parent field names separated by dots (grandparent.parent.child)
 
EState GetState () const
 
ROOT::ENTupleStructure GetStructure () const
 
std::uint32_t GetTraits () const
 
const std::string & GetTypeAlias () const
 
std::uint32_t GetTypeChecksum () const final
 Return the current TClass reported checksum of this class. Only valid if kTraitTypeChecksum is set.
 
const std::string & GetTypeName () const
 
std::uint32_t GetTypeVersion () const final
 Indicates an evolution of the C++ type itself.
 
std::size_t GetValueSize () const final
 What sizeof(T) for this type returns.
 
bool HasDefaultColumnRepresentative () const
 Whether or not an explicit column representative was set.
 
bool HasReadCallbacks () const
 
bool IsArtificial () const
 
bool IsSimple () const
 
boolMap (RNTupleLocalIndex localIndex)
 
boolMap (ROOT::NTupleSize_t globalIndex)
 
boolMapV (RNTupleLocalIndex localIndex, ROOT::NTupleSize_t &nItems)
 
boolMapV (ROOT::NTupleSize_t globalIndex, ROOT::NTupleSize_t &nItems)
 
RFieldoperator= (RField &&other)=default
 
RFieldoperator= (RField &&other)=default
 
void SetColumnRepresentatives (const RColumnRepresentations::Selection_t &representatives)
 Fixes a column representative.
 
void SetDescription (std::string_view description)
 
void SetOnDiskId (ROOT::DescriptorId_t id)
 
std::vector< RValueSplitValue (const RValue &value) const final
 Creates the list of direct child values given an existing value for this field.
 

Static Public Member Functions

static std::vector< RCheckResultCheck (const std::string &fieldName, const std::string &typeName)
 Checks if the given type is supported by RNTuple.
 
static RResult< std::unique_ptr< RFieldBase > > Create (const std::string &fieldName, const std::string &typeName)
 Factory method to create a field from a certain type given as string.
 
static std::string TypeName ()
 
static std::string TypeName ()
 

Static Public Attributes

static constexpr std::uint32_t kInvalidTypeVersion
 

Protected Types

enum  
 Bits used in CompareOnDisk() More...
 

Protected Member Functions

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.
 
std::size_t Append (const void *from)
 Write the given value into columns.
 
std::size_t AppendImpl (const void *from) final
 Operations on values of complex types, e.g.
 
void Attach (std::unique_ptr< RFieldBase > child, std::string_view expectedChildName="")
 Add a new subfield to the list of nested fields.
 
void AutoAdjustColumnTypes (const ROOT::RNTupleWriteOptions &options)
 When connecting a field to a page sink, the field's default column representation is subject to adjustment according to the write options.
 
std::unique_ptr< RFieldBaseBeforeConnectPageSource (ROOT::Internal::RPageSource &pageSource) final
 Called by ConnectPageSource() before connecting; derived classes may override this as appropriate, e.g.
 
std::unique_ptr< RFieldBaseCloneImpl (std::string_view newName) const final
 Called by Clone(), which additionally copies the on-disk ID.
 
std::unique_ptr< RFieldBaseCloneImpl (std::string_view newName) const final
 Called by Clone(), which additionally copies the on-disk ID.
 
virtual void CommitClusterImpl ()
 
std::uint32_t CompareOnDiskField (const RFieldDescriptor &fieldDesc, std::uint32_t ignoreBits) const
 Returns a combination of kDiff... flags, indicating peroperties that are different between the field at hand and the given on-disk field.
 
void ConstructValue (void *where) const final
 Constructs value in a given location of size at least GetValueSize(). Called by the base class' CreateValue().
 
void * CreateObjectRawPtr () const
 Factory method for the field's type. The caller owns the returned pointer.
 
const ColumnRepresentation_tEnsureCompatibleColumnTypes (const ROOT::RNTupleDescriptor &desc, std::uint16_t representationIndex) const
 Returns the on-disk column types found in the provided descriptor for fOnDiskId and the given representation index.
 
RResult< void > EnsureMatchingOnDiskCollection (const RNTupleDescriptor &desc) const
 Convenience wrapper for the common case of calling EnsureMatchinOnDiskField() for collections.
 
RResult< void > EnsureMatchingOnDiskField (const RNTupleDescriptor &desc, std::uint32_t ignoreBits=0) const
 Compares the field to the corresponding on-disk field information in the provided descriptor.
 
RResult< void > EnsureMatchingTypePrefix (const RNTupleDescriptor &desc, const std::vector< std::string > &prefixes) const
 Many fields accept a range of type prefixes for schema evolution, e.g.
 
virtual void GenerateColumns ()
 Implementations in derived classes should create the backing columns corresponding to the field type for writing.
 
virtual void GenerateColumns (const ROOT::RNTupleDescriptor &)
 Implementations in derived classes should create the backing columns corresponding to the field type for reading.
 
void GenerateColumnsImpl ()
 For writing, use the currently set column representative.
 
void GenerateColumnsImpl (const ColumnRepresentation_t &representation, std::uint16_t representationIndex)
 Helpers for generating columns.
 
void GenerateColumnsImpl (const ROOT::RNTupleDescriptor &desc)
 For reading, use the on-disk column list.
 
virtual const RColumnRepresentationsGetColumnRepresentations () const
 Implementations in derived classes should return a static RColumnRepresentations object.
 
const RColumnRepresentationsGetColumnRepresentations () const final
 Implementations in derived classes should return a static RColumnRepresentations object.
 
std::unique_ptr< RDeleterGetDeleter () const final
 
virtual ROOT::RExtraTypeInfoDescriptor GetExtraTypeInfo () const
 
virtual bool HasExtraTypeInfo () const
 
void Read (RNTupleLocalIndex localIndex, void *to)
 Populate a single value with data from the field.
 
void Read (ROOT::NTupleSize_t globalIndex, void *to)
 Populate a single value with data from the field.
 
std::size_t ReadBulk (const RBulkSpec &bulkSpec)
 Returns the number of newly available values, that is the number of bools in bulkSpec.fMaskAvail that flipped from false to true.
 
virtual std::size_t ReadBulkImpl (const RBulkSpec &bulkSpec)
 General implementation of bulk read.
 
void ReadGlobalImpl (ROOT::NTupleSize_t globalIndex, void *to) final
 
void ReadInClusterImpl (RNTupleLocalIndex localIndex, void *to) final
 
void ReconcileOnDiskField (const RNTupleDescriptor &desc) final
 For non-artificial fields, check compatibility of the in-memory field and the on-disk field.
 
void RemoveReadCallback (size_t idx)
 

Static Protected Member Functions

static std::size_t CallAppendOn (RFieldBase &other, const void *from)
 Allow derived classes to call Append() and Read() on other (sub)fields.
 
static void CallConstructValueOn (const RFieldBase &other, void *where)
 Allow derived classes to call ConstructValue(void *) and GetDeleter() on other (sub)fields.
 
static void * CallCreateObjectRawPtrOn (RFieldBase &other)
 
static void CallReadOn (RFieldBase &other, RNTupleLocalIndex localIndex, void *to)
 
static void CallReadOn (RFieldBase &other, ROOT::NTupleSize_t globalIndex, void *to)
 
static void CallSetArtificialOn (RFieldBase &other)
 Allow parents to mark their childs as artificial fields (used in class and record fields)
 
static RResult< std::unique_ptr< RFieldBase > > Create (const std::string &fieldName, const std::string &typeName, const ROOT::RCreateFieldOptions &options, const ROOT::RNTupleDescriptor *desc, ROOT::DescriptorId_t fieldId)
 Factory method to resurrect a field from the stored on-disk type information.
 
static std::unique_ptr< RDeleterGetDeleterOf (const RFieldBase &other)
 
static ROOT::Internal::RColumnGetPrincipalColumnOf (const RFieldBase &other)
 Fields may need direct access to the principal column of their subfields, e.g. in RRVecField::ReadBulk()
 

Protected Attributes

ROOT::Internal::RColumnfAuxiliaryColumn
 Some fields have a second column in its column representation.
 
std::vector< std::unique_ptr< ROOT::Internal::RColumn > > fAvailableColumns
 The columns are connected either to a sink or to a source (not to both); they are owned by the field.
 
std::vector< std::reference_wrapper< const ColumnRepresentation_t > > fColumnRepresentatives
 Pointers into the static vector returned by RColumnRepresentations::GetSerializationTypes() when SetColumnRepresentatives() is called.
 
std::uint32_t fOnDiskTypeChecksum
 TClass checksum cached from the descriptor after a call to ConnectPageSource().
 
std::uint32_t fOnDiskTypeVersion
 C++ type version cached from the descriptor after a call to ConnectPageSource()
 
RFieldBasefParent
 Subfields point to their mother field.
 
ROOT::Internal::RColumnfPrincipalColumn
 All fields that have columns have a distinct main column.
 
std::vector< ReadCallback_tfReadCallbacks
 List of functions to be called after reading a value.
 
std::vector< std::unique_ptr< RFieldBase > > fSubfields
 Collections and classes own subfields.
 
std::uint32_t fTraits
 Properties of the type that allow for optimizations of collections of that type.
 
std::string fTypeAlias
 A typedef or using name that was used when creating the field.
 

Private Types

enum  ESubfieldRole
 
using ReadCallback_t
 

Private Member Functions

void AddReadCallbacksFromIORule (const TSchemaRule *rule)
 Register post-read callback corresponding to a ROOT I/O customization rules.
 
void Attach (std::unique_ptr< RFieldBase > child, RSubfieldInfo info)
 
void CommitCluster ()
 Flushes data from active columns to disk and calls CommitClusterImpl()
 
void ConnectPageSink (ROOT::Internal::RPageSink &pageSink, ROOT::NTupleSize_t firstEntry=0)
 Fields and their columns live in the void until connected to a physical page storage.
 
void ConnectPageSource (ROOT::Internal::RPageSource &pageSource)
 Connects the field and its subfield tree to the given page source.
 
ROOT::NTupleSize_t EntryToColumnElementIndex (ROOT::NTupleSize_t globalIndex) const
 Translate an entry index to a column element index of the principal column.
 
std::vector< const TSchemaRule * > FindRules (const ROOT::RFieldDescriptor *fieldDesc)
 Given the on-disk information from the page source, find all the I/O customization rules that apply to the class field at hand, to which the fieldDesc descriptor, if provided, must correspond.
 
void FlushColumns ()
 Flushes data from active columns.
 
void InvokeReadCallbacks (void *target)
 
ROOT::DescriptorId_t LookupMember (const ROOT::RNTupleDescriptor &desc, std::string_view memberName, ROOT::DescriptorId_t classFieldId)
 Returns the id of member 'name' in the class field given by 'fieldId', or kInvalidDescriptorId if no such member exist.
 
void PrepareStagingArea (const std::vector< const TSchemaRule * > &rules, const ROOT::RNTupleDescriptor &desc, const ROOT::RFieldDescriptor &classFieldId)
 If there are rules with inputs (source members), create the staging area according to the TClass instance that corresponds to the on-disk field.
 
void ReconcileFloatingPointField (const RNTupleDescriptor &desc)
 
void ReconcileIntegralField (const RNTupleDescriptor &desc)
 
void SetArtificial ()
 
void SetStagingClass (const std::string &className, unsigned int classVersion)
 Sets fStagingClass according to the given name and version.
 

Private Attributes

TClassfClass
 
std::string fDescription
 Free text set by the user.
 
bool fIsArtificial
 A field that is not backed on disk but computed, e.g.
 
bool fIsSimple
 A field qualifies as simple if it is mappable (which implies it has a single principal column), and it is not an artificial field and has no post-read callback.
 
std::string fName
 The field name relative to its parent field.
 
std::size_t fNRepetitions
 For fixed sized arrays, the array length.
 
ROOT::DescriptorId_t fOnDiskId
 When the columns are connected to a page source or page sink, the field represents a field id in the corresponding RNTuple descriptor.
 
std::unique_ptr< unsigned char[]> fStagingArea
 The staging area stores inputs to I/O rules according to the offsets given by the streamer info of "TypeName@@Version".
 
TClassfStagingClass
 The TClass instance that corresponds to the staging area.
 
std::unordered_map< std::string, RStagingItemfStagingItems
 Lookup staging items by member name.
 
EState fState
 Changed by ConnectTo[Sink,Source], reset by Clone()
 
ROOT::ENTupleStructure fStructure
 The role of this field in the data model structure.
 
std::vector< RSubfieldInfofSubfieldsInfo
 Additional information kept for each entry in fSubfields
 
std::string fType
 The C++ type captured by this field.
 

Static Private Attributes

static constexpr const char * kPrefixInherited
 Prefix used in the subfield names generated for base classes.
 

#include <ROOT/RField/RFieldFundamental.hxx>

Inheritance diagram for ROOT::RField< bool >:
[legend]

Member Typedef Documentation

◆ ColumnRepresentation_t

Definition at line 179 of file RFieldBase.hxx.

◆ RConstSchemaIterator

Definition at line 576 of file RFieldBase.hxx.

◆ ReadCallback_t

Definition at line 104 of file RFieldBase.hxx.

◆ RSchemaIterator

Definition at line 575 of file RFieldBase.hxx.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum

Definition at line 154 of file RFieldBase.hxx.

◆ anonymous enum

anonymous enum
protected

Bits used in CompareOnDisk()

Definition at line 301 of file RFieldBase.hxx.

◆ EState

During its lifetime, a field undergoes the following possible state transitions:

[*] --> Unconnected --> ConnectedToSink -— | | | | --> ConnectedToSource ---> [*]

| |

Definition at line 188 of file RFieldBase.hxx.

◆ ESubfieldRole

Definition at line 137 of file RField.hxx.

Constructor & Destructor Documentation

◆ RField() [1/4]

ROOT::RField< bool >::RField ( std::string_view name)
inlineexplicit

Definition at line 73 of file RFieldFundamental.hxx.

◆ RField() [2/4]

ROOT::RField< bool >::RField ( RField< bool > && other)
default

◆ ~RField() [1/2]

ROOT::RField< bool >::~RField ( )
finaldefault

◆ RField() [3/4]

ROOT::RField< bool, typename >::RField ( std::string_view name)
inline

Definition at line 322 of file RField.hxx.

◆ RField() [4/4]

ROOT::RField< bool, typename >::RField ( RField< bool > && other)
default

◆ ~RField() [2/2]

ROOT::RField< bool, typename >::~RField ( )
finaldefault

Member Function Documentation

◆ AcceptVisitor() [1/2]

void ROOT::RClassField::AcceptVisitor ( ROOT::Detail::RFieldVisitor & visitor) const
final

Definition at line 230 of file RFieldMeta.cxx.

◆ AcceptVisitor() [2/2]

void ROOT::RField< bool >::AcceptVisitor ( ROOT::Detail::RFieldVisitor & visitor) const
finalvirtual

Reimplemented from ROOT::RClassField.

Definition at line 293 of file RField.cxx.

◆ AddReadCallback()

size_t ROOT::RFieldBase::AddReadCallback ( ReadCallback_t func)
protected

Set a user-defined function to be called after reading a value, giving a chance to inspect and/or modify the value object.

Returns an index that can be used to remove the callback.

Definition at line 515 of file RFieldBase.cxx.

◆ AddReadCallbacksFromIORule()

void ROOT::RClassField::AddReadCallbacksFromIORule ( const TSchemaRule * rule)
private

Register post-read callback corresponding to a ROOT I/O customization rules.

Definition at line 194 of file RFieldMeta.cxx.

◆ Append()

std::size_t ROOT::RFieldBase::Append ( const void * from)
protected

Write the given value into columns.

The value object has to be of the same type as the field. Returns the number of uncompressed bytes written.

Definition at line 455 of file RFieldBase.cxx.

◆ AppendImpl()

std::size_t ROOT::RClassField::AppendImpl ( const void * from)
finalprotected

Operations on values of complex types, e.g.

ones that involve multiple columns or for which no direct column type exists.

Definition at line 207 of file RFieldMeta.cxx.

◆ Attach() [1/2]

void ROOT::RClassField::Attach ( std::unique_ptr< RFieldBase > child,
RSubfieldInfo info )
private

Definition at line 181 of file RFieldMeta.cxx.

◆ Attach() [2/2]

void ROOT::RFieldBase::Attach ( std::unique_ptr< RFieldBase > child,
std::string_view expectedChildName = "" )
protected

Add a new subfield to the list of nested fields.

Throws an exception if childName is non-empty and the passed field has a different name.

Definition at line 531 of file RFieldBase.cxx.

◆ AutoAdjustColumnTypes()

void ROOT::RFieldBase::AutoAdjustColumnTypes ( const ROOT::RNTupleWriteOptions & options)
protected

When connecting a field to a page sink, the field's default column representation is subject to adjustment according to the write options.

E.g., if compression is turned off, encoded columns are changed to their unencoded counterparts.

Definition at line 432 of file RFieldBase.cxx.

◆ BeforeConnectPageSource()

std::unique_ptr< ROOT::RFieldBase > ROOT::RClassField::BeforeConnectPageSource ( ROOT::Internal::RPageSource & pageSource)
finalprotected

Called by ConnectPageSource() before connecting; derived classes may override this as appropriate, e.g.

for the application of I/O rules. In the process, the field at hand or its subfields may be marked as "artifical", i.e. introduced by schema evolution and not backed by on-disk information. May return a field substitute that fits the on-disk schema as a replacement for the field at hand. A field substitute must read into the same in-memory layout than the original field and field substitutions must not be cyclic.

Definition at line 211 of file RFieldMeta.cxx.

◆ begin() [1/2]

ROOT::RFieldBase::RSchemaIterator ROOT::RFieldBase::begin ( )

Definition at line 692 of file RFieldBase.cxx.

◆ begin() [2/2]

ROOT::RFieldBase::RConstSchemaIterator ROOT::RFieldBase::begin ( ) const

Definition at line 694 of file RFieldBase.cxx.

◆ BindValue()

ROOT::RFieldBase::RValue ROOT::RFieldBase::BindValue ( std::shared_ptr< void > objPtr)

Creates a value from a memory location with an already constructed object.

Definition at line 638 of file RFieldBase.cxx.

◆ CallAppendOn()

static std::size_t ROOT::RFieldBase::CallAppendOn ( RFieldBase & other,
const void * from )
inlinestaticprotected

Allow derived classes to call Append() and Read() on other (sub)fields.

Definition at line 504 of file RFieldBase.hxx.

◆ CallConstructValueOn()

static void ROOT::RFieldBase::CallConstructValueOn ( const RFieldBase & other,
void * where )
inlinestaticprotected

Allow derived classes to call ConstructValue(void *) and GetDeleter() on other (sub)fields.

Definition at line 441 of file RFieldBase.hxx.

◆ CallCreateObjectRawPtrOn()

static void * ROOT::RFieldBase::CallCreateObjectRawPtrOn ( RFieldBase & other)
inlinestaticprotected

Definition at line 507 of file RFieldBase.hxx.

◆ CallReadOn() [1/2]

static void ROOT::RFieldBase::CallReadOn ( RFieldBase & other,
RNTupleLocalIndex localIndex,
void * to )
inlinestaticprotected

Definition at line 505 of file RFieldBase.hxx.

◆ CallReadOn() [2/2]

static void ROOT::RFieldBase::CallReadOn ( RFieldBase & other,
ROOT::NTupleSize_t globalIndex,
void * to )
inlinestaticprotected

Definition at line 506 of file RFieldBase.hxx.

◆ CallSetArtificialOn()

static void ROOT::RFieldBase::CallSetArtificialOn ( RFieldBase & other)
inlinestaticprotected

Allow parents to mark their childs as artificial fields (used in class and record fields)

Definition at line 445 of file RFieldBase.hxx.

◆ cbegin()

ROOT::RFieldBase::RConstSchemaIterator ROOT::RFieldBase::cbegin ( ) const

Definition at line 696 of file RFieldBase.cxx.

◆ cend()

ROOT::RFieldBase::RConstSchemaIterator ROOT::RFieldBase::cend ( ) const

Definition at line 697 of file RFieldBase.cxx.

◆ Check()

std::vector< ROOT::RFieldBase::RCheckResult > ROOT::RFieldBase::Check ( const std::string & fieldName,
const std::string & typeName )
static

Checks if the given type is supported by RNTuple.

In case of success, the result vector is empty. Otherwise there is an error record for each failing subfield (subtype).

Definition at line 613 of file RFieldBase.cxx.

◆ Clone()

std::unique_ptr< ROOT::RFieldBase > ROOT::RFieldBase::Clone ( std::string_view newName) const

Copies the field and its subfields using a possibly new name and a new, unconnected set of columns.

Definition at line 603 of file RFieldBase.cxx.

◆ CloneImpl() [1/2]

std::unique_ptr< ROOT::RFieldBase > ROOT::RClassField::CloneImpl ( std::string_view newName) const
finalprotected

Called by Clone(), which additionally copies the on-disk ID.

Definition at line 202 of file RFieldMeta.cxx.

◆ CloneImpl() [2/2]

std::unique_ptr< RFieldBase > ROOT::RField< bool >::CloneImpl ( std::string_view newName) const
inlinefinalprotectedvirtual

Called by Clone(), which additionally copies the on-disk ID.

Reimplemented from ROOT::RClassField.

Definition at line 64 of file RFieldFundamental.hxx.

◆ CommitCluster()

void ROOT::RFieldBase::CommitCluster ( )
private

Flushes data from active columns to disk and calls CommitClusterImpl()

Definition at line 277 of file RFieldBase.cxx.

◆ CommitClusterImpl()

virtual void ROOT::RFieldBase::CommitClusterImpl ( )
inlineprotectedvirtual

Definition at line 519 of file RFieldBase.hxx.

◆ CompareOnDiskField()

std::uint32_t ROOT::RFieldBase::CompareOnDiskField ( const RFieldDescriptor & fieldDesc,
std::uint32_t ignoreBits ) const
protected

Returns a combination of kDiff... flags, indicating peroperties that are different between the field at hand and the given on-disk field.

Definition at line 551 of file RFieldBase.cxx.

◆ ConnectPageSink()

void ROOT::RFieldBase::ConnectPageSink ( ROOT::Internal::RPageSink & pageSink,
ROOT::NTupleSize_t firstEntry = 0 )
private

Fields and their columns live in the void until connected to a physical page storage.

Only once connected, data can be read or written. In order to find the field in the page storage, the field's on-disk ID has to be set.

Parameters
firstEntryThe global index of the first entry with on-disk data for the connected field

Definition at line 281 of file RFieldBase.cxx.

◆ ConnectPageSource()

void ROOT::RFieldBase::ConnectPageSource ( ROOT::Internal::RPageSource & pageSource)
private

Connects the field and its subfield tree to the given page source.

Once connected, data can be read. Only unconnected fields may be connected, i.e. the method is not idempotent. The field ID has to be set prior to calling this function. For subfields, a field ID may or may not be set. If the field ID is unset, it will be determined using the page source descriptor, based on the parent field ID and the subfield name.

Definition at line 286 of file RFieldBase.cxx.

◆ ConstructValue()

void ROOT::RClassField::ConstructValue ( void * where) const
finalprotected

Constructs value in a given location of size at least GetValueSize(). Called by the base class' CreateValue().

Definition at line 204 of file RFieldMeta.cxx.

◆ Create() [1/2]

ROOT::RResult< std::unique_ptr< ROOT::RFieldBase > > ROOT::RFieldBase::Create ( const std::string & fieldName,
const std::string & typeName )
static

Factory method to create a field from a certain type given as string.

Note that the provided type name must be a valid C++ type name. Template arguments of templated types must be type names or integers (e.g., no expressions).

Definition at line 609 of file RFieldBase.cxx.

◆ Create() [2/2]

ROOT::RResult< std::unique_ptr< ROOT::RFieldBase > > ROOT::RFieldBase::Create ( const std::string & fieldName,
const std::string & typeName,
const ROOT::RCreateFieldOptions & options,
const ROOT::RNTupleDescriptor * desc,
ROOT::DescriptorId_t fieldId )
staticprotected

Factory method to resurrect a field from the stored on-disk type information.

This overload takes an already normalized type name and type alias. desc and fieldId must be passed if options.fEmulateUnknownTypes is true, otherwise they can be left blank.

Definition at line 569 of file RFieldBase.cxx.

◆ CreateBulk()

ROOT::RFieldBase::RBulkValues ROOT::RFieldBase::CreateBulk ( )

Creates a new, initially empty bulk.

RBulkValues::ReadBulk() will construct the array of values. The memory of the value array is managed by the RBulkValues class.

Definition at line 636 of file RFieldBase.cxx.

◆ CreateObject() [1/3]

std::unique_ptr< void, typename RFieldBase::RCreateObjectDeleter< void >::deleter > ROOT::RFieldBase::CreateObject ( ) const

◆ CreateObject() [2/3]

std::unique_ptr< bool, typename RFieldBase::RCreateObjectDeleter< bool >::deleter > ROOT::RFieldBase::CreateObject ( ) const

Generates an object of the field type and allocates new initialized memory according to the type.

Implemented at the end of this header because the implementation is using RField<T>::TypeName() The returned object can be released with delete, i.e. it is valid to call:

auto ptr = field->CreateObject();
delete ptr.release();

Over-aligned types need to delete the returned pointer using the delete operator overload that specifies the type's alignment.

Note that CreateObject<void>() is supported. The returned unique_ptr has a custom deleter that reports an error if it is called. The intended use of the returned unique_ptr<void> is to call release(). In this way, the transfer of pointer ownership is explicit.

Definition at line 629 of file RField.hxx.

◆ CreateObject() [3/3]

std::unique_ptr< void, typename ROOT::RFieldBase::RCreateObjectDeleter< void >::deleter > ROOT::RFieldBase::CreateObject ( ) const

Definition at line 223 of file RFieldBase.cxx.

◆ CreateObjectRawPtr()

void * ROOT::RFieldBase::CreateObjectRawPtr ( ) const
protected

Factory method for the field's type. The caller owns the returned pointer.

Definition at line 348 of file RFieldBase.cxx.

◆ CreateValue()

ROOT::RFieldBase::RValue ROOT::RFieldBase::CreateValue ( )

Generates an object of the field's type, wraps it in a shared pointer and returns it as an RValue connected to the field.

Definition at line 632 of file RFieldBase.cxx.

◆ end() [1/2]

ROOT::RFieldBase::RSchemaIterator ROOT::RFieldBase::end ( )

Definition at line 693 of file RFieldBase.cxx.

◆ end() [2/2]

ROOT::RFieldBase::RConstSchemaIterator ROOT::RFieldBase::end ( ) const

Definition at line 695 of file RFieldBase.cxx.

◆ EnsureCompatibleColumnTypes()

const ROOT::RFieldBase::ColumnRepresentation_t & ROOT::RFieldBase::EnsureCompatibleColumnTypes ( const ROOT::RNTupleDescriptor & desc,
std::uint16_t representationIndex ) const
protected

Returns the on-disk column types found in the provided descriptor for fOnDiskId and the given representation index.

If there are no columns for the given representation index, return an empty ColumnRepresentation_t list. Otherwise, the returned reference points into the static array returned by GetColumnRepresentations(). Throws an exception if the types on disk don't match any of the deserialization types from GetColumnRepresentations().

Definition at line 428 of file RFieldBase.cxx.

◆ EnsureMatchingOnDiskCollection()

ROOT::RResult< void > ROOT::RFieldBase::EnsureMatchingOnDiskCollection ( const RNTupleDescriptor & desc) const
protected

Convenience wrapper for the common case of calling EnsureMatchinOnDiskField() for collections.

Collections may differ in type name (most collections schema evolve into each other). An on-disk SoA collection may also have any type version whereas all other collections need to have type version 0.

Definition at line 559 of file RFieldBase.cxx.

◆ EnsureMatchingOnDiskField()

ROOT::RResult< void > ROOT::RFieldBase::EnsureMatchingOnDiskField ( const RNTupleDescriptor & desc,
std::uint32_t ignoreBits = 0 ) const
protected

Compares the field to the corresponding on-disk field information in the provided descriptor.

Throws an exception if the fields don't match. Optionally, a set of bits can be provided that should be ignored in the comparison.

Definition at line 555 of file RFieldBase.cxx.

◆ EnsureMatchingTypePrefix()

ROOT::RResult< void > ROOT::RFieldBase::EnsureMatchingTypePrefix ( const RNTupleDescriptor & desc,
const std::vector< std::string > & prefixes ) const
protected

Many fields accept a range of type prefixes for schema evolution, e.g.

std::unique_ptr< and std::optional< for nullable fields

Definition at line 563 of file RFieldBase.cxx.

◆ EntryToColumnElementIndex()

ROOT::NTupleSize_t ROOT::RFieldBase::EntryToColumnElementIndex ( ROOT::NTupleSize_t globalIndex) const
private

Translate an entry index to a column element index of the principal column.

This function takes into account the role and number of repetitions on each level of the field hierarchy as follows:

  • Top level fields: element index == entry index
  • Record fields propagate their principal column index to the principal columns of direct descendant fields
  • Collection and variant fields set the principal column index of their children to 0

The column element index also depends on the number of repetitions of each field in the hierarchy, e.g., given a field with type std::array<std::array<float, 4>, 2>, this function called with globalIndex == 1 returns 8 for the innermost field.

Definition at line 272 of file RFieldBase.cxx.

◆ FindRules()

std::vector< const ROOT::TSchemaRule * > ROOT::RClassField::FindRules ( const ROOT::RFieldDescriptor * fieldDesc)
private

Given the on-disk information from the page source, find all the I/O customization rules that apply to the class field at hand, to which the fieldDesc descriptor, if provided, must correspond.

Fields may not have an on-disk representation (e.g., when inserted by schema evolution), in which case the passed field descriptor is nullptr.

Definition at line 199 of file RFieldMeta.cxx.

◆ FlushColumns()

void ROOT::RFieldBase::FlushColumns ( )
private

Flushes data from active columns.

Definition at line 275 of file RFieldBase.cxx.

◆ GenerateColumns() [1/2]

virtual void ROOT::RFieldBase::GenerateColumns ( )
inlineprotectedvirtual

Implementations in derived classes should create the backing columns corresponding to the field type for writing.

The default implementation does not attach any columns to the field.

Definition at line 416 of file RFieldBase.hxx.

◆ GenerateColumns() [2/2]

virtual void ROOT::RFieldBase::GenerateColumns ( const ROOT::RNTupleDescriptor & )
inlineprotectedvirtual

Implementations in derived classes should create the backing columns corresponding to the field type for reading.

The default implementation does not attach any columns to the field. The method should check, using the page source and fOnDiskId, if the column types match and throw if they don't.

Definition at line 420 of file RFieldBase.hxx.

◆ GenerateColumnsImpl() [1/3]

void ROOT::RFieldBase::GenerateColumnsImpl ( )
inlineprotected

For writing, use the currently set column representative.

Definition at line 376 of file RFieldBase.hxx.

◆ GenerateColumnsImpl() [2/3]

void ROOT::RFieldBase::GenerateColumnsImpl ( const ColumnRepresentation_t & representation,
std::uint16_t representationIndex )
inlineprotected

Helpers for generating columns.

We use the fact that most fields have the same C++/memory types for all their column representations. Where possible, we call the helpers not from the header to reduce compilation time.

Definition at line 354 of file RFieldBase.hxx.

◆ GenerateColumnsImpl() [3/3]

void ROOT::RFieldBase::GenerateColumnsImpl ( const ROOT::RNTupleDescriptor & desc)
inlineprotected

For reading, use the on-disk column list.

Definition at line 392 of file RFieldBase.hxx.

◆ GetAlignment()

std::size_t ROOT::RClassField::GetAlignment ( ) const
final

What alignof(T) for this type returns.

Definition at line 222 of file RFieldMeta.cxx.

◆ GetClass()

const TClass * ROOT::RClassField::GetClass ( ) const
inline

Return the TClass instance backing this field.

Definition at line 229 of file RField.hxx.

◆ GetColumnRepresentations() [1/2]

const ROOT::RFieldBase::RColumnRepresentations & ROOT::RFieldBase::GetColumnRepresentations ( ) const
protectedvirtual

Implementations in derived classes should return a static RColumnRepresentations object.

The default implementation does not attach any columns to the field.

Definition at line 413 of file RFieldBase.cxx.

◆ GetColumnRepresentations() [2/2]

const ROOT::RFieldBase::RColumnRepresentations & ROOT::RField< bool >::GetColumnRepresentations ( ) const
finalprotectedvirtual

Implementations in derived classes should return a static RColumnRepresentations object.

The default implementation does not attach any columns to the field.

Reimplemented from ROOT::RFieldBase.

Definition at line 273 of file RField.cxx.

◆ GetColumnRepresentatives()

ROOT::RFieldBase::RColumnRepresentations::Selection_t ROOT::RFieldBase::GetColumnRepresentatives ( ) const

Returns the fColumnRepresentative pointee or, if unset (always the case for artificial fields), the field's default representative.

Definition at line 672 of file RFieldBase.cxx.

◆ GetConstSubfields()

std::vector< const ROOT::RFieldBase * > ROOT::RFieldBase::GetConstSubfields ( ) const

Definition at line 659 of file RFieldBase.cxx.

◆ GetDeleter()

std::unique_ptr< RDeleter > ROOT::RClassField::GetDeleter ( ) const
inlinefinalprotected

Definition at line 205 of file RField.hxx.

◆ GetDeleterOf()

static std::unique_ptr< RDeleter > ROOT::RFieldBase::GetDeleterOf ( const RFieldBase & other)
inlinestaticprotected

Definition at line 442 of file RFieldBase.hxx.

◆ GetDescription()

const std::string & ROOT::RFieldBase::GetDescription ( ) const
inline

Get the field's description.

Definition at line 663 of file RFieldBase.hxx.

◆ GetExtraTypeInfo()

virtual ROOT::RExtraTypeInfoDescriptor ROOT::RFieldBase::GetExtraTypeInfo ( ) const
inlineprotectedvirtual

Definition at line 527 of file RFieldBase.hxx.

◆ GetFieldName()

const std::string & ROOT::RFieldBase::GetFieldName ( ) const
inline

Definition at line 650 of file RFieldBase.hxx.

◆ GetFieldVersion()

virtual std::uint32_t ROOT::RFieldBase::GetFieldVersion ( ) const
inlinevirtual

Indicates an evolution of the mapping scheme from C++ type to columns.

Definition at line 681 of file RFieldBase.hxx.

◆ GetMutableSubfields()

std::vector< ROOT::RFieldBase * > ROOT::RFieldBase::GetMutableSubfields ( )

Definition at line 658 of file RFieldBase.cxx.

◆ GetNRepetitions()

std::size_t ROOT::RFieldBase::GetNRepetitions ( ) const
inline

Definition at line 656 of file RFieldBase.hxx.

◆ GetOnDiskId()

ROOT::DescriptorId_t ROOT::RFieldBase::GetOnDiskId ( ) const
inline

Definition at line 667 of file RFieldBase.hxx.

◆ GetOnDiskTypeChecksum()

std::uint32_t ROOT::RFieldBase::GetOnDiskTypeChecksum ( ) const
inline

Return checksum stored in the field descriptor; only valid after a call to ConnectPageSource(), if the field stored a type checksum.

Definition at line 690 of file RFieldBase.hxx.

◆ GetOnDiskTypeVersion()

std::uint32_t ROOT::RFieldBase::GetOnDiskTypeVersion ( ) const
inline

Return the C++ type version stored in the field descriptor; only valid after a call to ConnectPageSource()

Definition at line 687 of file RFieldBase.hxx.

◆ GetParent()

const RFieldBase * ROOT::RFieldBase::GetParent ( ) const
inline

Definition at line 657 of file RFieldBase.hxx.

◆ GetPolymorphicTypeInfo()

const std::type_info * ROOT::RClassField::GetPolymorphicTypeInfo ( ) const

For polymorphic classes (that declare or inherit at least one virtual method), return the expected dynamic type of any user object.

If the class is not polymorphic, return nullptr.

Definition at line 227 of file RFieldMeta.cxx.

◆ GetPrincipalColumnOf()

static ROOT::Internal::RColumn * ROOT::RFieldBase::GetPrincipalColumnOf ( const RFieldBase & other)
inlinestaticprotected

Fields may need direct access to the principal column of their subfields, e.g. in RRVecField::ReadBulk()

Definition at line 510 of file RFieldBase.hxx.

◆ GetQualifiedFieldName()

std::string ROOT::RFieldBase::GetQualifiedFieldName ( ) const

Returns the field name and parent field names separated by dots (grandparent.parent.child)

Definition at line 652 of file RFieldBase.cxx.

◆ GetState()

EState ROOT::RFieldBase::GetState ( ) const
inline

Definition at line 665 of file RFieldBase.hxx.

◆ GetStructure()

ROOT::ENTupleStructure ROOT::RFieldBase::GetStructure ( ) const
inline

Definition at line 655 of file RFieldBase.hxx.

◆ GetTraits()

std::uint32_t ROOT::RFieldBase::GetTraits ( ) const
inline

Definition at line 647 of file RFieldBase.hxx.

◆ GetTypeAlias()

const std::string & ROOT::RFieldBase::GetTypeAlias ( ) const
inline

Definition at line 654 of file RFieldBase.hxx.

◆ GetTypeChecksum()

std::uint32_t ROOT::RClassField::GetTypeChecksum ( ) const
final

Return the current TClass reported checksum of this class. Only valid if kTraitTypeChecksum is set.

Definition at line 224 of file RFieldMeta.cxx.

◆ GetTypeName()

const std::string & ROOT::RFieldBase::GetTypeName ( ) const
inline

Definition at line 653 of file RFieldBase.hxx.

◆ GetTypeVersion()

std::uint32_t ROOT::RClassField::GetTypeVersion ( ) const
final

Indicates an evolution of the C++ type itself.

Definition at line 223 of file RFieldMeta.cxx.

◆ GetValueSize()

std::size_t ROOT::RClassField::GetValueSize ( ) const
final

What sizeof(T) for this type returns.

Definition at line 221 of file RFieldMeta.cxx.

◆ HasDefaultColumnRepresentative()

bool ROOT::RFieldBase::HasDefaultColumnRepresentative ( ) const
inline

Whether or not an explicit column representative was set.

Definition at line 678 of file RFieldBase.hxx.

◆ HasExtraTypeInfo()

virtual bool ROOT::RFieldBase::HasExtraTypeInfo ( ) const
inlineprotectedvirtual

Definition at line 523 of file RFieldBase.hxx.

◆ HasReadCallbacks()

bool ROOT::RFieldBase::HasReadCallbacks ( ) const
inline

Definition at line 648 of file RFieldBase.hxx.

◆ InvokeReadCallbacks()

void ROOT::RFieldBase::InvokeReadCallbacks ( void * target)
inlineprivate

Definition at line 257 of file RFieldBase.hxx.

◆ IsArtificial()

bool ROOT::RFieldBase::IsArtificial ( ) const
inline

Definition at line 661 of file RFieldBase.hxx.

◆ IsSimple()

bool ROOT::RFieldBase::IsSimple ( ) const
inline

Definition at line 660 of file RFieldBase.hxx.

◆ LookupMember()

ROOT::DescriptorId_t ROOT::RClassField::LookupMember ( const ROOT::RNTupleDescriptor & desc,
std::string_view memberName,
ROOT::DescriptorId_t classFieldId )
private

Returns the id of member 'name' in the class field given by 'fieldId', or kInvalidDescriptorId if no such member exist.

Looks recursively in base classes.

Definition at line 186 of file RFieldMeta.cxx.

◆ Map() [1/2]

bool * ROOT::RSimpleField< bool >::Map ( RNTupleLocalIndex localIndex)
inlineinherited

Definition at line 417 of file RField.hxx.

◆ Map() [2/2]

bool * ROOT::RSimpleField< bool >::Map ( ROOT::NTupleSize_t globalIndex)
inlineinherited

Definition at line 416 of file RField.hxx.

◆ MapV() [1/2]

bool * ROOT::RSimpleField< bool >::MapV ( RNTupleLocalIndex localIndex,
ROOT::NTupleSize_t & nItems )
inlineinherited

Definition at line 422 of file RField.hxx.

◆ MapV() [2/2]

bool * ROOT::RSimpleField< bool >::MapV ( ROOT::NTupleSize_t globalIndex,
ROOT::NTupleSize_t & nItems )
inlineinherited

Definition at line 418 of file RField.hxx.

◆ operator=() [1/2]

RField & ROOT::RField< bool, typename >::operator= ( RField< bool > && other)
default

◆ operator=() [2/2]

RField & ROOT::RField< bool >::operator= ( RField< bool > && other)
default

◆ PrepareStagingArea()

void ROOT::RClassField::PrepareStagingArea ( const std::vector< const TSchemaRule * > & rules,
const ROOT::RNTupleDescriptor & desc,
const ROOT::RFieldDescriptor & classFieldId )
private

If there are rules with inputs (source members), create the staging area according to the TClass instance that corresponds to the on-disk field.

Definition at line 191 of file RFieldMeta.cxx.

◆ Read() [1/2]

void ROOT::RFieldBase::Read ( RNTupleLocalIndex localIndex,
void * to )
inlineprotected

Populate a single value with data from the field.

The memory location pointed to by to needs to be of the fitting type. The fast path is conditioned by the field qualifying as simple, i.e. maps as-is to a single column and has no read callback.

Definition at line 478 of file RFieldBase.hxx.

◆ Read() [2/2]

void ROOT::RFieldBase::Read ( ROOT::NTupleSize_t globalIndex,
void * to )
inlineprotected

Populate a single value with data from the field.

The memory location pointed to by to needs to be of the fitting type. The fast path is conditioned by the field qualifying as simple, i.e. maps as-is to a single column and has no read callback.

Definition at line 460 of file RFieldBase.hxx.

◆ ReadBulk()

std::size_t ROOT::RFieldBase::ReadBulk ( const RBulkSpec & bulkSpec)
protected

Returns the number of newly available values, that is the number of bools in bulkSpec.fMaskAvail that flipped from false to true.

As a special return value, kAllSet can be used if all values are read independent from the masks.

Definition at line 501 of file RFieldBase.cxx.

◆ ReadBulkImpl()

std::size_t ROOT::RFieldBase::ReadBulkImpl ( const RBulkSpec & bulkSpec)
protectedvirtual

General implementation of bulk read.

Loop over the required range and read values that are required and not already present. Derived classes may implement more optimized versions of this method. See ReadBulk() for the return value.

Definition at line 496 of file RFieldBase.cxx.

◆ ReadGlobalImpl()

void ROOT::RClassField::ReadGlobalImpl ( ROOT::NTupleSize_t globalIndex,
void * to )
finalprotected

Definition at line 208 of file RFieldMeta.cxx.

◆ ReadInClusterImpl()

void ROOT::RClassField::ReadInClusterImpl ( RNTupleLocalIndex localIndex,
void * to )
finalprotected

Definition at line 209 of file RFieldMeta.cxx.

◆ ReconcileFloatingPointField()

void ROOT::RSimpleField< bool >::ReconcileFloatingPointField ( const RNTupleDescriptor & desc)
privateinherited

Definition at line 386 of file RField.cxx.

◆ ReconcileIntegralField()

void ROOT::RSimpleField< bool >::ReconcileIntegralField ( const RNTupleDescriptor & desc)
privateinherited

Definition at line 385 of file RField.cxx.

◆ ReconcileOnDiskField()

void ROOT::RClassField::ReconcileOnDiskField ( const RNTupleDescriptor & desc)
finalprotected

For non-artificial fields, check compatibility of the in-memory field and the on-disk field.

In the process, the field at hand may change its on-disk ID or perform other tasks related to automatic schema evolution. If the on-disk field is incompatible with the in-memory field at hand, an exception is thrown.

Definition at line 212 of file RFieldMeta.cxx.

◆ RemoveReadCallback()

void ROOT::RFieldBase::RemoveReadCallback ( size_t idx)
protected

Definition at line 516 of file RFieldBase.cxx.

◆ SetArtificial()

void ROOT::RFieldBase::SetArtificial ( )
inlineprivate

Definition at line 288 of file RFieldBase.hxx.

◆ SetColumnRepresentatives()

void ROOT::RFieldBase::SetColumnRepresentatives ( const RColumnRepresentations::Selection_t & representatives)

Fixes a column representative.

This can only be done before connecting the field to a page sink. Otherwise, or if the provided representation is not in the list of GetColumnRepresentations(), an exception is thrown

Definition at line 676 of file RFieldBase.cxx.

◆ SetDescription()

void ROOT::RFieldBase::SetDescription ( std::string_view description)

Definition at line 664 of file RFieldBase.cxx.

◆ SetOnDiskId()

void ROOT::RFieldBase::SetOnDiskId ( ROOT::DescriptorId_t id)

Definition at line 668 of file RFieldBase.cxx.

◆ SetStagingClass()

void ROOT::RClassField::SetStagingClass ( const std::string & className,
unsigned int classVersion )
private

Sets fStagingClass according to the given name and version.

Definition at line 188 of file RFieldMeta.cxx.

◆ SplitValue()

std::vector< ROOT::RFieldBase::RValue > ROOT::RClassField::SplitValue ( const RValue & value) const
final

Creates the list of direct child values given an existing value for this field.

E.g. a single value for the correct std::variant or all the elements of a collection. The default implementation assumes no subvalues and returns an empty vector.

Definition at line 220 of file RFieldMeta.cxx.

◆ TypeName() [1/2]

static std::string ROOT::RField< bool, typename >::TypeName ( )
inlinestatic

Definition at line 321 of file RField.hxx.

◆ TypeName() [2/2]

static std::string ROOT::RField< bool >::TypeName ( )
inlinestatic

Definition at line 72 of file RFieldFundamental.hxx.

Member Data Documentation

◆ fAuxiliaryColumn

ROOT::Internal::RColumn* ROOT::RFieldBase::fAuxiliaryColumn
protected

Some fields have a second column in its column representation.

In this case, fAuxiliaryColumn points into fAvailableColumns to the column that immediately follows the column fPrincipalColumn points to.

Definition at line 327 of file RFieldBase.hxx.

◆ fAvailableColumns

std::vector<std::unique_ptr<ROOT::Internal::RColumn> > ROOT::RFieldBase::fAvailableColumns
protected

The columns are connected either to a sink or to a source (not to both); they are owned by the field.

Contains all columns of all representations in order of representation and column index.

Definition at line 330 of file RFieldBase.hxx.

◆ fClass

TClass* ROOT::RClassField::fClass
private

Definition at line 164 of file RField.hxx.

◆ fColumnRepresentatives

std::vector<std::reference_wrapper<const ColumnRepresentation_t> > ROOT::RFieldBase::fColumnRepresentatives
protected

Pointers into the static vector returned by RColumnRepresentations::GetSerializationTypes() when SetColumnRepresentatives() is called.

Otherwise (if empty) GetColumnRepresentatives() returns a vector with a single element, the default representation. Always empty for artificial fields.

Definition at line 345 of file RFieldBase.hxx.

◆ fDescription

std::string ROOT::RFieldBase::fDescription
private

Free text set by the user.

Definition at line 253 of file RFieldBase.hxx.

◆ fIsArtificial

bool ROOT::RFieldBase::fIsArtificial
private

A field that is not backed on disk but computed, e.g.

a default-constructed missing field or a field whose data is created by I/O customization rules. Subfields of artificial fields are artificial, too.

Definition at line 247 of file RFieldBase.hxx.

◆ fIsSimple

bool ROOT::RFieldBase::fIsSimple
private

A field qualifies as simple if it is mappable (which implies it has a single principal column), and it is not an artificial field and has no post-read callback.

Definition at line 243 of file RFieldBase.hxx.

◆ fName

std::string ROOT::RFieldBase::fName
private

The field name relative to its parent field.

Definition at line 234 of file RFieldBase.hxx.

◆ fNRepetitions

std::size_t ROOT::RFieldBase::fNRepetitions
private

For fixed sized arrays, the array length.

Definition at line 240 of file RFieldBase.hxx.

◆ fOnDiskId

ROOT::DescriptorId_t ROOT::RFieldBase::fOnDiskId
private

When the columns are connected to a page source or page sink, the field represents a field id in the corresponding RNTuple descriptor.

This on-disk ID is set in RPageSink::Create() for writing and by RFieldDescriptor::CreateField() when recreating a field / model from the stored descriptor.

Definition at line 251 of file RFieldBase.hxx.

◆ fOnDiskTypeChecksum

std::uint32_t ROOT::RFieldBase::fOnDiskTypeChecksum
protected

TClass checksum cached from the descriptor after a call to ConnectPageSource().

Only set for classes with dictionaries.

Definition at line 341 of file RFieldBase.hxx.

◆ fOnDiskTypeVersion

std::uint32_t ROOT::RFieldBase::fOnDiskTypeVersion
protected

C++ type version cached from the descriptor after a call to ConnectPageSource()

Definition at line 338 of file RFieldBase.hxx.

◆ fParent

RFieldBase* ROOT::RFieldBase::fParent
protected

Subfields point to their mother field.

Definition at line 317 of file RFieldBase.hxx.

◆ fPrincipalColumn

ROOT::Internal::RColumn* ROOT::RFieldBase::fPrincipalColumn
protected

All fields that have columns have a distinct main column.

E.g., for simple fields (float, int, ...), the principal column corresponds to the field type. For collection fields except fixed-sized arrays, the main column is the offset field. Class fields have no column of their own. When reading, points to any column of the column team of the active representation. Usually, this is just the first column. When writing, points to the first column index of the currently active (not suppressed) column representation.

Definition at line 324 of file RFieldBase.hxx.

◆ fReadCallbacks

std::vector<ReadCallback_t> ROOT::RFieldBase::fReadCallbacks
protected

List of functions to be called after reading a value.

Definition at line 336 of file RFieldBase.hxx.

◆ fStagingArea

std::unique_ptr<unsigned char[]> ROOT::RClassField::fStagingArea
private

The staging area stores inputs to I/O rules according to the offsets given by the streamer info of "TypeName@@Version".

The area is allocated depending on I/O rules resp. the source members of the I/O rules.

Definition at line 170 of file RField.hxx.

◆ fStagingClass

TClass* ROOT::RClassField::fStagingClass
private

The TClass instance that corresponds to the staging area.

The staging class exists as <class name>@<on-disk version> if the on-disk version is different from the current in-memory version, or it can be accessed by the first @alloc streamer element of the current streamer info.

Definition at line 175 of file RField.hxx.

◆ fStagingItems

std::unordered_map<std::string, RStagingItem> ROOT::RClassField::fStagingItems
private

Lookup staging items by member name.

Definition at line 176 of file RField.hxx.

◆ fState

EState ROOT::RFieldBase::fState
private

Changed by ConnectTo[Sink,Source], reset by Clone()

Definition at line 255 of file RFieldBase.hxx.

◆ fStructure

ROOT::ENTupleStructure ROOT::RFieldBase::fStructure
private

The role of this field in the data model structure.

Definition at line 238 of file RFieldBase.hxx.

◆ fSubfields

std::vector<std::unique_ptr<RFieldBase> > ROOT::RFieldBase::fSubfields
protected

Collections and classes own subfields.

Definition at line 315 of file RFieldBase.hxx.

◆ fSubfieldsInfo

std::vector<RSubfieldInfo> ROOT::RClassField::fSubfieldsInfo
private

Additional information kept for each entry in fSubfields

Definition at line 166 of file RField.hxx.

◆ fTraits

std::uint32_t ROOT::RFieldBase::fTraits
protected

Properties of the type that allow for optimizations of collections of that type.

Definition at line 332 of file RFieldBase.hxx.

◆ fType

std::string ROOT::RFieldBase::fType
private

The C++ type captured by this field.

Definition at line 236 of file RFieldBase.hxx.

◆ fTypeAlias

std::string ROOT::RFieldBase::fTypeAlias
protected

A typedef or using name that was used when creating the field.

Definition at line 334 of file RFieldBase.hxx.

◆ kInvalidTypeVersion

std::uint32_t ROOT::RFieldBase::kInvalidTypeVersion
staticconstexpr

Definition at line 153 of file RFieldBase.hxx.

◆ kPrefixInherited

const char* ROOT::RClassField::kPrefixInherited
staticconstexprprivate

Prefix used in the subfield names generated for base classes.

Definition at line 153 of file RField.hxx.

  • tree/ntuple/inc/ROOT/RField/RFieldFundamental.hxx
  • tree/ntuple/src/RField.cxx