Logo ROOT  
Reference Guide
Loading...
Searching...
No Matches
TEmulatedCollectionProxy Class Reference

Streamer around an arbitrary STL like container, which implements basic container functionality.

Note:

Although this class contains all the setup necessary to deal with maps, the map-like functionality is NOT supported. For optimization reasons this functionality is put into the class TEmulatedMapProxy.

Definition at line 20 of file TEmulatedCollectionProxy.h.

Classes

struct  AlignedStorage
 Storage type whose alignment matches Align bytes. More...

Public Types

enum  { kBIT_ISSTRING = 0x20000000 , kBIT_ISTSTRING = 0x40000000 }
using Cont1024_t = std::vector<AlignedStorage<1024>>
using Cont128_t = std::vector<AlignedStorage< 128>>
using Cont16_t = std::vector<AlignedStorage< 16>>
using Cont1_t = std::vector<AlignedStorage< 1>>
using Cont2048_t = std::vector<AlignedStorage<2048>>
using Cont256_t = std::vector<AlignedStorage< 256>>
using Cont2_t = std::vector<AlignedStorage< 2>>
using Cont32_t = std::vector<AlignedStorage< 32>>
using Cont4096_t = std::vector<AlignedStorage<4096>>
using Cont4_t = std::vector<AlignedStorage< 4>>
using Cont512_t = std::vector<AlignedStorage< 512>>
using Cont64_t = std::vector<AlignedStorage< 64>>
using Cont8_t = std::vector<AlignedStorage< 8>>
using Cont_t = std::vector<char>
typedef void *(* CopyIterator_t) (void *dest, const void *source)
 Copy the iterator source into dest.
typedef void(* CreateIterators_t) (void *collection, void **begin_arena, void **end_arena, TVirtualCollectionProxy *proxy)
 *begin_arena and *end_arena should contain the location of a memory arena of size fgIteratorArenaSize.
typedef void(* DeleteIterator_t) (void *iter)
 If the size of the iterator is greater than fgIteratorArenaSize, call delete on the addresses; otherwise, just call the iterator's destructor.
typedef void(* DeleteTwoIterators_t) (void *begin, void *end)
enum  EProperty { kIsAssociative = (1ULL << (2)) , kIsEmulated = (1ULL << (3)) , kNeedDelete = (1ULL << (4)) , kCustomAlloc = (1ULL << (5)) }
typedef const std::type_info & Info_t
typedef void *(* Next_t) (void *iter, const void *end)
 iter and end should be pointers to an iterator to be incremented and an iterator that points to the end of the collection, respectively.
using PCont_t = Cont_t *

Public Member Functions

 TEmulatedCollectionProxy (const char *cl_name, Bool_t silent)
 TEmulatedCollectionProxy (const TEmulatedCollectionProxy &copy)
 ~TEmulatedCollectionProxy () override
void * Allocate (UInt_t n, Bool_t forceDelete) override
 Allocates space for storing at least n elements.
void * At (UInt_t idx) override
 Return the address of the value at index idx.
void Clear (const char *opt="") override
 Clear the container.
void Commit (void *env) override
 Commits pending elements in a staging area (see Allocate() for more information).
void DeleteArray (void *p, Bool_t dtorOnly=kFALSE) const override
 Execute the container array destructor.
void Destructor (void *p, Bool_t dtorOnly=kFALSE) const override
 Execute the container destructor.
TVirtualCollectionProxyGenerate () const override
 Returns a clean object of the actual class that derives from TVirtualCollectionProxy.
TClassGetCollectionClass () const override
 Return a pointer to the TClass representing the container.
Int_t GetCollectionType () const override
 Return the type of collection see TClassEdit::ESTLType.
TStreamerInfoActions::TActionSequenceGetConversionReadMemberWiseActions (TClass *oldClass, Int_t version) override
 Return the set of action necessary to stream in this collection member-wise coming from the old value class layout refered to by 'version'.
CopyIterator_t GetFunctionCopyIterator (Bool_t read=kTRUE) override
 See typedef void (*CopyIterator_t)(void *&dest, const void *source); Copy the iterator source, into dest.
CreateIterators_t GetFunctionCreateIterators (Bool_t read=kTRUE) override
 See typedef void (*CreateIterators_t)(void *collection, void *&begin_arena, void *&end_arena); begin_arena and end_arena should contain the location of memory arena of size fgIteratorSize.
DeleteIterator_t GetFunctionDeleteIterator (Bool_t read=kTRUE) override
 See typedef void (*DeleteIterator_t)(void *iter); If the sizeof iterator is greater than fgIteratorArenaSize, call delete on the addresses, Otherwise just call the iterator's destructor.
DeleteTwoIterators_t GetFunctionDeleteTwoIterators (Bool_t read=kTRUE) override
 See typedef void (*DeleteTwoIterators_t)(void *begin, void *end); If the sizeof iterator is greater than fgIteratorArenaSize, call delete on the addresses, Otherwise just call the iterator's destructor.
Next_t GetFunctionNext (Bool_t read=kTRUE) override
 See typedef void* (*Next_t)(void *iter, void *end); iter and end should be pointer to respectively an iterator to be incremented and the result of colleciton.end() 'Next' will increment the iterator 'iter' and return 0 if the iterator reached the end.
ULong_t GetIncrement () const override
 Return the offset between two consecutive value_types (memory layout).
virtual TClassGetOnFileClass () const
virtual Int_t GetProperties () const
 Return miscallenous properties of the proxy (see TVirtualCollectionProxy::EProperty).
TStreamerInfoActions::TActionSequenceGetReadMemberWiseActions (Int_t version) override
 Return the set of action necessary to stream in this collection member-wise coming from the old value class layout refered to by 'version'.
EDataType GetType () const override
 If the content is a simple numerical value, return its type (see TDataType).
TClassGetValueClass () const override
 Return a pointer to the TClass representing the content.
TStreamerInfoActions::TActionSequenceGetWriteMemberWiseActions () override
 Return the set of action necessary to stream out this collection member-wise.
Bool_t HasPointers () const override
 Return true if the content is of type 'pointer to'.
void Insert (const void *data, void *container, size_t size) override
 Insert data into the container where data is a C-style array of the actual type contained in the collection of the given size.
Bool_t IsValid () const
void * New () const override
 Construct a new container object and return its address.
void * New (void *memory) const override
 Construct a new container object at the address given by arena.
void * NewArray (Int_t nElements) const override
 Construct an array of nElements container objects and return the base address of the array.
void * NewArray (Int_t nElements, void *memory) const override
 Construct an array of nElements container objects at the address given by arena.
TClass::ObjectPtr NewObject () const override
 Construct a new container object and return its address.
TClass::ObjectPtr NewObject (void *memory) const override
 Construct a new container object at the address given by arena.
TClass::ObjectPtr NewObjectArray (Int_t nElements) const override
 Construct an array of nElements container objects and return the base address of the array.
TClass::ObjectPtr NewObjectArray (Int_t nElements, void *memory) const override
 Construct an array of nElements container objects at the address given by arena.
virtual void operator() (TBuffer &refBuffer, void *pObject)
 TClassStreamer IO overload.
char * operator[] (UInt_t idx) const
 Return the address of the value at index idx.
void PopProxy () override
 Remove the last object.
void PushProxy (void *objstart) override
 Add an object.
void ReadBuffer (TBuffer &buff, void *pObj) override
void ReadBuffer (TBuffer &buff, void *pObj, const TClass *onfile) override
Bool_t Reset () override
 Reset the info gathered from StreamerInfos and value's TClass.
void Resize (UInt_t n, Bool_t force_delete) override
 Resize the container.
virtual void SetOnFileClass (TClass *cl)
UInt_t Size () const override
 Return the current number of elements in the container.
UInt_t Sizeof () const override
 Return the sizeof() of the collection object.
void Streamer (TBuffer &buff, void *pObj, int siz) override
 Streamer I/O overload.
void Streamer (TBuffer &refBuffer) override
 Streamer Function.
template<typename F>
void WithCont (void *obj, F &&fn) const
 Invoke fn(typed_ptr, elemSize) where typed_ptr is the container pointer cast to the correct AlignedStorage<N>* for the value class alignment.

Static Public Attributes

static const Int_t fgIteratorArenaSize = 16
 The size of a small buffer that can be allocated on the stack to store iterator-specific information.

Protected Types

typedef void *(* ArrIterfunc_t) (void *from, size_t size)
typedef void *(* Collectfunc_t) (void *from, void *to)
typedef ROOT::Detail::TCollectionProxyInfo::Environ< char[64]> Env_t
typedef ROOT::Detail::TCollectionProxyInfo::EnvironBase EnvironBase_t
typedef void *(* Feedfunc_t) (void *from, void *to, size_t size)
typedef std::vector< EnvironBase_t * > Proxies_t
typedef void(* Sizing_t) (void *obj, size_t size)
typedef std::vector< TStaging * > Staged_t
 Collection of pre-allocated staged array for associative containers.

Protected Member Functions

void CheckFunctions () const
 Check existence of function pointers.
virtual void DeleteItem (Bool_t force, void *ptr) const
 Call to delete/destruct individual item.
void Expand (UInt_t nCurr, UInt_t left)
TGenCollectionProxyInitialize (Bool_t silent) const
 Proxy initializer.
TGenCollectionProxyInitializeEx (Bool_t silent) override
 Proxy initializer.
void ReadItems (int nElements, TBuffer &b)
void Shrink (UInt_t nCurr, UInt_t left, Bool_t force)
void WriteItems (int nElements, TBuffer &b)

Protected Attributes

TClassRef fClass
Method fClear
 Method cache for container accessors: clear container.
Collectfunc_t fCollect
 Method to collect objects from container.
ArrIterfunc_t fConstruct
 Container accessors: block construct.
std::map< std::string, TObjArray * > * fConversionReadMemberWise
 Array of bundle of TStreamerInfoActions to stream out (read) derived from another class.
Method0 fCreateEnv
 Method to allocate an Environment holder.
Sizing_t fDestruct
 Container accessors: block destruct.
EnvironBase_tfEnv
 Address of the currently proxied object.
Feedfunc_t fFeed
 Container accessors: block feed.
Method fFirst
 Container accessors: generic iteration: first.
CopyIterator_t fFunctionCopyIterator
CreateIterators_t fFunctionCreateIterators
DeleteIterator_t fFunctionDeleteIterator
DeleteTwoIterators_t fFunctionDeleteTwoIterators
Next_t fFunctionNextIterator
ValuefKey
 Descriptor of the key_type.
std::string fName
 Name of the class being proxied.
Method fNext
 Container accessors: generic iteration: next.
TClassfOnFileClass
 On file class.
Bool_t fPointers
 Flag to indicate if containee has pointers (key or value).
UInt_t fProperties
Proxies_t fProxyKept
 Optimization: Keep proxies once they were created.
Proxies_t fProxyList
 Stack of recursive proxies.
TObjArrayfReadMemberWise
 Array of bundle of TStreamerInfoActions to stream out (read).
Sizing_t fResize
 Container accessors: resize container.
Method fSize
 Container accessors: size of container.
Staged_t fStaged
 Optimization: Keep staged array once they were created.
int fSTL_type
 STL container type.
Info_t fTypeinfo
 Type information.
ValuefVal
 Descriptor of the Value_type.
int fValDiff
 Offset between two consecutive value_types (memory layout).
int fValOffset
 Offset from key to value (in maps).
std::atomic< Value * > fValue
 Descriptor of the container value type.
TStreamerInfoActions::TActionSequencefWriteMemberWise

Private Member Functions

TEmulatedCollectionProxyoperator= (const TEmulatedCollectionProxy &)

Friends

class TCollectionProxy

#include <TEmulatedCollectionProxy.h>

Inheritance diagram for TEmulatedCollectionProxy:
TGenCollectionProxy TVirtualCollectionProxy TEmulatedMapProxy

Member Typedef Documentation

◆ ArrIterfunc_t

typedef void *(* TGenCollectionProxy::ArrIterfunc_t) (void *from, size_t size)
protectedinherited

Definition at line 301 of file TGenCollectionProxy.h.

◆ Collectfunc_t

typedef void *(* TGenCollectionProxy::Collectfunc_t) (void *from, void *to)
protectedinherited

Definition at line 300 of file TGenCollectionProxy.h.

◆ Cont1024_t

Definition at line 44 of file TEmulatedCollectionProxy.h.

◆ Cont128_t

Definition at line 41 of file TEmulatedCollectionProxy.h.

◆ Cont16_t

Definition at line 38 of file TEmulatedCollectionProxy.h.

◆ Cont1_t

Definition at line 34 of file TEmulatedCollectionProxy.h.

◆ Cont2048_t

Definition at line 45 of file TEmulatedCollectionProxy.h.

◆ Cont256_t

Definition at line 42 of file TEmulatedCollectionProxy.h.

◆ Cont2_t

Definition at line 35 of file TEmulatedCollectionProxy.h.

◆ Cont32_t

Definition at line 39 of file TEmulatedCollectionProxy.h.

◆ Cont4096_t

Definition at line 46 of file TEmulatedCollectionProxy.h.

◆ Cont4_t

Definition at line 36 of file TEmulatedCollectionProxy.h.

◆ Cont512_t

Definition at line 43 of file TEmulatedCollectionProxy.h.

◆ Cont64_t

Definition at line 40 of file TEmulatedCollectionProxy.h.

◆ Cont8_t

Definition at line 37 of file TEmulatedCollectionProxy.h.

◆ Cont_t

using TEmulatedCollectionProxy::Cont_t = std::vector<char>

Definition at line 50 of file TEmulatedCollectionProxy.h.

◆ CopyIterator_t

typedef void *(* TVirtualCollectionProxy::CopyIterator_t) (void *dest, const void *source)
inherited

Copy the iterator source into dest.

dest should contain the location of a memory arena of size fgIteratorArenaSize. If iterator-specific information is of that size or less, the iterators will be constructed in place in the given locations. Otherwise, iterators will be allocated via new and their address returned by modifying the value of *begin_arena and *end_arena. The actual address of the iterator is returned in any case.

Definition at line 227 of file TVirtualCollectionProxy.h.

◆ CreateIterators_t

typedef void(* TVirtualCollectionProxy::CreateIterators_t) (void *collection, void **begin_arena, void **end_arena, TVirtualCollectionProxy *proxy)
inherited

*begin_arena and *end_arena should contain the location of a memory arena of size fgIteratorArenaSize.

If iterator-specific information is of that size or less, the iterators will be constructed in place in the given locations. Otherwise, iterators will be allocated via new and their address returned by modifying the value of *begin_arena and *end_arena. As a special case, given that iterators for array-backed containers are just pointers, the required information will be directly stored in *(begin|end)_arena.

Definition at line 215 of file TVirtualCollectionProxy.h.

◆ DeleteIterator_t

typedef void(* TVirtualCollectionProxy::DeleteIterator_t) (void *iter)
inherited

If the size of the iterator is greater than fgIteratorArenaSize, call delete on the addresses; otherwise, just call the iterator's destructor.

Definition at line 244 of file TVirtualCollectionProxy.h.

◆ DeleteTwoIterators_t

typedef void(* TVirtualCollectionProxy::DeleteTwoIterators_t) (void *begin, void *end)
inherited

Definition at line 245 of file TVirtualCollectionProxy.h.

◆ Env_t

Definition at line 291 of file TGenCollectionProxy.h.

◆ EnvironBase_t

◆ Feedfunc_t

typedef void *(* TGenCollectionProxy::Feedfunc_t) (void *from, void *to, size_t size)
protectedinherited

Definition at line 299 of file TGenCollectionProxy.h.

◆ Info_t

typedef const std::type_info& TGenCollectionProxy::Info_t
inherited

Definition at line 45 of file TGenCollectionProxy.h.

◆ Next_t

typedef void *(* TVirtualCollectionProxy::Next_t) (void *iter, const void *end)
inherited

iter and end should be pointers to an iterator to be incremented and an iterator that points to the end of the collection, respectively.

If iter has not reached the end of the collection, this function increments the iterator and returns a pointer to the element before the increment. Otherwise, nullptr is returned.

Definition at line 236 of file TVirtualCollectionProxy.h.

◆ PCont_t

◆ Proxies_t

typedef std::vector<EnvironBase_t*> TGenCollectionProxy::Proxies_t
protectedinherited

Definition at line 294 of file TGenCollectionProxy.h.

◆ Sizing_t

typedef void(* TGenCollectionProxy::Sizing_t) (void *obj, size_t size)
protectedinherited

Definition at line 298 of file TGenCollectionProxy.h.

◆ Staged_t

typedef std::vector<TStaging*> TGenCollectionProxy::Staged_t
protectedinherited

Collection of pre-allocated staged array for associative containers.

Definition at line 293 of file TGenCollectionProxy.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
inherited
Enumerator
kBIT_ISSTRING 
kBIT_ISTSTRING 

Definition at line 48 of file TGenCollectionProxy.h.

◆ EProperty

Enumerator
kIsAssociative 
kIsEmulated 
kNeedDelete 

The collection contains directly or indirectly (via other collection) some pointers that need explicit deletion.

kCustomAlloc 

The collection has a custom allocator.

Definition at line 63 of file TVirtualCollectionProxy.h.

Constructor & Destructor Documentation

◆ TEmulatedCollectionProxy() [1/2]

TEmulatedCollectionProxy::TEmulatedCollectionProxy ( const TEmulatedCollectionProxy & copy)

Definition at line 43 of file TEmulatedCollectionProxy.cxx.

◆ TEmulatedCollectionProxy() [2/2]

TEmulatedCollectionProxy::TEmulatedCollectionProxy ( const char * cl_name,
Bool_t silent )

Definition at line 50 of file TEmulatedCollectionProxy.cxx.

◆ ~TEmulatedCollectionProxy()

TEmulatedCollectionProxy::~TEmulatedCollectionProxy ( )
override

Definition at line 62 of file TEmulatedCollectionProxy.cxx.

Member Function Documentation

◆ Allocate()

void * TEmulatedCollectionProxy::Allocate ( UInt_t n,
Bool_t forceDelete )
overridevirtual

Allocates space for storing at least n elements.

This function returns a pointer to the actual object on which insertions should take place. For associative collections, this function returns a pointer to a temporary buffer known as the staging area. If the insertion happened in a staging area (i.e. the returned pointer != proxied object), Commit() should be called on the value returned by this function.

Implements TVirtualCollectionProxy.

Definition at line 491 of file TEmulatedCollectionProxy.cxx.

◆ At()

void * TEmulatedCollectionProxy::At ( UInt_t idx)
overridevirtual

Return the address of the value at index idx.

Implements TVirtualCollectionProxy.

Reimplemented in TEmulatedMapProxy.

Definition at line 476 of file TEmulatedCollectionProxy.cxx.

◆ CheckFunctions()

void TGenCollectionProxy::CheckFunctions ( ) const
protectedinherited

Check existence of function pointers.

Definition at line 797 of file TGenCollectionProxy.cxx.

◆ Clear()

void TEmulatedCollectionProxy::Clear ( const char * opt = "")
overridevirtual

Clear the container.

Implements TVirtualCollectionProxy.

Definition at line 261 of file TEmulatedCollectionProxy.cxx.

◆ Commit()

void TEmulatedCollectionProxy::Commit ( void * )
overridevirtual

Commits pending elements in a staging area (see Allocate() for more information).

Implements TVirtualCollectionProxy.

Definition at line 508 of file TEmulatedCollectionProxy.cxx.

◆ DeleteArray()

void TEmulatedCollectionProxy::DeleteArray ( void * p,
Bool_t dtorOnly = kFALSE ) const
overridevirtual

Execute the container array destructor.

Reimplemented from TVirtualCollectionProxy.

Definition at line 100 of file TEmulatedCollectionProxy.cxx.

◆ DeleteItem()

void TGenCollectionProxy::DeleteItem ( Bool_t force,
void * ptr ) const
protectedvirtualinherited

Call to delete/destruct individual item.

Reimplemented in TGenBitsetProxy, TGenMapProxy, TGenVectorBoolProxy, and TGenVectorProxy.

Definition at line 1354 of file TGenCollectionProxy.cxx.

◆ Destructor()

void TEmulatedCollectionProxy::Destructor ( void * p,
Bool_t dtorOnly = kFALSE ) const
overridevirtual

Execute the container destructor.

Reimplemented from TVirtualCollectionProxy.

Definition at line 78 of file TEmulatedCollectionProxy.cxx.

◆ Expand()

void TEmulatedCollectionProxy::Expand ( UInt_t nCurr,
UInt_t left )
protected

Definition at line 374 of file TEmulatedCollectionProxy.cxx.

◆ Generate()

TVirtualCollectionProxy * TEmulatedCollectionProxy::Generate ( ) const
overridevirtual

Returns a clean object of the actual class that derives from TVirtualCollectionProxy.

The caller is responsible for deleting the returned object.

Implements TVirtualCollectionProxy.

Reimplemented in TEmulatedMapProxy.

Definition at line 70 of file TEmulatedCollectionProxy.cxx.

◆ GetCollectionClass()

TClass * TGenCollectionProxy::GetCollectionClass ( ) const
overridevirtualinherited

Return a pointer to the TClass representing the container.

Reimplemented from TVirtualCollectionProxy.

Definition at line 989 of file TGenCollectionProxy.cxx.

◆ GetCollectionType()

Int_t TGenCollectionProxy::GetCollectionType ( ) const
overridevirtualinherited

Return the type of collection see TClassEdit::ESTLType.

Implements TVirtualCollectionProxy.

Definition at line 997 of file TGenCollectionProxy.cxx.

◆ GetConversionReadMemberWiseActions()

TStreamerInfoActions::TActionSequence * TGenCollectionProxy::GetConversionReadMemberWiseActions ( TClass * oldClass,
Int_t version )
overridevirtualinherited

Return the set of action necessary to stream in this collection member-wise coming from the old value class layout refered to by 'version'.

Implements TVirtualCollectionProxy.

Definition at line 1747 of file TGenCollectionProxy.cxx.

◆ GetFunctionCopyIterator()

TVirtualCollectionProxy::CopyIterator_t TGenCollectionProxy::GetFunctionCopyIterator ( Bool_t read = kTRUE)
overridevirtualinherited

See typedef void (*CopyIterator_t)(void *&dest, const void *source); Copy the iterator source, into dest.

dest should contain should contain the location of memory arena of size fgIteratorSize. If the collection iterator are of that size or less, the iterator will be constructed in place in this location (new with placement) Otherwise the iterator will be allocated via a regular new and its address returned by modifying the value of dest.

Implements TVirtualCollectionProxy.

Definition at line 1642 of file TGenCollectionProxy.cxx.

◆ GetFunctionCreateIterators()

TVirtualCollectionProxy::CreateIterators_t TGenCollectionProxy::GetFunctionCreateIterators ( Bool_t read = kTRUE)
overridevirtualinherited

See typedef void (*CreateIterators_t)(void *collection, void *&begin_arena, void *&end_arena); begin_arena and end_arena should contain the location of memory arena of size fgIteratorSize.

If the collection iterator are of that size or less, the iterators will be constructed in place in those location (new with placement) Otherwise the iterators will be allocated via a regular new and their address returned by modifying the value of begin_arena and end_arena.

Implements TVirtualCollectionProxy.

Definition at line 1605 of file TGenCollectionProxy.cxx.

◆ GetFunctionDeleteIterator()

TVirtualCollectionProxy::DeleteIterator_t TGenCollectionProxy::GetFunctionDeleteIterator ( Bool_t read = kTRUE)
overridevirtualinherited

See typedef void (*DeleteIterator_t)(void *iter); If the sizeof iterator is greater than fgIteratorArenaSize, call delete on the addresses, Otherwise just call the iterator's destructor.

Implements TVirtualCollectionProxy.

Definition at line 1696 of file TGenCollectionProxy.cxx.

◆ GetFunctionDeleteTwoIterators()

TVirtualCollectionProxy::DeleteTwoIterators_t TGenCollectionProxy::GetFunctionDeleteTwoIterators ( Bool_t read = kTRUE)
overridevirtualinherited

See typedef void (*DeleteTwoIterators_t)(void *begin, void *end); If the sizeof iterator is greater than fgIteratorArenaSize, call delete on the addresses, Otherwise just call the iterator's destructor.

Implements TVirtualCollectionProxy.

Definition at line 1722 of file TGenCollectionProxy.cxx.

◆ GetFunctionNext()

TVirtualCollectionProxy::Next_t TGenCollectionProxy::GetFunctionNext ( Bool_t read = kTRUE)
overridevirtualinherited

See typedef void* (*Next_t)(void *iter, void *end); iter and end should be pointer to respectively an iterator to be incremented and the result of colleciton.end() 'Next' will increment the iterator 'iter' and return 0 if the iterator reached the end.

If the end is not reached, 'Next' will return the address of the content unless the collection contains pointers in which case 'Next' will return the value of the pointer.

Implements TVirtualCollectionProxy.

Definition at line 1670 of file TGenCollectionProxy.cxx.

◆ GetIncrement()

ULong_t TGenCollectionProxy::GetIncrement ( ) const
overridevirtualinherited

Return the offset between two consecutive value_types (memory layout).

Implements TVirtualCollectionProxy.

Definition at line 1008 of file TGenCollectionProxy.cxx.

◆ GetOnFileClass()

virtual TClass * TGenCollectionProxy::GetOnFileClass ( ) const
inlinevirtualinherited

Definition at line 432 of file TGenCollectionProxy.h.

◆ GetProperties()

virtual Int_t TVirtualCollectionProxy::GetProperties ( ) const
inlinevirtualinherited

Return miscallenous properties of the proxy (see TVirtualCollectionProxy::EProperty).

Definition at line 108 of file TVirtualCollectionProxy.h.

◆ GetReadMemberWiseActions()

TStreamerInfoActions::TActionSequence * TGenCollectionProxy::GetReadMemberWiseActions ( Int_t version)
overridevirtualinherited

Return the set of action necessary to stream in this collection member-wise coming from the old value class layout refered to by 'version'.

Implements TVirtualCollectionProxy.

Definition at line 1798 of file TGenCollectionProxy.cxx.

◆ GetType()

EDataType TGenCollectionProxy::GetType ( ) const
overridevirtualinherited

If the content is a simple numerical value, return its type (see TDataType).

Implements TVirtualCollectionProxy.

Definition at line 1055 of file TGenCollectionProxy.cxx.

◆ GetValueClass()

TClass * TGenCollectionProxy::GetValueClass ( ) const
overridevirtualinherited

Return a pointer to the TClass representing the content.

Implements TVirtualCollectionProxy.

Definition at line 1042 of file TGenCollectionProxy.cxx.

◆ GetWriteMemberWiseActions()

TStreamerInfoActions::TActionSequence * TGenCollectionProxy::GetWriteMemberWiseActions ( )
overridevirtualinherited

Return the set of action necessary to stream out this collection member-wise.

Implements TVirtualCollectionProxy.

Definition at line 1820 of file TGenCollectionProxy.cxx.

◆ HasPointers()

Bool_t TGenCollectionProxy::HasPointers ( ) const
overridevirtualinherited

Return true if the content is of type 'pointer to'.

Implements TVirtualCollectionProxy.

Definition at line 1026 of file TGenCollectionProxy.cxx.

◆ Initialize()

TGenCollectionProxy * TGenCollectionProxy::Initialize ( Bool_t silent) const
protectedinherited

Proxy initializer.

Definition at line 774 of file TGenCollectionProxy.cxx.

◆ InitializeEx()

TGenCollectionProxy * TEmulatedCollectionProxy::InitializeEx ( Bool_t silent)
overrideprotectedvirtual

Proxy initializer.

Reimplemented from TGenCollectionProxy.

Definition at line 112 of file TEmulatedCollectionProxy.cxx.

◆ Insert()

void TEmulatedCollectionProxy::Insert ( const void * data,
void * container,
size_t size )
overridevirtual

Insert data into the container where data is a C-style array of the actual type contained in the collection of the given size.

For associative container (map, etc.), the data type is the pair<key,value>.

Implements TVirtualCollectionProxy.

Definition at line 503 of file TEmulatedCollectionProxy.cxx.

◆ IsValid()

Bool_t TEmulatedCollectionProxy::IsValid ( ) const

Definition at line 244 of file TEmulatedCollectionProxy.cxx.

◆ New() [1/2]

void * TEmulatedCollectionProxy::New ( ) const
inlineoverridevirtual

Construct a new container object and return its address.

Reimplemented from TVirtualCollectionProxy.

Definition at line 144 of file TEmulatedCollectionProxy.h.

◆ New() [2/2]

void * TEmulatedCollectionProxy::New ( void * arena) const
inlineoverridevirtual

Construct a new container object at the address given by arena.

Reimplemented from TVirtualCollectionProxy.

Definition at line 152 of file TEmulatedCollectionProxy.h.

◆ NewArray() [1/2]

void * TEmulatedCollectionProxy::NewArray ( Int_t nElements) const
inlineoverridevirtual

Construct an array of nElements container objects and return the base address of the array.

Reimplemented from TVirtualCollectionProxy.

Definition at line 165 of file TEmulatedCollectionProxy.h.

◆ NewArray() [2/2]

void * TEmulatedCollectionProxy::NewArray ( Int_t nElements,
void * arena ) const
inlineoverridevirtual

Construct an array of nElements container objects at the address given by arena.

Reimplemented from TVirtualCollectionProxy.

Definition at line 175 of file TEmulatedCollectionProxy.h.

◆ NewObject() [1/2]

TClass::ObjectPtr TEmulatedCollectionProxy::NewObject ( ) const
inlineoverridevirtual

Construct a new container object and return its address.

Reimplemented from TVirtualCollectionProxy.

Definition at line 159 of file TEmulatedCollectionProxy.h.

◆ NewObject() [2/2]

TClass::ObjectPtr TEmulatedCollectionProxy::NewObject ( void * arena) const
inlineoverridevirtual

Construct a new container object at the address given by arena.

Reimplemented from TVirtualCollectionProxy.

Definition at line 162 of file TEmulatedCollectionProxy.h.

◆ NewObjectArray() [1/2]

TClass::ObjectPtr TEmulatedCollectionProxy::NewObjectArray ( Int_t nElements) const
inlineoverridevirtual

Construct an array of nElements container objects and return the base address of the array.

Reimplemented from TVirtualCollectionProxy.

Definition at line 184 of file TEmulatedCollectionProxy.h.

◆ NewObjectArray() [2/2]

TClass::ObjectPtr TEmulatedCollectionProxy::NewObjectArray ( Int_t nElements,
void * arena ) const
inlineoverridevirtual

Construct an array of nElements container objects at the address given by arena.

Reimplemented from TVirtualCollectionProxy.

Definition at line 187 of file TEmulatedCollectionProxy.h.

◆ operator()()

void TGenCollectionProxy::operator() ( TBuffer & refBuffer,
void * pObject )
virtualinherited

TClassStreamer IO overload.

Definition at line 1452 of file TGenCollectionProxy.cxx.

◆ operator=()

TEmulatedCollectionProxy & TEmulatedCollectionProxy::operator= ( const TEmulatedCollectionProxy & )
private

◆ operator[]()

char * TVirtualCollectionProxy::operator[] ( UInt_t idx) const
inlineinherited

Return the address of the value at index idx.

Definition at line 199 of file TVirtualCollectionProxy.h.

◆ PopProxy()

void TGenCollectionProxy::PopProxy ( )
overridevirtualinherited

Remove the last object.

Implements TVirtualCollectionProxy.

Definition at line 1338 of file TGenCollectionProxy.cxx.

◆ PushProxy()

void TGenCollectionProxy::PushProxy ( void * objstart)
overridevirtualinherited

Add an object.

Implements TVirtualCollectionProxy.

Definition at line 1303 of file TGenCollectionProxy.cxx.

◆ ReadBuffer() [1/2]

void TEmulatedCollectionProxy::ReadBuffer ( TBuffer & buff,
void * pObj )
overridevirtual

Reimplemented from TGenCollectionProxy.

Reimplemented in TEmulatedMapProxy.

Definition at line 614 of file TEmulatedCollectionProxy.cxx.

◆ ReadBuffer() [2/2]

void TEmulatedCollectionProxy::ReadBuffer ( TBuffer & buff,
void * pObj,
const TClass * onfile )
overridevirtual

Reimplemented from TGenCollectionProxy.

Reimplemented in TEmulatedMapProxy.

Definition at line 606 of file TEmulatedCollectionProxy.cxx.

◆ ReadItems()

void TEmulatedCollectionProxy::ReadItems ( int nElements,
TBuffer & b )
protected

Definition at line 512 of file TEmulatedCollectionProxy.cxx.

◆ Reset()

Bool_t TGenCollectionProxy::Reset ( )
overridevirtualinherited

Reset the info gathered from StreamerInfos and value's TClass.

Reimplemented from TVirtualCollectionProxy.

Definition at line 783 of file TGenCollectionProxy.cxx.

◆ Resize()

void TEmulatedCollectionProxy::Resize ( UInt_t n,
Bool_t force_delete )
overridevirtual

Resize the container.

Reimplemented from TGenCollectionProxy.

Definition at line 455 of file TEmulatedCollectionProxy.cxx.

◆ SetOnFileClass()

virtual void TGenCollectionProxy::SetOnFileClass ( TClass * cl)
inlinevirtualinherited

Definition at line 431 of file TGenCollectionProxy.h.

◆ Shrink()

void TEmulatedCollectionProxy::Shrink ( UInt_t nCurr,
UInt_t left,
Bool_t force )
protected

Definition at line 267 of file TEmulatedCollectionProxy.cxx.

◆ Size()

UInt_t TEmulatedCollectionProxy::Size ( ) const
overridevirtual

Return the current number of elements in the container.

Implements TVirtualCollectionProxy.

Reimplemented in TEmulatedMapProxy.

Definition at line 250 of file TEmulatedCollectionProxy.cxx.

◆ Sizeof()

UInt_t TEmulatedCollectionProxy::Sizeof ( ) const
inlineoverridevirtual

Return the sizeof() of the collection object.

Implements TVirtualCollectionProxy.

Definition at line 199 of file TEmulatedCollectionProxy.h.

◆ Streamer() [1/2]

void TEmulatedCollectionProxy::Streamer ( TBuffer & refBuffer,
void * pObject,
int siz )
inlineoverridevirtual

Streamer I/O overload.

Reimplemented from TGenCollectionProxy.

Reimplemented in TEmulatedMapProxy.

Definition at line 231 of file TEmulatedCollectionProxy.h.

◆ Streamer() [2/2]

void TEmulatedCollectionProxy::Streamer ( TBuffer & refBuffer)
overridevirtual

Streamer Function.

Reimplemented from TGenCollectionProxy.

Reimplemented in TEmulatedMapProxy.

Definition at line 629 of file TEmulatedCollectionProxy.cxx.

◆ WithCont()

template<typename F>
void TEmulatedCollectionProxy::WithCont ( void * obj,
F && fn ) const
inline

Invoke fn(typed_ptr, elemSize) where typed_ptr is the container pointer cast to the correct AlignedStorage<N>* for the value class alignment.

fn receives the element size (N) as a second argument so it can convert byte counts to element counts.

Definition at line 58 of file TEmulatedCollectionProxy.h.

◆ WriteItems()

void TEmulatedCollectionProxy::WriteItems ( int nElements,
TBuffer & b )
protected

Definition at line 561 of file TEmulatedCollectionProxy.cxx.

◆ TCollectionProxy

friend class TCollectionProxy
friend

Definition at line 23 of file TEmulatedCollectionProxy.h.

Member Data Documentation

◆ fClass

TClassRef TVirtualCollectionProxy::fClass
protectedinherited

Definition at line 58 of file TVirtualCollectionProxy.h.

◆ fClear

Method TGenCollectionProxy::fClear
protectedinherited

Method cache for container accessors: clear container.

Definition at line 305 of file TGenCollectionProxy.h.

◆ fCollect

Collectfunc_t TGenCollectionProxy::fCollect
protectedinherited

Method to collect objects from container.

Definition at line 313 of file TGenCollectionProxy.h.

◆ fConstruct

ArrIterfunc_t TGenCollectionProxy::fConstruct
protectedinherited

Container accessors: block construct.

Definition at line 310 of file TGenCollectionProxy.h.

◆ fConversionReadMemberWise

std::map<std::string, TObjArray*>* TGenCollectionProxy::fConversionReadMemberWise
mutableprotectedinherited

Array of bundle of TStreamerInfoActions to stream out (read) derived from another class.

Definition at line 296 of file TGenCollectionProxy.h.

◆ fCreateEnv

Method0 TGenCollectionProxy::fCreateEnv
protectedinherited

Method to allocate an Environment holder.

Definition at line 314 of file TGenCollectionProxy.h.

◆ fDestruct

Sizing_t TGenCollectionProxy::fDestruct
protectedinherited

Container accessors: block destruct.

Definition at line 311 of file TGenCollectionProxy.h.

◆ fEnv

EnvironBase_t* TGenCollectionProxy::fEnv
protectedinherited

Address of the currently proxied object.

Definition at line 318 of file TGenCollectionProxy.h.

◆ fFeed

Feedfunc_t TGenCollectionProxy::fFeed
protectedinherited

Container accessors: block feed.

Definition at line 312 of file TGenCollectionProxy.h.

◆ fFirst

Method TGenCollectionProxy::fFirst
protectedinherited

Container accessors: generic iteration: first.

Definition at line 308 of file TGenCollectionProxy.h.

◆ fFunctionCopyIterator

CopyIterator_t TGenCollectionProxy::fFunctionCopyIterator
protectedinherited

Definition at line 329 of file TGenCollectionProxy.h.

◆ fFunctionCreateIterators

CreateIterators_t TGenCollectionProxy::fFunctionCreateIterators
protectedinherited

Definition at line 328 of file TGenCollectionProxy.h.

◆ fFunctionDeleteIterator

DeleteIterator_t TGenCollectionProxy::fFunctionDeleteIterator
protectedinherited

Definition at line 331 of file TGenCollectionProxy.h.

◆ fFunctionDeleteTwoIterators

DeleteTwoIterators_t TGenCollectionProxy::fFunctionDeleteTwoIterators
protectedinherited

Definition at line 332 of file TGenCollectionProxy.h.

◆ fFunctionNextIterator

Next_t TGenCollectionProxy::fFunctionNextIterator
protectedinherited

Definition at line 330 of file TGenCollectionProxy.h.

◆ fgIteratorArenaSize

const Int_t TVirtualCollectionProxy::fgIteratorArenaSize = 16
staticinherited

The size of a small buffer that can be allocated on the stack to store iterator-specific information.

Definition at line 207 of file TVirtualCollectionProxy.h.

◆ fKey

Value* TGenCollectionProxy::fKey
protectedinherited

Descriptor of the key_type.

Definition at line 317 of file TGenCollectionProxy.h.

◆ fName

std::string TGenCollectionProxy::fName
protectedinherited

Name of the class being proxied.

Definition at line 303 of file TGenCollectionProxy.h.

◆ fNext

Method TGenCollectionProxy::fNext
protectedinherited

Container accessors: generic iteration: next.

Definition at line 309 of file TGenCollectionProxy.h.

◆ fOnFileClass

TClass* TGenCollectionProxy::fOnFileClass
protectedinherited

On file class.

Definition at line 326 of file TGenCollectionProxy.h.

◆ fPointers

Bool_t TGenCollectionProxy::fPointers
protectedinherited

Flag to indicate if containee has pointers (key or value).

Definition at line 304 of file TGenCollectionProxy.h.

◆ fProperties

UInt_t TVirtualCollectionProxy::fProperties
protectedinherited

Definition at line 59 of file TVirtualCollectionProxy.h.

◆ fProxyKept

Proxies_t TGenCollectionProxy::fProxyKept
protectedinherited

Optimization: Keep proxies once they were created.

Definition at line 322 of file TGenCollectionProxy.h.

◆ fProxyList

Proxies_t TGenCollectionProxy::fProxyList
protectedinherited

Stack of recursive proxies.

Definition at line 321 of file TGenCollectionProxy.h.

◆ fReadMemberWise

TObjArray* TGenCollectionProxy::fReadMemberWise
mutableprotectedinherited

Array of bundle of TStreamerInfoActions to stream out (read).

Definition at line 295 of file TGenCollectionProxy.h.

◆ fResize

Sizing_t TGenCollectionProxy::fResize
protectedinherited

Container accessors: resize container.

Definition at line 307 of file TGenCollectionProxy.h.

◆ fSize

Method TGenCollectionProxy::fSize
protectedinherited

Container accessors: size of container.

Definition at line 306 of file TGenCollectionProxy.h.

◆ fStaged

Staged_t TGenCollectionProxy::fStaged
protectedinherited

Optimization: Keep staged array once they were created.

Definition at line 323 of file TGenCollectionProxy.h.

◆ fSTL_type

int TGenCollectionProxy::fSTL_type
protectedinherited

STL container type.

Definition at line 324 of file TGenCollectionProxy.h.

◆ fTypeinfo

Info_t TGenCollectionProxy::fTypeinfo
protectedinherited

Type information.

Definition at line 325 of file TGenCollectionProxy.h.

◆ fVal

Value* TGenCollectionProxy::fVal
protectedinherited

Descriptor of the Value_type.

Definition at line 316 of file TGenCollectionProxy.h.

◆ fValDiff

int TGenCollectionProxy::fValDiff
protectedinherited

Offset between two consecutive value_types (memory layout).

Definition at line 320 of file TGenCollectionProxy.h.

◆ fValOffset

int TGenCollectionProxy::fValOffset
protectedinherited

Offset from key to value (in maps).

Definition at line 319 of file TGenCollectionProxy.h.

◆ fValue

std::atomic<Value*> TGenCollectionProxy::fValue
protectedinherited

Descriptor of the container value type.

Definition at line 315 of file TGenCollectionProxy.h.

◆ fWriteMemberWise

TStreamerInfoActions::TActionSequence* TGenCollectionProxy::fWriteMemberWise
mutableprotectedinherited

Definition at line 297 of file TGenCollectionProxy.h.


The documentation for this class was generated from the following files: