12#ifndef ROOT_TVirtualCollectionProxy
13#define ROOT_TVirtualCollectionProxy
31#define ROOT_COLLECTIONPROXY_VERSION 3
35 class TActionSequence;
92 virtual void *
New()
const {
96 virtual void *
New(
void *arena)
const {
159 virtual void Clear(
const char *opt =
"") = 0;
169 virtual void Insert(
const void *data,
void *container,
size_t size) = 0;
189 typedef void* (*CopyIterator_t)(
void *
dest,
const void *source);
196 typedef void* (*Next_t)(
void *iter,
const void *end);
typedef void((*Func_t)())
TClassRef is used to implement a permanent reference to a TClass object.
TClass * GetClass() const
TClass instances represent classes, structs and namespaces in the ROOT type system.
void * NewArray(Long_t nElements, ENewType defConstructor=kClassNew) const
Return a pointer to a newly allocated array of objects of this class.
void * New(ENewType defConstructor=kClassNew, Bool_t quiet=kFALSE) const
Return a pointer to a newly allocated object of this class.
void Destructor(void *obj, Bool_t dtorOnly=kFALSE)
Explicitly call destructor for object.
void DeleteArray(void *ary, Bool_t dtorOnly=kFALSE)
Explicitly call operator delete[] for an array.
ObjectPtr NewObjectArray(Long_t nElements, ENewType defConstructor=kClassNew) const
Return a pointer to a newly allocated array of objects of this class.
ObjectPtr NewObject(ENewType defConstructor=kClassNew, Bool_t quiet=kFALSE) const
TPushPop & operator=(const TPushPop &)=delete
TPushPop(const TPushPop &)=delete
TPushPop(TVirtualCollectionProxy *proxy, void *objectstart)
TVirtualCollectionProxy * fProxy
virtual Int_t GetProperties() const
virtual void PushProxy(void *objectstart)=0
TVirtualCollectionProxy()
virtual UInt_t Sizeof() const =0
virtual ULong_t GetIncrement() const =0
virtual TStreamerInfoActions::TActionSequence * GetReadMemberWiseActions(Int_t version)=0
void(* CreateIterators_t)(void *collection, void **begin_arena, void **end_arena, TVirtualCollectionProxy *proxy)
virtual TClass::ObjectPtr NewObjectArray(Int_t nElements) const
virtual void Destructor(void *p, Bool_t dtorOnly=kFALSE) const
virtual EDataType GetType() const =0
void *(* CopyIterator_t)(void *dest, const void *source)
char * operator[](UInt_t idx) const
virtual void * NewArray(Int_t nElements, void *arena) const
virtual void Clear(const char *opt="")=0
virtual TStreamerInfoActions::TActionSequence * GetWriteMemberWiseActions()=0
virtual void * New() const
void *(* Next_t)(void *iter, const void *end)
virtual void PopProxy()=0
virtual void DeleteArray(void *p, Bool_t dtorOnly=kFALSE) const
virtual TClass * GetValueClass() const =0
virtual TClass::ObjectPtr NewObject(void *arena) const
virtual void Commit(void *)=0
TVirtualCollectionProxy(TClass *cl)
virtual TClass::ObjectPtr NewObject() const
virtual void * At(UInt_t idx)=0
virtual Int_t GetCollectionType() const =0
virtual Next_t GetFunctionNext(Bool_t read=kTRUE)=0
virtual DeleteTwoIterators_t GetFunctionDeleteTwoIterators(Bool_t read=kTRUE)=0
virtual UInt_t Size() const =0
virtual void * NewArray(Int_t nElements) const
void(* DeleteTwoIterators_t)(void *begin, void *end)
void(* DeleteIterator_t)(void *iter)
virtual void * New(void *arena) const
static const Int_t fgIteratorArenaSize
virtual TVirtualCollectionProxy * Generate() const =0
virtual CreateIterators_t GetFunctionCreateIterators(Bool_t read=kTRUE)=0
virtual TClass::ObjectPtr NewObjectArray(Int_t nElements, void *arena) const
virtual ~TVirtualCollectionProxy()
virtual void * Allocate(UInt_t n, Bool_t forceDelete)=0
virtual TStreamerInfoActions::TActionSequence * GetConversionReadMemberWiseActions(TClass *oldClass, Int_t version)=0
TVirtualCollectionProxy & operator=(const TVirtualCollectionProxy &)=delete
virtual DeleteIterator_t GetFunctionDeleteIterator(Bool_t read=kTRUE)=0
TVirtualCollectionProxy(const TVirtualCollectionProxy &)=delete
virtual CopyIterator_t GetFunctionCopyIterator(Bool_t read=kTRUE)=0
virtual Bool_t HasPointers() const =0
virtual TClass * GetCollectionClass() const
virtual void Insert(const void *data, void *container, size_t size)=0
#define dest(otri, vertexptr)