Containers definition
[u/mrichter/AliRoot.git] / CONTAINERS / AliArrayVT.h
CommitLineData
08edbb90 1#ifndef ALIARRAYVT_H
2#define ALIARRAYVT_H
3
4/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
6
7/* $Id$ */
8
9
10class AliArrayVT: public TObject{
11 //
12 //function object
13 //for AliObjectArray
14 //
15public:
16 AliArrayVT(){cmp=0; mkbuffer=0; delbuffer=0; stream=0; dump=0;fClass=0;}
17
18 int Compare(void* p1, void* p2) { return (*cmp)(p1,p2);}
19 char * MakeBuffer(UInt_t size) { return (*mkbuffer)(size);}
20 void DeleteBuffer(void * p) { return (*delbuffer)(p);}
21 void CTORBuffer(void *p, const UInt_t size) { return (*ctorbuffer)(p,size);}
22 void DTORBuffer(void * p, const UInt_t size) { return (*dtorbuffer)(p,size);}
23 void ObjectCTOR(void *p) { return (*objectctor)(p);}
24 void ObjectDTOR(void * p) { return (*objectdtor)(p);}
25 void StreamObject(TBuffer& b, void * object) {return (*stream)(b, object);}
26 void StreamBuffer(TBuffer& b, const void *object, UInt_t size) {return (*streamb)(b,object,size);}
27 void ClassDump(void *p) { return (*dump)(p);}
28public:
29 int (*cmp)(void*, void*);
30 char* (*mkbuffer)(UInt_t );
31 void (*delbuffer)(void*);
32 void (*objectctor)(void*);
33 void (*objectdtor)(void*);
34 void (*ctorbuffer)(void*, UInt_t size);
35 void (*dtorbuffer)(void*, UInt_t size);
36
37 void (*stream)(TBuffer &, void *);
38 void (*streamb)(TBuffer &, const void *,UInt_t);
39 void (*dump)(void*);
40 TString fClassName; //class name of the object
41 TClass * fClass; //class type of the object
42 UInt_t fSize; //size of object
43 ClassDef(AliArrayVT,0)
44};
45
46#endif //ALIARRAYVT
47