The field for an unscoped or scoped enum with dictionary.
Definition at line 290 of file RField.hxx.
Public Types | |
| enum | { kTraitTriviallyConstructible = 0x01 , kTraitTriviallyDestructible = 0x02 , kTraitMappable = 0x04 , kTraitTypeChecksum = 0x08 , kTraitInvalidField = 0x10 , kTraitEmulatedField = 0x20 , kTraitExtensible = 0x40 , kTraitSoACollection = 0x80 , kTraitTrivialType = kTraitTriviallyConstructible | kTraitTriviallyDestructible } |
| using | ColumnRepresentation_t = std::vector<ROOT::ENTupleColumnType> |
| enum class | EState { kUnconnected , kConnectedToSink , kConnectedToSource } |
| During its lifetime, a field undergoes the following possible state transitions: More... | |
| using | RConstSchemaIterator = RSchemaIteratorTemplate<true> |
| using | RSchemaIterator = RSchemaIteratorTemplate<false> |
Public Member Functions | |
| REnumField (REnumField &&other)=default | |
| REnumField (std::string_view fieldName, std::string_view enumName) | |
| ~REnumField () override=default | |
| 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< 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. | |
| RBulkValues | CreateBulk () |
| Creates a new, initially empty bulk. | |
| template<> | |
| std::unique_ptr< void, typename RFieldBase::RCreateObjectDeleter< void >::deleter > | CreateObject () const |
| template<typename T> | |
| std::unique_ptr< T, typename RCreateObjectDeleter< T >::deleter > | CreateObject () const |
| Generates an object of the field type and allocates new initialized memory according to the type. | |
| template<> | |
| 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 |
| size_t | GetAlignment () const final |
| As a rule of thumb, the alignment is equal to the size of the type. | |
| 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 RFieldBase * | GetParent () const |
| 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 |
| virtual std::uint32_t | GetTypeChecksum () const |
| Return the current TClass reported checksum of this class. Only valid if kTraitTypeChecksum is set. | |
| const std::string & | GetTypeName () const |
| virtual std::uint32_t | GetTypeVersion () const |
| Indicates an evolution of the C++ type itself. | |
| size_t | GetValueSize () const final |
| The number of bytes taken by a value of the appropriate type. | |
| bool | HasDefaultColumnRepresentative () const |
| Whether or not an explicit column representative was set. | |
| bool | HasReadCallbacks () const |
| bool | IsArtificial () const |
| bool | IsSimple () const |
| REnumField & | operator= (REnumField &&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< RValue > | SplitValue (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< RCheckResult > | Check (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 Public Attributes | |
| static constexpr std::uint32_t | kInvalidTypeVersion = -1U |
Protected Types | |
| enum | { kDiffFieldVersion = 0x01 , kDiffTypeVersion = 0x02 , kDiffStructure = 0x04 , kDiffTypeName = 0x08 , kDiffNRepetitions = 0x10 } |
| 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. | |
| virtual std::unique_ptr< RFieldBase > | BeforeConnectPageSource (ROOT::Internal::RPageSource &) |
| Called by ConnectPageSource() before connecting; derived classes may override this as appropriate, e.g. | |
| std::unique_ptr< RFieldBase > | CloneImpl (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_t & | EnsureCompatibleColumnTypes (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. | |
| template<typename... ColumnCppTs> | |
| void | GenerateColumnsImpl () |
| For writing, use the currently set column representative. | |
| template<std::uint32_t ColumnIndexT, typename HeadT, typename... TailTs> | |
| void | GenerateColumnsImpl (const ColumnRepresentation_t &representation, std::uint16_t representationIndex) |
| Helpers for generating columns. | |
| template<typename... ColumnCppTs> | |
| void | GenerateColumnsImpl (const ROOT::RNTupleDescriptor &desc) |
| For reading, use the on-disk column list. | |
| virtual const RColumnRepresentations & | GetColumnRepresentations () const |
| Implementations in derived classes should return a static RColumnRepresentations object. | |
| virtual std::unique_ptr< RDeleter > | GetDeleter () const |
| 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< RDeleter > | GetDeleterOf (const RFieldBase &other) |
| static ROOT::Internal::RColumn * | GetPrincipalColumnOf (const RFieldBase &other) |
| Fields may need direct access to the principal column of their subfields, e.g. in RRVecField::ReadBulk(). | |
Protected Attributes | |
| ROOT::Internal::RColumn * | fAuxiliaryColumn = nullptr |
| 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 = 0 |
| TClass checksum cached from the descriptor after a call to ConnectPageSource(). | |
| std::uint32_t | fOnDiskTypeVersion = kInvalidTypeVersion |
| C++ type version cached from the descriptor after a call to ConnectPageSource(). | |
| RFieldBase * | fParent |
| Subfields point to their mother field. | |
| ROOT::Internal::RColumn * | fPrincipalColumn = nullptr |
| All fields that have columns have a distinct main column. | |
| 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 subfields. | |
| std::uint32_t | fTraits = 0 |
| 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 | |
| using | ReadCallback_t = std::function<void(void *)> |
Private Member Functions | |
| REnumField (std::string_view fieldName, std::string_view enumName, std::unique_ptr< RFieldBase > intField) | |
| REnumField (std::string_view fieldName, TEnum *enump) | |
| 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 and vice versa. | |
| void | FlushColumns () |
| Flushes data from active columns. | |
| void | InvokeReadCallbacks (void *target) |
| void | SetArtificial () |
Private Attributes | |
| std::string | fDescription |
| Free text set by the user. | |
| bool | fIsArtificial = false |
| 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 = ROOT::kInvalidDescriptorId |
| When the columns are connected to a page source or page sink, the field represents a field id in the corresponding RNTuple descriptor. | |
| EState | fState = EState::kUnconnected |
| Changed by ConnectTo[Sink,Source], reset by Clone(). | |
| ROOT::ENTupleStructure | fStructure |
| The role of this field in the data model structure. | |
| std::string | fType |
| The C++ type captured by this field. | |
#include <ROOT/RField.hxx>
|
inherited |
Definition at line 165 of file RFieldBase.hxx.
|
inherited |
Definition at line 561 of file RFieldBase.hxx.
|
privateinherited |
Definition at line 102 of file RFieldBase.hxx.
|
inherited |
Definition at line 560 of file RFieldBase.hxx.
|
inherited |
Definition at line 140 of file RFieldBase.hxx.
|
protectedinherited |
Bits used in CompareOnDisk().
Definition at line 286 of file RFieldBase.hxx.
|
stronginherited |
During its lifetime, a field undergoes the following possible state transitions:
[*] --> Unconnected --> ConnectedToSink -— | | | | --> ConnectedToSource ---> [*]
| Enumerator | |
|---|---|
| kUnconnected | |
| kConnectedToSink | |
| kConnectedToSource | |
Definition at line 174 of file RFieldBase.hxx.
|
private |
Definition at line 897 of file RFieldMeta.cxx.
|
private |
Definition at line 924 of file RFieldMeta.cxx.
| ROOT::REnumField::REnumField | ( | std::string_view | fieldName, |
| std::string_view | enumName ) |
Definition at line 892 of file RFieldMeta.cxx.
|
default |
|
overridedefault |
|
finalvirtual |
Reimplemented from ROOT::RFieldBase.
Definition at line 951 of file RFieldMeta.cxx.
|
protectedinherited |
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 881 of file RFieldBase.cxx.
|
protectedinherited |
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 745 of file RFieldBase.cxx.
|
inlinefinalprotectedvirtual |
Operations on values of complex types, e.g.
ones that involve multiple columns or for which no direct column type exists.
Reimplemented from ROOT::RFieldBase.
Definition at line 300 of file RField.hxx.
|
protectedinherited |
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 652 of file RFieldBase.cxx.
|
protectedinherited |
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 894 of file RFieldBase.cxx.
|
inlineprotectedvirtualinherited |
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.
Reimplemented in ROOT::RClassField, ROOT::RRVecField, ROOT::RStreamerField, and ROOT::RVectorField.
Definition at line 524 of file RFieldBase.hxx.
|
inherited |
Definition at line 781 of file RFieldBase.cxx.
|
inherited |
Definition at line 791 of file RFieldBase.cxx.
|
inherited |
Creates a value from a memory location with an already constructed object.
Definition at line 759 of file RFieldBase.cxx.
|
inlinestaticprotectedinherited |
Allow derived classes to call Append() and Read() on other (sub)fields.
Definition at line 489 of file RFieldBase.hxx.
|
inlinestaticprotectedinherited |
Allow derived classes to call ConstructValue(void *) and GetDeleter() on other (sub)fields.
Definition at line 426 of file RFieldBase.hxx.
|
inlinestaticprotectedinherited |
Definition at line 492 of file RFieldBase.hxx.
|
inlinestaticprotectedinherited |
Definition at line 490 of file RFieldBase.hxx.
|
inlinestaticprotectedinherited |
Definition at line 491 of file RFieldBase.hxx.
|
inlinestaticprotectedinherited |
Allow parents to mark their childs as artificial fields (used in class and record fields).
Definition at line 430 of file RFieldBase.hxx.
|
inherited |
Definition at line 801 of file RFieldBase.cxx.
|
inherited |
Definition at line 806 of file RFieldBase.cxx.
|
staticinherited |
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 263 of file RFieldBase.cxx.
|
inherited |
Copies the field and its subfields using a possibly new name and a new, unconnected set of columns.
Definition at line 586 of file RFieldBase.cxx.
|
finalprotectedvirtual |
Called by Clone(), which additionally copies the on-disk ID.
Implements ROOT::RFieldBase.
Definition at line 932 of file RFieldMeta.cxx.
|
privateinherited |
Flushes data from active columns to disk and calls CommitClusterImpl().
Definition at line 714 of file RFieldBase.cxx.
|
inlineprotectedvirtualinherited |
Reimplemented in ROOT::Experimental::RSoAField, ROOT::RNullableField, ROOT::RProxiedCollectionField, ROOT::RRVecField, ROOT::RStreamerField, ROOT::RVariantField, and ROOT::RVectorField.
Definition at line 504 of file RFieldBase.hxx.
|
protectedinherited |
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 1092 of file RFieldBase.cxx.
|
privateinherited |
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.
| firstEntry | The global index of the first entry with on-disk data for the connected field |
Definition at line 920 of file RFieldBase.cxx.
|
privateinherited |
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 946 of file RFieldBase.cxx.
|
inlinefinalprotectedvirtual |
Constructs value in a given location of size at least GetValueSize(). Called by the base class' CreateValue().
Implements ROOT::RFieldBase.
Definition at line 298 of file RField.hxx.
|
staticinherited |
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 256 of file RFieldBase.cxx.
|
staticprotectedinherited |
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 285 of file RFieldBase.cxx.
|
inherited |
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 754 of file RFieldBase.cxx.
|
inherited |
|
inherited |
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:
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 567 of file RField.hxx.
|
inherited |
Definition at line 215 of file RFieldBase.cxx.
|
protectedinherited |
Factory method for the field's type. The caller owns the returned pointer.
Definition at line 633 of file RFieldBase.cxx.
|
inherited |
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 641 of file RFieldBase.cxx.
|
inherited |
Definition at line 786 of file RFieldBase.cxx.
|
inherited |
Definition at line 796 of file RFieldBase.cxx.
|
protectedinherited |
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 845 of file RFieldBase.cxx.
|
protectedinherited |
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 1072 of file RFieldBase.cxx.
|
protectedinherited |
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 1044 of file RFieldBase.cxx.
|
protectedinherited |
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 1080 of file RFieldBase.cxx.
|
privateinherited |
Translate an entry index to a column element index of the principal column and vice versa.
These functions take into account the role and number of repetitions on each level of the field hierarchy as follows:
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 returns 8 for the innermost field.
Definition at line 668 of file RFieldBase.cxx.
|
privateinherited |
Flushes data from active columns.
Definition at line 702 of file RFieldBase.cxx.
|
inlineprotectedvirtualinherited |
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.
Reimplemented in ROOT::Experimental::Internal::RAuxiliaryProcessorField, ROOT::Experimental::RSoAField, ROOT::Internal::RDF::RArraySizeField, ROOT::Internal::RDF::RRDFCardinalityFieldBase, ROOT::RArrayAsRVecField, ROOT::RArrayAsVectorField, ROOT::RBitsetField, ROOT::RCardinalityField, ROOT::RNullableField, ROOT::RProxiedCollectionField, ROOT::RRealField< T >, ROOT::RRealField< double >, ROOT::RRealField< float >, ROOT::RRVecField, ROOT::RSimpleField< T >, ROOT::RSimpleField< bool >, ROOT::RSimpleField< char >, ROOT::RSimpleField< double >, ROOT::RSimpleField< float >, ROOT::RStreamerField, ROOT::RVariantField, and ROOT::RVectorField.
Definition at line 401 of file RFieldBase.hxx.
|
inlineprotectedvirtualinherited |
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.
Reimplemented in ROOT::Experimental::Internal::RAuxiliaryProcessorField, ROOT::Experimental::RSoAField, ROOT::Internal::RDF::RArraySizeField, ROOT::Internal::RDF::RRDFCardinalityFieldBase, ROOT::RArrayAsRVecField, ROOT::RArrayAsVectorField, ROOT::RBitsetField, ROOT::RCardinalityField, ROOT::RNullableField, ROOT::RProxiedCollectionField, ROOT::RRealField< T >, ROOT::RRVecField, ROOT::RSimpleField< T >, ROOT::RStreamerField, ROOT::RVariantField, and ROOT::RVectorField.
Definition at line 405 of file RFieldBase.hxx.
|
inlineprotectedinherited |
For writing, use the currently set column representative.
Definition at line 361 of file RFieldBase.hxx.
|
inlineprotectedinherited |
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 339 of file RFieldBase.hxx.
|
inlineprotectedinherited |
For reading, use the on-disk column list.
Definition at line 377 of file RFieldBase.hxx.
|
inlinefinalvirtual |
As a rule of thumb, the alignment is equal to the size of the type.
There are, however, various exceptions to this rule depending on OS and CPU architecture. So enforce the alignment to be explicitly spelled out.
Implements ROOT::RFieldBase.
Definition at line 314 of file RField.hxx.
|
protectedvirtualinherited |
Implementations in derived classes should return a static RColumnRepresentations object.
The default implementation does not attach any columns to the field.
Reimplemented in ROOT::Experimental::RSoAField, ROOT::Internal::RDF::RRDFCardinalityFieldBase, ROOT::RBitsetField, ROOT::RCardinalityField, ROOT::RField< bool >, ROOT::RField< char >, ROOT::RField< double >, ROOT::RField< float >, ROOT::RNullableField, ROOT::RProxiedCollectionField, ROOT::RRVecField, ROOT::RStreamerField, ROOT::RVariantField, and ROOT::RVectorField.
Definition at line 580 of file RFieldBase.cxx.
|
inherited |
Returns the fColumnRepresentative pointee or, if unset (always the case for artificial fields), the field's default representative.
Definition at line 811 of file RFieldBase.cxx.
|
inherited |
Definition at line 692 of file RFieldBase.cxx.
|
inlineprotectedvirtualinherited |
Reimplemented in ROOT::Experimental::RSoAField, ROOT::RArrayAsRVecField, ROOT::RArrayAsVectorField, ROOT::RArrayField, ROOT::RAtomicField, ROOT::RClassField, ROOT::RField< TObject >, ROOT::ROptionalField, ROOT::RProxiedCollectionField, ROOT::RRecordField, ROOT::RRVecField, ROOT::RStreamerField, ROOT::RUniquePtrField, ROOT::RVariantField, and ROOT::RVectorField.
Definition at line 424 of file RFieldBase.hxx.
|
inlinestaticprotectedinherited |
Definition at line 427 of file RFieldBase.hxx.
|
inlineinherited |
Get the field's description.
Definition at line 647 of file RFieldBase.hxx.
|
inlineprotectedvirtualinherited |
Reimplemented in ROOT::RStreamerField.
Definition at line 512 of file RFieldBase.hxx.
|
inlineinherited |
Definition at line 634 of file RFieldBase.hxx.
|
inlinevirtualinherited |
Indicates an evolution of the mapping scheme from C++ type to columns.
Definition at line 665 of file RFieldBase.hxx.
|
inherited |
Definition at line 682 of file RFieldBase.cxx.
|
inlineinherited |
Definition at line 640 of file RFieldBase.hxx.
|
inlineinherited |
Definition at line 651 of file RFieldBase.hxx.
|
inlineinherited |
Return checksum stored in the field descriptor; only valid after a call to ConnectPageSource(), if the field stored a type checksum.
Definition at line 674 of file RFieldBase.hxx.
|
inlineinherited |
Return the C++ type version stored in the field descriptor; only valid after a call to ConnectPageSource().
Definition at line 671 of file RFieldBase.hxx.
|
inlineinherited |
Definition at line 641 of file RFieldBase.hxx.
|
inlinestaticprotectedinherited |
Fields may need direct access to the principal column of their subfields, e.g. in RRVecField::ReadBulk().
Definition at line 495 of file RFieldBase.hxx.
|
inherited |
Returns the field name and parent field names separated by dots (grandparent.parent.child).
Definition at line 244 of file RFieldBase.cxx.
|
inlineinherited |
Definition at line 649 of file RFieldBase.hxx.
|
inlineinherited |
Definition at line 639 of file RFieldBase.hxx.
|
inlineinherited |
Definition at line 631 of file RFieldBase.hxx.
|
inlineinherited |
Definition at line 638 of file RFieldBase.hxx.
|
inlinevirtualinherited |
Return the current TClass reported checksum of this class. Only valid if kTraitTypeChecksum is set.
Reimplemented in ROOT::Experimental::RSoAField, ROOT::RClassField, ROOT::RField< TObject >, and ROOT::RStreamerField.
Definition at line 669 of file RFieldBase.hxx.
|
inlineinherited |
Definition at line 637 of file RFieldBase.hxx.
|
inlinevirtualinherited |
Indicates an evolution of the C++ type itself.
Reimplemented in ROOT::Experimental::RSoAField, ROOT::RClassField, ROOT::RField< TObject >, and ROOT::RStreamerField.
Definition at line 667 of file RFieldBase.hxx.
|
inlinefinalvirtual |
The number of bytes taken by a value of the appropriate type.
Implements ROOT::RFieldBase.
Definition at line 313 of file RField.hxx.
|
inlineinherited |
Whether or not an explicit column representative was set.
Definition at line 662 of file RFieldBase.hxx.
|
inlineprotectedvirtualinherited |
Reimplemented in ROOT::RStreamerField.
Definition at line 508 of file RFieldBase.hxx.
|
inlineinherited |
Definition at line 632 of file RFieldBase.hxx.
|
inlineprivateinherited |
Definition at line 243 of file RFieldBase.hxx.
|
inlineinherited |
Definition at line 645 of file RFieldBase.hxx.
|
inlineinherited |
Definition at line 644 of file RFieldBase.hxx.
|
default |
|
inlineprotectedinherited |
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 463 of file RFieldBase.hxx.
|
inlineprotectedinherited |
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 445 of file RFieldBase.hxx.
|
protectedinherited |
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 764 of file RFieldBase.cxx.
|
protectedvirtualinherited |
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.
Reimplemented in ROOT::RArrayField, ROOT::RField< RNTupleCardinality< SizeT > >, and ROOT::RRVecField.
Definition at line 613 of file RFieldBase.cxx.
|
inlinefinalprotectedvirtual |
Reimplemented from ROOT::RFieldBase.
Definition at line 301 of file RField.hxx.
|
inlinefinalprotectedvirtual |
Reimplemented from ROOT::RFieldBase.
Definition at line 302 of file RField.hxx.
|
finalprotectedvirtual |
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.
Reimplemented from ROOT::RFieldBase.
Definition at line 938 of file RFieldMeta.cxx.
|
protectedinherited |
Definition at line 888 of file RFieldBase.cxx.
|
inlineprivateinherited |
Definition at line 273 of file RFieldBase.hxx.
|
inherited |
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 825 of file RFieldBase.cxx.
|
inherited |
Definition at line 729 of file RFieldBase.cxx.
|
inherited |
Definition at line 736 of file RFieldBase.cxx.
|
finalvirtual |
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.
Reimplemented from ROOT::RFieldBase.
Definition at line 944 of file RFieldMeta.cxx.
|
protectedinherited |
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 312 of file RFieldBase.hxx.
|
protectedinherited |
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 315 of file RFieldBase.hxx.
|
protectedinherited |
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 330 of file RFieldBase.hxx.
|
privateinherited |
Free text set by the user.
Definition at line 239 of file RFieldBase.hxx.
|
privateinherited |
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 233 of file RFieldBase.hxx.
|
privateinherited |
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 229 of file RFieldBase.hxx.
|
privateinherited |
The field name relative to its parent field.
Definition at line 220 of file RFieldBase.hxx.
|
privateinherited |
For fixed sized arrays, the array length.
Definition at line 226 of file RFieldBase.hxx.
|
privateinherited |
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 237 of file RFieldBase.hxx.
|
protectedinherited |
TClass checksum cached from the descriptor after a call to ConnectPageSource().
Only set for classes with dictionaries.
Definition at line 326 of file RFieldBase.hxx.
|
protectedinherited |
C++ type version cached from the descriptor after a call to ConnectPageSource().
Definition at line 323 of file RFieldBase.hxx.
|
protectedinherited |
Subfields point to their mother field.
Definition at line 302 of file RFieldBase.hxx.
|
protectedinherited |
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 309 of file RFieldBase.hxx.
|
protectedinherited |
List of functions to be called after reading a value.
Definition at line 321 of file RFieldBase.hxx.
|
privateinherited |
Changed by ConnectTo[Sink,Source], reset by Clone().
Definition at line 241 of file RFieldBase.hxx.
|
privateinherited |
The role of this field in the data model structure.
Definition at line 224 of file RFieldBase.hxx.
|
protectedinherited |
Collections and classes own subfields.
Definition at line 300 of file RFieldBase.hxx.
|
protectedinherited |
Properties of the type that allow for optimizations of collections of that type.
Definition at line 317 of file RFieldBase.hxx.
|
privateinherited |
The C++ type captured by this field.
Definition at line 222 of file RFieldBase.hxx.
|
protectedinherited |
A typedef or using name that was used when creating the field.
Definition at line 319 of file RFieldBase.hxx.
|
staticconstexprinherited |
Definition at line 139 of file RFieldBase.hxx.