12 #ifndef ROOT_TVirtualCollectionProxy 13 #define ROOT_TVirtualCollectionProxy 32 #define ROOT_COLLECTIONPROXY_VERSION 3 36 class TActionSequence;
47 virtual void UpdateValueClass(
const TClass *oldcl,
TClass *newcl) = 0;
54 kIsAssociative =
BIT(2),
65 void *objectstart) : fProxy(proxy) { fProxy->
PushProxy(objectstart); }
81 virtual Int_t GetCollectionType()
const = 0;
84 virtual ULong_t GetIncrement()
const = 0;
90 virtual void *
New()
const {
94 virtual void *
New(
void *arena)
const {
96 return fClass.
GetClass()==0 ? 0 : fClass->
New(arena);
120 virtual UInt_t Sizeof()
const = 0;
123 virtual void PushProxy(
void *objectstart) = 0;
126 virtual void PopProxy() = 0;
129 virtual Bool_t HasPointers()
const = 0;
132 virtual TClass *GetValueClass()
const = 0;
138 virtual void *At(
UInt_t idx) = 0;
141 virtual void Clear(
const char *opt =
"") = 0;
149 virtual void Commit(
void*) = 0;
151 virtual void Insert(
const void *
data,
void *container,
size_t size) = 0;
163 static const Int_t fgIteratorArenaSize = 16;
166 virtual CreateIterators_t GetFunctionCreateIterators(
Bool_t read =
kTRUE) = 0;
171 typedef void* (*CopyIterator_t)(
void *
dest,
const void *source);
172 virtual CopyIterator_t GetFunctionCopyIterator(
Bool_t read =
kTRUE) = 0;
178 typedef void* (*Next_t)(
void *iter,
const void *end);
186 typedef void (*DeleteIterator_t)(
void *iter);
187 typedef void (*DeleteTwoIterators_t)(
void *begin,
void *end);
189 virtual DeleteIterator_t GetFunctionDeleteIterator(
Bool_t read =
kTRUE) = 0;
190 virtual DeleteTwoIterators_t GetFunctionDeleteTwoIterators(
Bool_t read =
kTRUE) = 0;
TVirtualCollectionProxy * fProxy
virtual void * NewArray(Int_t nElements) const
virtual Int_t GetProperties() const
char * operator[](UInt_t idx) const
virtual void PushProxy(void *objectstart)=0
virtual TClass * GetCollectionClass() const
virtual void * New() const
virtual void * NewArray(Int_t nElements, void *arena) const
Type GetType(const std::string &Name)
void DeleteArray(void *ary, Bool_t dtorOnly=kFALSE)
Explicitly call operator delete[] for an array.
TClass * GetClass() const
TVirtualCollectionProxy::Next_t Next_t
TPushPop(TVirtualCollectionProxy *proxy, void *objectstart)
TVirtualCollectionProxy()
virtual void Destructor(void *p, Bool_t dtorOnly=kFALSE) const
void * NewArray(Long_t nElements, ENewType defConstructor=kClassNew) const
Return a pointer to a newly allocated array of objects of this class.
void Destructor(void *obj, Bool_t dtorOnly=kFALSE)
Explicitly call destructor for object.
virtual void * New(void *arena) const
The ROOT global object gROOT contains a list of all defined classes.
virtual void PopProxy()=0
TCppObject_t Allocate(TCppType_t type)
Binding & operator=(OUT(*fun)(void))
TClassRef is used to implement a permanent reference to a TClass object.
typedef void((*Func_t)())
#define dest(otri, vertexptr)
virtual ~TVirtualCollectionProxy()
TVirtualCollectionProxy(TClass *cl)
virtual void DeleteArray(void *p, Bool_t dtorOnly=kFALSE) const
void * New(ENewType defConstructor=kClassNew, Bool_t quiet=kFALSE) const
Return a pointer to a newly allocated object of this class.