Template specializations for C++ std::tuple.
The generic field for std::tuple<Ts...> types
Definition at line 190 of file RFieldRecord.hxx.
Public Member Functions | |
| RTupleField (RTupleField &&other)=default | |
| RTupleField (std::string_view fieldName, std::vector< std::unique_ptr< RFieldBase > > itemFields) | |
| ~RTupleField () override=default | |
| RTupleField & | operator= (RTupleField &&other)=default |
Public Member Functions inherited from ROOT::RRecordField | |
| RRecordField (RRecordField &&other)=default | |
| RRecordField (std::string_view fieldName, std::vector< std::unique_ptr< RFieldBase > > itemFields) | |
| Construct a RRecordField based on a vector of child fields. | |
| ~RRecordField () override=default | |
| void | AcceptVisitor (ROOT::Detail::RFieldVisitor &visitor) const final |
| size_t | GetAlignment () const final |
| As a rule of thumb, the alignment is equal to the size of the type. | |
| const std::vector< std::size_t > & | GetOffsets () const |
| size_t | GetValueSize () const final |
| The number of bytes taken by a value of the appropriate type. | |
| RRecordField & | operator= (RRecordField &&other)=default |
| std::vector< RValue > | SplitValue (const RValue &value) const final |
| Creates the list of direct child values given an existing value for this field. | |
Public Member Functions inherited from ROOT::RFieldBase | |
| 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 |
| 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 |
| 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. | |
| 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) |
Protected Member Functions | |
| RTupleField (std::string_view fieldName, std::vector< std::unique_ptr< RFieldBase > > itemFields, const std::vector< std::size_t > &offsets) | |
| std::unique_ptr< RFieldBase > | CloneImpl (std::string_view newName) const final |
| Called by Clone(), which additionally copies the on-disk ID. | |
| void | ReconcileOnDiskField (const RNTupleDescriptor &desc) final |
| For non-artificial fields, check compatibility of the in-memory field and the on-disk field. | |
Protected Member Functions inherited from ROOT::RRecordField | |
| RRecordField (std::string_view fieldName, std::string_view typeName) | |
| Used by RPairField and RTupleField descendants. | |
| std::size_t | AppendImpl (const void *from) final |
| Operations on values of complex types, e.g. | |
| template<std::size_t N> | |
| void | AttachItemFields (std::array< std::unique_ptr< RFieldBase >, N > itemFields) |
| void | AttachItemFields (std::vector< std::unique_ptr< RFieldBase > > itemFields) |
| void | ConstructValue (void *where) const final |
| Constructs value in a given location of size at least GetValueSize(). Called by the base class' CreateValue(). | |
| std::unique_ptr< RDeleter > | GetDeleter () const final |
| std::size_t | GetItemPadding (std::size_t baseOffset, std::size_t itemAlignment) const |
| void | ReadGlobalImpl (ROOT::NTupleSize_t globalIndex, void *to) final |
| void | ReadInClusterImpl (RNTupleLocalIndex localIndex, void *to) final |
Protected Member Functions inherited from ROOT::RFieldBase | |
| 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. | |
| 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 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 * | 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 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 | RemoveReadCallback (size_t idx) |
Static Private Member Functions | |
| static std::string | GetTypeList (const std::vector< std::unique_ptr< RFieldBase > > &itemFields) |
Additional Inherited Members | |
Public Types inherited from ROOT::RFieldBase | |
| 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 Public Member Functions inherited from ROOT::RFieldBase | |
| 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 inherited from ROOT::RFieldBase | |
| static constexpr std::uint32_t | kInvalidTypeVersion = -1U |
Protected Types inherited from ROOT::RFieldBase | |
| enum | { kDiffFieldVersion = 0x01 , kDiffTypeVersion = 0x02 , kDiffStructure = 0x04 , kDiffTypeName = 0x08 , kDiffNRepetitions = 0x10 } |
| Bits used in CompareOnDisk() More... | |
Static Protected Member Functions inherited from ROOT::RFieldBase | |
| 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. | |
Protected Attributes inherited from ROOT::RRecordField | |
| std::size_t | fMaxAlignment = 1 |
| std::vector< std::size_t > | fOffsets |
| std::size_t | fSize = 0 |
Protected Attributes inherited from ROOT::RFieldBase | |
| 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. | |
#include <ROOT/RField/RFieldRecord.hxx>
|
protected |
Definition at line 1259 of file RFieldMeta.cxx.
| ROOT::RTupleField::RTupleField | ( | std::string_view | fieldName, |
| std::vector< std::unique_ptr< RFieldBase > > | itemFields ) |
Definition at line 1267 of file RFieldMeta.cxx.
|
default |
|
overridedefault |
|
finalprotectedvirtual |
Called by Clone(), which additionally copies the on-disk ID.
Reimplemented from ROOT::RRecordField.
Definition at line 1291 of file RFieldMeta.cxx.
|
staticprivate |
|
default |
|
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::RRecordField.
Definition at line 1301 of file RFieldMeta.cxx.