ROOT logo
ROOT » CORE » CONT » TVirtualCollectionProxy

class TVirtualCollectionProxy


TVirtualCollectionProxy

Virtual interface of a proxy object for a collection class
In particular this is used to implement splitting, emulation,
and TTreeFormula access to STL containers.


This class is also known as (typedefs to this class)

TCollectionProxyFactory::Proxy_t

Function Members (Methods)

 
    This is an abstract class, constructors will not be documented.
    Look at the header to check for available constructors.

public:
virtual~TVirtualCollectionProxy()
virtual void*Allocate(UInt_t n, Bool_t forceDelete)
virtual void*At(UInt_t idx)
virtual voidClear(const char* opt = "")
virtual voidCommit(void*)
virtual voidDeleteArray(void* p, Bool_t dtorOnly = kFALSE)
virtual voidDestructor(void* p, Bool_t dtorOnly = kFALSE)
virtual TVirtualCollectionProxy*Generate() const
virtual TClass*GetCollectionClass()
virtual Int_tGetCollectionType()
virtual TStreamerInfoActions::TActionSequence*GetConversionReadMemberWiseActions(TClass* oldClass, Int_t version)
virtual TVirtualCollectionProxy::CopyIterator_tGetFunctionCopyIterator(Bool_t read = kTRUE)
virtual TVirtualCollectionProxy::CreateIterators_tGetFunctionCreateIterators(Bool_t read = kTRUE)
virtual TVirtualCollectionProxy::DeleteIterator_tGetFunctionDeleteIterator(Bool_t read = kTRUE)
virtual TVirtualCollectionProxy::DeleteTwoIterators_tGetFunctionDeleteTwoIterators(Bool_t read = kTRUE)
virtual TVirtualCollectionProxy::Next_tGetFunctionNext(Bool_t read = kTRUE)
virtual ULong_tGetIncrement()
virtual Int_tGetProperties()
virtual TStreamerInfoActions::TActionSequence*GetReadMemberWiseActions(Int_t version)
virtual EDataTypeGetType()
virtual TClass*GetValueClass()
virtual TStreamerInfoActions::TActionSequence*GetWriteMemberWiseActions()
virtual Bool_tHasPointers() const
virtual void*New() const
virtual void*New(void* arena) const
virtual void*NewArray(Int_t nElements) const
virtual void*NewArray(Int_t nElements, void* arena) const
char*operator[](UInt_t idx) const
virtual voidPopProxy()
virtual voidPushProxy(void* objectstart)
virtual UInt_tSize() const
virtual UInt_tSizeof() const
protected:
virtual voidSetValueClass(TClass* newcl)

Data Members

public:
enum EProperty { kIsInitialized
kIsAssociative
kIsEmulated
kNeedDelete
};
public:
static const Int_tfgIteratorArenaSizegreater than sizeof(void*) + sizeof(UInt_t)
protected:
TClassReffClass
UInt_tfProperties

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

TVirtualCollectionProxy& operator=(const TVirtualCollectionProxy& )
void SetValueClass(TClass* newcl)
TVirtualCollectionProxy* Generate() const
virtual ~TVirtualCollectionProxy()
{}
TClass * GetCollectionClass()
 Return a pointer to the TClass representing the container
{ return fClass; }
Int_t GetCollectionType()
 Return the type of collection see TClassEdit::ESTLType
ULong_t GetIncrement()
 Return the offset between two consecutive value_types (memory layout).
Int_t GetProperties()
 Return miscallenous properties of the proxy see TVirtualCollectionProxy::EProperty
{ return fProperties; }
void * New() const
 Return a new container object
void * New(void* arena) const
 Execute the container constructor
void * NewArray(Int_t nElements) const
 Return a new container object
void * NewArray(Int_t nElements, void* arena) const
 Execute the container constructor
void Destructor(void* p, Bool_t dtorOnly = kFALSE)
 Execute the container destructor
void DeleteArray(void* p, Bool_t dtorOnly = kFALSE)
 Execute the container array destructor
UInt_t Sizeof() const
 Return the sizeof the collection object.
void PushProxy(void* objectstart)
 Set the address of the container being proxied and keep track of the previous one.
void PopProxy()
 Reset the address of the container being proxied to the previous container
Bool_t HasPointers() const
 Return true if the content is of type 'pointer to'
TClass * GetValueClass()
 Return a pointer to the TClass representing the content.
EDataType GetType()
 If the content is a simple numerical value, return its type (see TDataType)
void * At(UInt_t idx)
 Return the address of the value at index 'idx'
void Clear(const char* opt = "")
 Clear the container
UInt_t Size() const
 Return the current size of the container
void* Allocate(UInt_t n, Bool_t forceDelete)
void Commit(void* )
char * operator[](UInt_t idx) const
{ return (char*)(const_cast<TVirtualCollectionProxy*>(this))->At(idx); }
TStreamerInfoActions::TActionSequence * GetConversionReadMemberWiseActions(TClass* oldClass, Int_t version)
 MemberWise actions
TStreamerInfoActions::TActionSequence * GetReadMemberWiseActions(Int_t version)
TStreamerInfoActions::TActionSequence * GetWriteMemberWiseActions()
CreateIterators_t GetFunctionCreateIterators(Bool_t read = kTRUE)
 begin_arena and end_arena should contain the location of a 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.
CopyIterator_t GetFunctionCopyIterator(Bool_t read = kTRUE)
 Copy the iterator source, into dest.   dest should contain the location of a memory arena of size fgIteratorSize.
 If the collection iterator is 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.
Next_t GetFunctionNext(Bool_t read = kTRUE)
 iter and end should be pointers to respectively an iterator to be incremented and the result of collection.end()
 If the iterator has not reached the end of the collection, 'Next' increment the iterator 'iter' and return 0 if
 the iterator reached the end.
 If the end was not reached, 'Next' returns the address of the content pointed to by the iterator before the
 incrementation ; if the collection contains pointers, 'Next' will return the value of the pointer.
DeleteIterator_t GetFunctionDeleteIterator(Bool_t read = kTRUE)
DeleteTwoIterators_t GetFunctionDeleteTwoIterators(Bool_t read = kTRUE)
 If the size of the iterator is greater than fgIteratorArenaSize, call delete on the addresses,
 Otherwise just call the iterator's destructor.