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.
virtual void | SetValueClass(TClass* newcl) |
TVirtualCollectionProxy& | operator=(const TVirtualCollectionProxy&) |
static const Int_t | fgIteratorArenaSize | greater than sizeof(void*) + sizeof(UInt_t) |
Return a pointer to the TClass representing the container
{ return fClass; }
Return miscallenous properties of the proxy see TVirtualCollectionProxy::EProperty
{ return fProperties; }
Set the address of the container being proxied and keep track of the previous one.
If the content is a simple numerical value, return its type (see TDataType)
{ return (char*)(const_cast<TVirtualCollectionProxy*>(this))->At(idx); }
MemberWise actions
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.
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. The actual address of the iterator is returned in both case.
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.
If the size of the iterator is greater than fgIteratorArenaSize, call delete on the addresses, Otherwise just call the iterator's destructor.