Transition to NewIO
[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*/,
33                             const void */*object*/, UInt_t /*size*/){;}
34     //{return (*streamb)(b,object,size);}
35   virtual void ObjectDump(void */*p*/){;}
36   virtual const char  * GetClassName(){ return 0;}
37   virtual TClass *    GetClass(){return 0;} 
38   virtual TDataType * GetDataType(){return 0;}
39   const UInt_t Size(){return fSize;}
40   static AliClassInfo * FindClassInfo(const char * name);
41   static AliClassInfo * GenerClassInfo(const char * clname);
42   static void  GenerClassInfoCode(const char * clname, Bool_t load,
43                                     const char *incpath, const char *outfile);
44   const TList  &  GetListOfClass(){return fgList;} 
45 protected:
46   static Bool_t GenerClassInterface(const char * clname, FILE * fout);
47   static TList fgList; // list of loaded class
48   UInt_t   fSize;        //size of object
49   ClassDef(AliClassInfo,1) 
50 };
51
52
53 #endif //ALICLASSINFO_H
54