12 #ifndef ROOT_TVirtualCollectionProxy 13 #define ROOT_TVirtualCollectionProxy 34 #define ROOT_COLLECTIONPROXY_VERSION 3 38 class TActionSequence;
49 virtual void UpdateValueClass(
const TClass *oldcl,
TClass *newcl) = 0;
56 kIsAssociative =
BIT(2),
67 void *objectstart) : fProxy(proxy) { fProxy->
PushProxy(objectstart); }
83 virtual Int_t GetCollectionType()
const = 0;
86 virtual ULong_t GetIncrement()
const = 0;
92 virtual void *
New()
const {
96 virtual void *
New(
void *arena)
const {
98 return fClass.
GetClass()==0 ? 0 : fClass->
New(arena);
122 virtual UInt_t Sizeof()
const = 0;
125 virtual void PushProxy(
void *objectstart) = 0;
128 virtual void PopProxy() = 0;
131 virtual Bool_t HasPointers()
const = 0;
134 virtual TClass *GetValueClass()
const = 0;
140 virtual void *At(
UInt_t idx) = 0;
143 virtual void Clear(
const char *opt =
"") = 0;
151 virtual void Commit(
void*) = 0;
153 virtual void Insert(
const void *
data,
void *container,
size_t size) = 0;
165 static const Int_t fgIteratorArenaSize = 16;
168 virtual CreateIterators_t GetFunctionCreateIterators(
Bool_t read =
kTRUE) = 0;
173 typedef void* (*CopyIterator_t)(
void *
dest,
const void *source);
174 virtual CopyIterator_t GetFunctionCopyIterator(
Bool_t read =
kTRUE) = 0;
180 typedef void* (*Next_t)(
void *iter,
const void *end);
188 typedef void (*DeleteIterator_t)(
void *iter);
189 typedef void (*DeleteTwoIterators_t)(
void *begin,
void *end);
191 virtual DeleteIterator_t GetFunctionDeleteIterator(
Bool_t read =
kTRUE) = 0;
192 virtual DeleteTwoIterators_t GetFunctionDeleteTwoIterators(
Bool_t read =
kTRUE) = 0;
TVirtualCollectionProxy * fProxy
double read(const std::string &file_name)
reading
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)
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.