Logo ROOT   6.12/07
Reference Guide
List of all members | Classes | Public Types | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Private Member Functions | Friends | List of all members
TGenCollectionProxy Class Reference

Proxy around an arbitrary container, which implements basic functionality and iteration.

The purpose of this implementation is to shield any generated dictionary implementation from the underlying streamer/proxy implementation and only expose the creation functions.

In particular this is used to implement splitting and abstract element access of any container. Access to compiled code is necessary to implement the abstract iteration sequence and functionality like size(), clear(), resize(). resize() may be a void operation.

Definition at line 28 of file TGenCollectionProxy.h.

Classes

class  Method
 Small helper to execute (compiler) generated function for the access to STL or other containers. More...
 
class  Method0
 
class  StreamHelper
 Helper class to facilitate I/O. More...
 
class  TStaging
 Small helper to stage the content of an associative container when reading and before inserting it in the actual collection. More...
 
class  Value
 Small helper to describe the Value_type or the key_type of an STL container. More...
 

Public Types

enum  { kBIT_ISSTRING = 0x20000000, kBIT_ISTSTRING = 0x40000000 }
 
typedef const std::type_info & Info_t
 
- Public Types inherited from TVirtualCollectionProxy
typedef void *(* CopyIterator_t) (void *dest, const void *source)
 
typedef void(* CreateIterators_t) (void *collection, void **begin_arena, void **end_arena, TVirtualCollectionProxy *proxy)
 
typedef void(* DeleteIterator_t) (void *iter)
 
typedef void(* DeleteTwoIterators_t) (void *begin, void *end)
 
enum  EProperty { kIsAssociative = BIT(2), kIsEmulated = BIT(3), kNeedDelete = BIT(4) }
 
typedef void *(* Next_t) (void *iter, const void *end)
 

Public Member Functions

 TGenCollectionProxy (const TGenCollectionProxy &copy)
 Build a proxy for an emulated container. More...
 
 TGenCollectionProxy (Info_t typ, size_t iter_size)
 Build a proxy for a collection whose type is described by 'collectionClass'. More...
 
 TGenCollectionProxy (const ROOT::Detail::TCollectionProxyInfo &info, TClass *cl)
 Build a proxy for a collection whose type is described by 'collectionClass'. More...
 
virtual ~TGenCollectionProxy ()
 Standard destructor. More...
 
virtual voidAllocate (UInt_t n, Bool_t forceDelete)
 Allocate the needed space. More...
 
virtual voidAt (UInt_t idx)
 Return the address of the value at index 'idx'. More...
 
virtual void Clear (const char *opt="")
 Clear the emulated collection. More...
 
virtual void Commit (void *env)
 Commit the change. More...
 
virtual TVirtualCollectionProxyGenerate () const
 Virtual copy constructor. More...
 
virtual TClassGetCollectionClass () const
 Return a pointer to the TClass representing the container. More...
 
virtual Int_t GetCollectionType () const
 Return the type of collection see TClassEdit::ESTLType. More...
 
virtual TStreamerInfoActions::TActionSequenceGetConversionReadMemberWiseActions (TClass *oldClass, Int_t version)
 Return the set of action necessary to stream in this collection member-wise coming from the old value class layout refered to by 'version'. More...
 
virtual CopyIterator_t GetFunctionCopyIterator (Bool_t read=kTRUE)
 See typedef void (*CopyIterator_t)(void *&dest, const void *source); Copy the iterator source, into dest. More...
 
virtual CreateIterators_t GetFunctionCreateIterators (Bool_t read=kTRUE)
 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. More...
 
virtual DeleteIterator_t GetFunctionDeleteIterator (Bool_t read=kTRUE)
 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. More...
 
virtual DeleteTwoIterators_t GetFunctionDeleteTwoIterators (Bool_t read=kTRUE)
 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. More...
 
virtual Next_t GetFunctionNext (Bool_t read=kTRUE)
 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. More...
 
virtual ULong_t GetIncrement () const
 Return the offset between two consecutive value_types (memory layout). More...
 
virtual TClassGetOnFileClass () const
 
virtual TStreamerInfoActions::TActionSequenceGetReadMemberWiseActions (Int_t version)
 Return the set of action necessary to stream in this collection member-wise coming from the old value class layout refered to by 'version'. More...
 
virtual EDataType GetType () const
 If the content is a simple numerical value, return its type (see TDataType) More...
 
virtual TClassGetValueClass () const
 Return a pointer to the TClass representing the content. More...
 
virtual TStreamerInfoActions::TActionSequenceGetWriteMemberWiseActions ()
 Return the set of action necessary to stream out this collection member-wise. More...
 
virtual Bool_t HasPointers () const
 Return true if the content is of type 'pointer to'. More...
 
virtual void Insert (const void *data, void *container, size_t size)
 Insert data into the container where data is a C-style array of the actual type contained in the collection of the given size. More...
 
virtual void operator() (TBuffer &refBuffer, void *pObject)
 TClassStreamer IO overload. More...
 
virtual void PopProxy ()
 Remove the last object. More...
 
virtual void PushProxy (void *objstart)
 Add an object. More...
 
virtual void ReadBuffer (TBuffer &b, void *obj)
 
virtual void ReadBuffer (TBuffer &b, void *obj, const TClass *onfileClass)
 
virtual void Resize (UInt_t n, Bool_t force_delete)
 Resize the container. More...
 
virtual void SetOnFileClass (TClass *cl)
 
virtual UInt_t Size () const
 Return the current size of the container. More...
 
virtual UInt_t Sizeof () const
 Return the sizeof the collection object. More...
 
virtual void Streamer (TBuffer &refBuffer)
 Streamer Function. More...
 
virtual void Streamer (TBuffer &refBuffer, void *pObject, int siz)
 Streamer I/O overload. More...
 
- Public Member Functions inherited from TVirtualCollectionProxy
 TVirtualCollectionProxy ()
 
 TVirtualCollectionProxy (TClass *cl)
 
virtual ~TVirtualCollectionProxy ()
 
virtual void DeleteArray (void *p, Bool_t dtorOnly=kFALSE) const
 
virtual void Destructor (void *p, Bool_t dtorOnly=kFALSE) const
 
virtual Int_t GetProperties () const
 
virtual voidNew () const
 
virtual voidNew (void *arena) const
 
virtual voidNewArray (Int_t nElements) const
 
virtual voidNewArray (Int_t nElements, void *arena) const
 
char * operator[] (UInt_t idx) const
 

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. More...
 

Protected Member Functions

void CheckFunctions () const
 Check existence of function pointers. More...
 
virtual void DeleteItem (Bool_t force, void *ptr) const
 Call to delete/destruct individual item. More...
 
TGenCollectionProxyInitialize (Bool_t silent) const
 Proxy initializer. More...
 
virtual TGenCollectionProxyInitializeEx (Bool_t silent)
 Proxy initializer. More...
 
virtual void UpdateValueClass (const TClass *oldcl, TClass *newcl)
 Update the internal ValueClass when a TClass constructor need to replace an emulated TClass by the real TClass. More...
 

Protected Attributes

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

Private Member Functions

 TGenCollectionProxy ()
 
TGenCollectionProxyoperator= (const TGenCollectionProxy &)
 

Friends

class TCollectionProxyFactory
 

Additional Inherited Members

- Static Public Attributes inherited from TVirtualCollectionProxy
static const Int_t fgIteratorArenaSize = 16
 

#include <TGenCollectionProxy.h>

Inheritance diagram for TGenCollectionProxy:
[legend]

Member Typedef Documentation

◆ ArrIterfunc_t

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

Definition at line 296 of file TGenCollectionProxy.h.

◆ Collectfunc_t

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

Definition at line 295 of file TGenCollectionProxy.h.

◆ Env_t

Definition at line 286 of file TGenCollectionProxy.h.

◆ EnvironBase_t

Definition at line 287 of file TGenCollectionProxy.h.

◆ Feedfunc_t

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

Definition at line 294 of file TGenCollectionProxy.h.

◆ Info_t

typedef const std::type_info& TGenCollectionProxy::Info_t

Definition at line 40 of file TGenCollectionProxy.h.

◆ Proxies_t

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

Definition at line 289 of file TGenCollectionProxy.h.

◆ Sizing_t

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

Definition at line 293 of file TGenCollectionProxy.h.

◆ Staged_t

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

Collection of pre-allocated staged array for associative containers.

Definition at line 288 of file TGenCollectionProxy.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
kBIT_ISSTRING 
kBIT_ISTSTRING 

Definition at line 43 of file TGenCollectionProxy.h.

Constructor & Destructor Documentation

◆ TGenCollectionProxy() [1/4]

TGenCollectionProxy::TGenCollectionProxy ( )
private

◆ TGenCollectionProxy() [2/4]

TGenCollectionProxy::TGenCollectionProxy ( const TGenCollectionProxy copy)

Build a proxy for an emulated container.

Definition at line 544 of file TGenCollectionProxy.cxx.

◆ TGenCollectionProxy() [3/4]

TGenCollectionProxy::TGenCollectionProxy ( Info_t  typ,
size_t  iter_size 
)

Build a proxy for a collection whose type is described by 'collectionClass'.

Definition at line 582 of file TGenCollectionProxy.cxx.

◆ TGenCollectionProxy() [4/4]

TGenCollectionProxy::TGenCollectionProxy ( const ROOT::Detail::TCollectionProxyInfo info,
TClass cl 
)

Build a proxy for a collection whose type is described by 'collectionClass'.

Definition at line 627 of file TGenCollectionProxy.cxx.

◆ ~TGenCollectionProxy()

TGenCollectionProxy::~TGenCollectionProxy ( )
virtual

Standard destructor.

Definition at line 693 of file TGenCollectionProxy.cxx.

Member Function Documentation

◆ Allocate()

void * TGenCollectionProxy::Allocate ( UInt_t  n,
Bool_t  forceDelete 
)
virtual

Allocate the needed space.

For associative collection, this returns a TStaging object that need to be deleted manually or returned by calling Commit(TStaging*)

Implements TVirtualCollectionProxy.

Reimplemented in TEmulatedCollectionProxy.

Definition at line 1122 of file TGenCollectionProxy.cxx.

◆ At()

void * TGenCollectionProxy::At ( UInt_t  idx)
virtual

Return the address of the value at index 'idx'.

Implements TVirtualCollectionProxy.

Reimplemented in TEmulatedCollectionProxy, and TEmulatedMapProxy.

Definition at line 996 of file TGenCollectionProxy.cxx.

◆ CheckFunctions()

void TGenCollectionProxy::CheckFunctions ( ) const
protected

Check existence of function pointers.

Definition at line 768 of file TGenCollectionProxy.cxx.

◆ Clear()

void TGenCollectionProxy::Clear ( const char *  opt = "")
virtual

Clear the emulated collection.

Implements TVirtualCollectionProxy.

Reimplemented in TEmulatedCollectionProxy.

Definition at line 1066 of file TGenCollectionProxy.cxx.

◆ Commit()

void TGenCollectionProxy::Commit ( void env)
virtual

Commit the change.

Implements TVirtualCollectionProxy.

Reimplemented in TEmulatedCollectionProxy.

Definition at line 1206 of file TGenCollectionProxy.cxx.

◆ DeleteItem()

void TGenCollectionProxy::DeleteItem ( Bool_t  force,
void ptr 
) const
protectedvirtual

Call to delete/destruct individual item.

Definition at line 1279 of file TGenCollectionProxy.cxx.

◆ Generate()

TVirtualCollectionProxy * TGenCollectionProxy::Generate ( ) const
virtual

Virtual copy constructor.

Implements TVirtualCollectionProxy.

Reimplemented in TGenCollectionStreamer, TEmulatedCollectionProxy, and TEmulatedMapProxy.

Definition at line 719 of file TGenCollectionProxy.cxx.

◆ GetCollectionClass()

TClass * TGenCollectionProxy::GetCollectionClass ( ) const
virtual

Return a pointer to the TClass representing the container.

Reimplemented from TVirtualCollectionProxy.

Definition at line 910 of file TGenCollectionProxy.cxx.

◆ GetCollectionType()

Int_t TGenCollectionProxy::GetCollectionType ( ) const
virtual

Return the type of collection see TClassEdit::ESTLType.

Implements TVirtualCollectionProxy.

Definition at line 918 of file TGenCollectionProxy.cxx.

◆ GetConversionReadMemberWiseActions()

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

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 1671 of file TGenCollectionProxy.cxx.

◆ GetFunctionCopyIterator()

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

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 1570 of file TGenCollectionProxy.cxx.

◆ GetFunctionCreateIterators()

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

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 1536 of file TGenCollectionProxy.cxx.

◆ GetFunctionDeleteIterator()

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

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 1622 of file TGenCollectionProxy.cxx.

◆ GetFunctionDeleteTwoIterators()

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

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 1647 of file TGenCollectionProxy.cxx.

◆ GetFunctionNext()

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

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 1597 of file TGenCollectionProxy.cxx.

◆ GetIncrement()

ULong_t TGenCollectionProxy::GetIncrement ( ) const
virtual

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

Implements TVirtualCollectionProxy.

Definition at line 929 of file TGenCollectionProxy.cxx.

◆ GetOnFileClass()

virtual TClass* TGenCollectionProxy::GetOnFileClass ( ) const
inlinevirtual

Definition at line 427 of file TGenCollectionProxy.h.

◆ GetReadMemberWiseActions()

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

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 1722 of file TGenCollectionProxy.cxx.

◆ GetType()

EDataType TGenCollectionProxy::GetType ( ) const
virtual

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

Implements TVirtualCollectionProxy.

Definition at line 987 of file TGenCollectionProxy.cxx.

◆ GetValueClass()

TClass * TGenCollectionProxy::GetValueClass ( ) const
virtual

Return a pointer to the TClass representing the content.

Implements TVirtualCollectionProxy.

Definition at line 963 of file TGenCollectionProxy.cxx.

◆ GetWriteMemberWiseActions()

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

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

Implements TVirtualCollectionProxy.

Definition at line 1744 of file TGenCollectionProxy.cxx.

◆ HasPointers()

Bool_t TGenCollectionProxy::HasPointers ( ) const
virtual

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

Implements TVirtualCollectionProxy.

Definition at line 947 of file TGenCollectionProxy.cxx.

◆ Initialize()

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

Proxy initializer.

Definition at line 758 of file TGenCollectionProxy.cxx.

◆ InitializeEx()

TGenCollectionProxy * TGenCollectionProxy::InitializeEx ( Bool_t  silent)
protectedvirtual

Proxy initializer.

Reimplemented in TEmulatedCollectionProxy.

Definition at line 817 of file TGenCollectionProxy.cxx.

◆ Insert()

void TGenCollectionProxy::Insert ( const void data,
void container,
size_t  size 
)
virtual

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.

Reimplemented in TEmulatedCollectionProxy.

Definition at line 1198 of file TGenCollectionProxy.cxx.

◆ operator()()

void TGenCollectionProxy::operator() ( TBuffer refBuffer,
void pObject 
)
virtual

TClassStreamer IO overload.

Definition at line 1377 of file TGenCollectionProxy.cxx.

◆ operator=()

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

◆ PopProxy()

void TGenCollectionProxy::PopProxy ( )
virtual

Remove the last object.

Implements TVirtualCollectionProxy.

Definition at line 1263 of file TGenCollectionProxy.cxx.

◆ PushProxy()

void TGenCollectionProxy::PushProxy ( void objstart)
virtual

Add an object.

Implements TVirtualCollectionProxy.

Definition at line 1228 of file TGenCollectionProxy.cxx.

◆ ReadBuffer() [1/2]

void TGenCollectionProxy::ReadBuffer ( TBuffer b,
void obj 
)
virtual

◆ ReadBuffer() [2/2]

void TGenCollectionProxy::ReadBuffer ( TBuffer b,
void obj,
const TClass onfileClass 
)
virtual

◆ Resize()

void TGenCollectionProxy::Resize ( UInt_t  n,
Bool_t  force_delete 
)
virtual

Resize the container.

Reimplemented in TEmulatedCollectionProxy.

Definition at line 1099 of file TGenCollectionProxy.cxx.

◆ SetOnFileClass()

virtual void TGenCollectionProxy::SetOnFileClass ( TClass cl)
inlinevirtual

Definition at line 426 of file TGenCollectionProxy.h.

◆ Size()

UInt_t TGenCollectionProxy::Size ( ) const
virtual

Return the current size of the container.

Implements TVirtualCollectionProxy.

Reimplemented in TEmulatedCollectionProxy, and TEmulatedMapProxy.

Definition at line 1083 of file TGenCollectionProxy.cxx.

◆ Sizeof()

UInt_t TGenCollectionProxy::Sizeof ( ) const
virtual

Return the sizeof the collection object.

Implements TVirtualCollectionProxy.

Reimplemented in TEmulatedCollectionProxy.

Definition at line 939 of file TGenCollectionProxy.cxx.

◆ Streamer() [1/2]

void TGenCollectionProxy::Streamer ( TBuffer refBuffer)
virtual

Streamer Function.

Reimplemented in TEmulatedCollectionProxy, TGenCollectionStreamer, and TEmulatedMapProxy.

Definition at line 1356 of file TGenCollectionProxy.cxx.

◆ Streamer() [2/2]

void TGenCollectionProxy::Streamer ( TBuffer refBuffer,
void pObject,
int  siz 
)
virtual

Streamer I/O overload.

Reimplemented in TEmulatedCollectionProxy, TGenCollectionStreamer, and TEmulatedMapProxy.

Definition at line 1368 of file TGenCollectionProxy.cxx.

◆ UpdateValueClass()

void TGenCollectionProxy::UpdateValueClass ( const TClass oldValueType,
TClass newValueType 
)
protectedvirtual

Update the internal ValueClass when a TClass constructor need to replace an emulated TClass by the real TClass.

Implements TVirtualCollectionProxy.

Definition at line 973 of file TGenCollectionProxy.cxx.

Friends And Related Function Documentation

◆ TCollectionProxyFactory

friend class TCollectionProxyFactory
friend

Definition at line 33 of file TGenCollectionProxy.h.

Member Data Documentation

◆ fClear

Method TGenCollectionProxy::fClear
protected

Method cache for container accessors: clear container.

Definition at line 300 of file TGenCollectionProxy.h.

◆ fCollect

Collectfunc_t TGenCollectionProxy::fCollect
protected

Method to collect objects from container.

Definition at line 308 of file TGenCollectionProxy.h.

◆ fConstruct

ArrIterfunc_t TGenCollectionProxy::fConstruct
protected

Container accessors: block construct.

Definition at line 305 of file TGenCollectionProxy.h.

◆ fConversionReadMemberWise

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

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

Definition at line 291 of file TGenCollectionProxy.h.

◆ fCreateEnv

Method0 TGenCollectionProxy::fCreateEnv
protected

Method to allocate an Environment holder.

Definition at line 309 of file TGenCollectionProxy.h.

◆ fDestruct

Sizing_t TGenCollectionProxy::fDestruct
protected

Container accessors: block destruct.

Definition at line 306 of file TGenCollectionProxy.h.

◆ fEnv

EnvironBase_t* TGenCollectionProxy::fEnv
protected

Address of the currently proxied object.

Definition at line 313 of file TGenCollectionProxy.h.

◆ fFeed

Feedfunc_t TGenCollectionProxy::fFeed
protected

Container accessors: block feed.

Definition at line 307 of file TGenCollectionProxy.h.

◆ fFirst

Method TGenCollectionProxy::fFirst
protected

Container accessors: generic iteration: first.

Definition at line 303 of file TGenCollectionProxy.h.

◆ fFunctionCopyIterator

CopyIterator_t TGenCollectionProxy::fFunctionCopyIterator
protected

Definition at line 324 of file TGenCollectionProxy.h.

◆ fFunctionCreateIterators

CreateIterators_t TGenCollectionProxy::fFunctionCreateIterators
protected

Definition at line 323 of file TGenCollectionProxy.h.

◆ fFunctionDeleteIterator

DeleteIterator_t TGenCollectionProxy::fFunctionDeleteIterator
protected

Definition at line 326 of file TGenCollectionProxy.h.

◆ fFunctionDeleteTwoIterators

DeleteTwoIterators_t TGenCollectionProxy::fFunctionDeleteTwoIterators
protected

Definition at line 327 of file TGenCollectionProxy.h.

◆ fFunctionNextIterator

Next_t TGenCollectionProxy::fFunctionNextIterator
protected

Definition at line 325 of file TGenCollectionProxy.h.

◆ fKey

Value* TGenCollectionProxy::fKey
protected

Descriptor of the key_type.

Definition at line 312 of file TGenCollectionProxy.h.

◆ fName

std::string TGenCollectionProxy::fName
protected

Name of the class being proxied.

Definition at line 298 of file TGenCollectionProxy.h.

◆ fNext

Method TGenCollectionProxy::fNext
protected

Container accessors: generic iteration: next.

Definition at line 304 of file TGenCollectionProxy.h.

◆ fOnFileClass

TClass* TGenCollectionProxy::fOnFileClass
protected

On file class.

Definition at line 321 of file TGenCollectionProxy.h.

◆ fPointers

Bool_t TGenCollectionProxy::fPointers
protected

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

Definition at line 299 of file TGenCollectionProxy.h.

◆ fProxyKept

Proxies_t TGenCollectionProxy::fProxyKept
protected

Optimization: Keep proxies once they were created.

Definition at line 317 of file TGenCollectionProxy.h.

◆ fProxyList

Proxies_t TGenCollectionProxy::fProxyList
protected

Stack of recursive proxies.

Definition at line 316 of file TGenCollectionProxy.h.

◆ fReadMemberWise

TObjArray* TGenCollectionProxy::fReadMemberWise
mutableprotected

Array of bundle of TStreamerInfoActions to stream out (read)

Definition at line 290 of file TGenCollectionProxy.h.

◆ fResize

Sizing_t TGenCollectionProxy::fResize
protected

Container accessors: resize container.

Definition at line 302 of file TGenCollectionProxy.h.

◆ fSize

Method TGenCollectionProxy::fSize
protected

Container accessors: size of container.

Definition at line 301 of file TGenCollectionProxy.h.

◆ fStaged

Staged_t TGenCollectionProxy::fStaged
protected

Optimization: Keep staged array once they were created.

Definition at line 318 of file TGenCollectionProxy.h.

◆ fSTL_type

int TGenCollectionProxy::fSTL_type
protected

STL container type.

Definition at line 319 of file TGenCollectionProxy.h.

◆ fTypeinfo

Info_t TGenCollectionProxy::fTypeinfo
protected

Type information.

Definition at line 320 of file TGenCollectionProxy.h.

◆ fVal

Value* TGenCollectionProxy::fVal
protected

Descriptor of the Value_type.

Definition at line 311 of file TGenCollectionProxy.h.

◆ fValDiff

int TGenCollectionProxy::fValDiff
protected

Offset between two consecutive value_types (memory layout).

Definition at line 315 of file TGenCollectionProxy.h.

◆ fValOffset

int TGenCollectionProxy::fValOffset
protected

Offset from key to value (in maps)

Definition at line 314 of file TGenCollectionProxy.h.

◆ fValue

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

Descriptor of the container value type.

Definition at line 310 of file TGenCollectionProxy.h.

◆ fWriteMemberWise

TStreamerInfoActions::TActionSequence* TGenCollectionProxy::fWriteMemberWise
mutableprotected

Definition at line 292 of file TGenCollectionProxy.h.

Libraries for TGenCollectionProxy:
[legend]

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