Template specializations for concrete C++ fundamental types. 
Definition at line 45 of file RFieldFundamental.hxx.
 | 
|   | RField ()=delete | 
|   | 
|   | RField (const RField &)=delete | 
|   | 
| RField &  | operator= (const RField &)=delete | 
|   | 
|   | RFieldBase (const RFieldBase &)=delete | 
|   | 
|   | RFieldBase (RFieldBase &&)=default | 
|   | 
|   | RFieldBase (std::string_view name, std::string_view type, ROOT::ENTupleStructure structure, bool isSimple, std::size_t nRepetitions=0) | 
|   | The constructor creates the underlying column objects and connects them to either a sink or a source.  
  | 
|   | 
| virtual  | ~RFieldBase ()=default | 
|   | 
| virtual void  | AcceptVisitor (ROOT::Detail::RFieldVisitor &visitor) const | 
|   | 
| 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 | 
|   | 
| virtual size_t  | GetAlignment () const =0 | 
|   | 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.  
  | 
|   | 
| virtual size_t  | GetValueSize () const =0 | 
|   | 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 | 
|   | 
| RFieldBase &  | operator= (const RFieldBase &)=delete | 
|   | 
| RFieldBase &  | operator= (RFieldBase &&)=default | 
|   | 
| void  | SetColumnRepresentatives (const RColumnRepresentations::Selection_t &representatives) | 
|   | Fixes a column representative.  
  | 
|   | 
| void  | SetDescription (std::string_view description) | 
|   | 
| void  | SetOnDiskId (ROOT::DescriptorId_t id) | 
|   | 
| virtual std::vector< RValue >  | SplitValue (const RValue &value) const | 
|   | Creates the list of direct child values given an existing value for this field.  
  | 
|   | 
 | 
| enum   | {  
  kTraitTriviallyConstructible = 0x01
, kTraitTriviallyDestructible = 0x02
, kTraitMappable = 0x04
, kTraitTypeChecksum = 0x08
,  
  kTraitInvalidField = 0x10
, kTraitEmulatedField = 0x20
, 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> | 
|   | 
| static constexpr std::uint32_t  | kInvalidTypeVersion = -1U | 
|   | 
| enum   | {  
  kDiffFieldVersion = 0x01
, kDiffTypeVersion = 0x02
, kDiffStructure = 0x04
, kDiffTypeName = 0x08
,  
  kDiffNRepetitions = 0x10
 
 } | 
|   | Bits used in CompareOnDisk()  More...
  | 
|   | 
| 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.  
  | 
|   | 
| virtual std::size_t  | AppendImpl (const void *from) | 
|   | Operations on values of complex types, e.g.  
  | 
|   | 
| void  | Attach (std::unique_ptr< RFieldBase > child) | 
|   | 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.  
  | 
|   | 
| virtual std::unique_ptr< RFieldBase >  | CloneImpl (std::string_view newName) const =0 | 
|   | 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.  
  | 
|   | 
| virtual void  | ConstructValue (void *where) const =0 | 
|   | 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 >  | 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.  
  | 
|   | 
| virtual void  | ReadGlobalImpl (ROOT::NTupleSize_t globalIndex, void *to) | 
|   | 
| virtual void  | ReadInClusterImpl (RNTupleLocalIndex localIndex, void *to) | 
|   | 
| virtual void  | ReconcileOnDiskField (const RNTupleDescriptor &desc) | 
|   | For non-artificial fields, check compatibility of the in-memory field and the on-disk field.  
  | 
|   | 
| void  | RemoveReadCallback (size_t idx) | 
|   | 
| 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()  
  | 
|   | 
| static void  | SetTypeAliasOf (RFieldBase &other, const std::string &alias) | 
|   | Allow class fields to adjust the type alias of their members.  
  | 
|   | 
| 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.  
  | 
|   |