Template specializations for C++ std::[unordered_][multi]set.
The generic field for a std::set<Type> and std::unordered_set<Type>
Definition at line 363 of file RFieldProxiedCollection.hxx.
Public Member Functions | |
RSetField (RSetField &&other)=default | |
RSetField (std::string_view fieldName, std::string_view typeName, std::unique_ptr< RFieldBase > itemField) | |
~RSetField () override=default | |
RSetField & | operator= (RSetField &&other)=default |
![]() | |
RProxiedCollectionField (RProxiedCollectionField &&other)=default | |
RProxiedCollectionField (std::string_view fieldName, std::string_view typeName) | |
~RProxiedCollectionField () override=default | |
void | AcceptVisitor (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. | |
void | GetCollectionInfo (NTupleSize_t globalIndex, RNTupleLocalIndex *collectionStart, NTupleSize_t *size) const |
void | GetCollectionInfo (RNTupleLocalIndex localIndex, RNTupleLocalIndex *collectionStart, NTupleSize_t *size) const |
size_t | GetValueSize () const final |
The number of bytes taken by a value of the appropriate type. | |
RProxiedCollectionField & | operator= (RProxiedCollectionField &&other)=default |
std::vector< RValue > | SplitValue (const RValue &value) const final |
Creates the list of direct child values given a value for this field. | |
![]() | |
RFieldBase (const RFieldBase &)=delete | |
RFieldBase (RFieldBase &&)=default | |
RFieldBase (std::string_view name, std::string_view type, ENTupleStructure structure, bool isSimple, std::size_t nRepetitions=0) | |
The constructor creates the underlying column objects and connects them to either a sink or a source. | |
virtual | ~RFieldBase ()=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 sub fields using a possibly new name and a new, unconnected set of columns. | |
RBulk | CreateBulk () |
The returned bulk is initially empty; RBulk::ReadBulk will construct the array of values. | |
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::Experimental::RFieldBase::RCreateObjectDeleter< void >::deleter > | CreateObject () const |
RValue | CreateValue () |
Generates an object of the field type and wraps the created object in a shared pointer and returns it 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. | |
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::size_t | GetNRepetitions () const |
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 |
ENTupleStructure | GetStructure () const |
std::vector< RFieldBase * > | GetSubFields () |
std::vector< const RFieldBase * > | GetSubFields () 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 (DescriptorId_t id) |
Additional Inherited Members | |
![]() | |
enum | { kTraitTriviallyConstructible = 0x01 , kTraitTriviallyDestructible = 0x02 , kTraitMappable = 0x04 , kTraitTypeChecksum = 0x08 , kTraitInvalidField = 0x10 , kTraitEmulatedField = 0x20 , kTraitTrivialType = kTraitTriviallyConstructible | kTraitTriviallyDestructible } |
using | ColumnRepresentation_t = std::vector<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 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 resurrect a field from the stored on-disk type information. | |
![]() | |
static constexpr std::uint32_t | kInvalidTypeVersion = -1U |
![]() | |
RProxiedCollectionField (std::string_view fieldName, std::string_view typeName, std::unique_ptr< RFieldBase > itemField) | |
Constructor used when the value type of the collection is known in advance, e.g. in RSetField . | |
RProxiedCollectionField (std::string_view fieldName, std::string_view typeName, TClass *classp) | |
Constructor used when the value type of the collection is not known in advance, i.e. | |
std::size_t | AppendImpl (const void *from) final |
Operations on values of complex types, e.g. | |
std::unique_ptr< RFieldBase > | CloneImpl (std::string_view newName) const final |
Called by Clone(), which additionally copies the on-disk ID. | |
void | CommitClusterImpl () final |
void | ConstructValue (void *where) const final |
Constructs value in a given location of size at least GetValueSize(). Called by the base class' CreateValue(). | |
void | GenerateColumns () final |
Implementations in derived classes should create the backing columns corresponsing to the field type for writing. | |
void | GenerateColumns (const RNTupleDescriptor &desc) final |
Implementations in derived classes should create the backing columns corresponsing to the field type for reading. | |
const RColumnRepresentations & | GetColumnRepresentations () const final |
Implementations in derived classes should return a static RColumnRepresentations object. | |
std::unique_ptr< RDeleter > | GetDeleter () const final |
void | ReadGlobalImpl (NTupleSize_t globalIndex, void *to) final |
![]() | |
size_t | AddReadCallback (ReadCallback_t func) |
Set a user-defined function to be called after reading a value, giving a chance to inspect and/or modify the value object. | |
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 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 void | BeforeConnectPageSource (Internal::RPageSource &) |
Called by ConnectPageSource() before connecting; derived classes may override this as appropriate. | |
void * | CreateObjectRawPtr () const |
Factory method for the field's type. The caller owns the returned pointer. | |
const ColumnRepresentation_t & | EnsureCompatibleColumnTypes (const 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. | |
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 RNTupleDescriptor &desc) |
For reading, use the on-disk column list. | |
virtual RExtraTypeInfoDescriptor | GetExtraTypeInfo () const |
virtual bool | HasExtraTypeInfo () const |
virtual void | OnConnectPageSource () |
Called by ConnectPageSource() once connected; derived classes may override this as appropriate. | |
void | Read (NTupleSize_t globalIndex, void *to) |
Populate a single value with data from the field. | |
void | Read (RNTupleLocalIndex localIndex, 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 | ReadInClusterImpl (RNTupleLocalIndex localIndex, void *to) |
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, NTupleSize_t globalIndex, void *to) |
static void | CallReadOn (RFieldBase &other, RNTupleLocalIndex localIndex, void *to) |
static RResult< std::unique_ptr< RFieldBase > > | Create (const std::string &fieldName, const std::string &canonicalType, const std::string &typeAlias, const RCreateFieldOptions &options={}, const RNTupleDescriptor *desc=nullptr, DescriptorId_t fieldId=kInvalidDescriptorId) |
Factory method to resurrect a field from the stored on-disk type information. | |
static RResult< std::unique_ptr< RFieldBase > > | Create (const std::string &fieldName, const std::string &typeName, const RCreateFieldOptions &options, const RNTupleDescriptor *desc, DescriptorId_t fieldId) |
Same as the above overload of Create, but infers the normalized type name and the canonical type name from typeName . | |
static std::unique_ptr< RDeleter > | GetDeleterOf (const RFieldBase &other) |
static Internal::RColumn * | GetPrincipalColumnOf (const RFieldBase &other) |
Fields may need direct access to the principal column of their sub fields, e.g. in RRVecField::ReadBulk. | |
![]() | |
Int_t | fCollectionType |
RCollectionIterableOnce::RIteratorFuncs | fIFuncsRead |
Two sets of functions to operate on iterators, to be used depending on the access type. | |
RCollectionIterableOnce::RIteratorFuncs | fIFuncsWrite |
std::size_t | fItemSize |
Internal::RColumnIndex | fNWritten |
Int_t | fProperties |
std::shared_ptr< TVirtualCollectionProxy > | fProxy |
The collection proxy is needed by the deleters and thus defined as a shared pointer. | |
![]() | |
Internal::RColumn * | fAuxiliaryColumn = nullptr |
Some fields have a second column in its column representation. | |
std::vector< std::unique_ptr< 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 GetColumnRepresentations().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 |
Sub fields point to their mother field. | |
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 sub fields. | |
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/RFieldProxiedCollection.hxx>
ROOT::Experimental::RSetField::RSetField | ( | std::string_view | fieldName, |
std::string_view | typeName, | ||
std::unique_ptr< RFieldBase > | itemField ) |
Definition at line 616 of file RFieldMeta.cxx.
|
default |
|
overridedefault |