Containers definition
[u/mrichter/AliRoot.git] / CONTAINERS / AliClassInfo.h
1 #ifndef ALICLASSINFO_H
2 #define ALICLASSINFO_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 //                                                                           //
10 //  AliClassInfo                                                             //
11 //                                                                           //
12 // Defined to make unified interface to primitive types (in Root described by//
13 // TDataType) and TClass.                                                    //
14 //                                                                           //
15 //  Origin:  Marian Ivanov, Uni. of Bratislava, ivanov@fmph.uniba.sk         // 
16 ///////////////////////////////////////////////////////////////////////////////
17
18
19 #include "TNamed.h"
20 class TDataType;
21
22
23
24 class AliClassInfo : public TNamed { 
25 public:   
26   AliClassInfo(){;}
27   virtual ~AliClassInfo(){;}
28   virtual void CTORBuffer(void * pointer, UInt_t size=1){;}
29     //  {return (*ctorbuffer)(p,size);}
30   virtual void DTORBuffer(void * pointer, UInt_t size=1){;}
31     //{return (*dtorbuffer)(p,size);}
32   virtual void StreamBuffer(TBuffer& b, const void *object, UInt_t size){;}
33     //{return (*streamb)(b,object,size);}
34   virtual void ObjectDump(void *p){;}
35   virtual const char  * GetClassName(){ return 0;}
36   virtual TClass *    GetClass(){return 0;} 
37   virtual TDataType * GetDataType(){return 0;}
38   const UInt_t Size(){return fSize;}
39   static AliClassInfo * FindClassInfo(const char * name);
40   static AliClassInfo * GenerClassInfo(const char * clname);
41   static void  GenerClassInfoCode(const char * clname, Bool_t load,
42                                     const char *incpath, const char *outfile);
43   const TList  &  GetListOfClass(){return fgList;} 
44 protected:
45   static Bool_t GenerClassInterface(const char * clname, FILE * fout);
46   static TList fgList; // list of loaded class
47   UInt_t   fSize;        //size of object
48   ClassDef(AliClassInfo,1) 
49 };
50
51
52 #endif //ALICLASSINFO_H
53