Transition to NewIO
[u/mrichter/AliRoot.git] / CONTAINERS / AliClassInfo.h
CommitLineData
08edbb90 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"
20class TDataType;
21
22
23
24class AliClassInfo : public TNamed {
25public:
26 AliClassInfo(){;}
27 virtual ~AliClassInfo(){;}
88cb7938 28 virtual void CTORBuffer(void * /*pointer*/, UInt_t /*size=1*/){;}
08edbb90 29 // {return (*ctorbuffer)(p,size);}
88cb7938 30 virtual void DTORBuffer(void * /*pointer*/, UInt_t /*size=1*/){;}
08edbb90 31 //{return (*dtorbuffer)(p,size);}
88cb7938 32 virtual void StreamBuffer(TBuffer& /*b*/,
33 const void */*object*/, UInt_t /*size*/){;}
08edbb90 34 //{return (*streamb)(b,object,size);}
88cb7938 35 virtual void ObjectDump(void */*p*/){;}
08edbb90 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;}
45protected:
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