12 #ifndef ROOT_TClassTable
13 #define ROOT_TClassTable
33 class TMapTypeToClassRec;
36 class TClassTable :
public TObject {
38 friend void ROOT::ResetClassVersion(TClass*,
const char*, Short_t);
42 typedef ROOT::TMapTypeToClassRec IdMap_t;
44 static ROOT::TClassAlt **fgAlternate;
45 static ROOT::TClassRec **fgTable;
46 static ROOT::TClassRec **fgSortedTable;
47 static IdMap_t *fgIdMap;
49 static UInt_t fgTally;
50 static Bool_t fgSorted;
51 static UInt_t fgCursor;
55 static ROOT::TClassRec *FindElementImpl(
const char *cname, Bool_t insert);
56 static ROOT::TClassRec *FindElement(
const char *cname, Bool_t insert=kFALSE);
57 static void SortTable();
59 static Bool_t CheckClassTableInit();
64 kNoStreamer = 0x01, kNoInputOperator = 0x02, kAutoStreamer = 0x04,
65 kHasVersion = 0x08, kHasCustomStreamerMember = 0x10
70 static void Add(
const char *cname, Version_t
id,
71 const std::type_info &info, DictFuncPtr_t dict,
73 static void Add(TProtoClass *protoClass);
74 static void AddAlternate(
const char *normname,
const char *alternate);
75 static char *At(UInt_t index);
77 static Bool_t Check(
const char *cname, std::string &normname);
78 static Version_t GetID(
const char *cname);
79 static Int_t GetPragmaBits(
const char *name);
80 static DictFuncPtr_t GetDict(
const char *cname);
81 static DictFuncPtr_t GetDict(
const std::type_info& info);
82 static DictFuncPtr_t GetDictNorm(
const char *cname);
83 static TProtoClass *GetProto(
const char *cname);
84 static TProtoClass *GetProtoNorm(
const char *cname);
87 void Print(Option_t *option=
"")
const;
88 static void PrintTable();
89 static void Remove(
const char *cname);
90 static void Terminate();
92 ClassDef(TClassTable,0)
95 R__EXTERN TClassTable *gClassTable;
98 extern void AddClass(
const char *cname, Version_t
id, DictFuncPtr_t dict,
100 extern void RemoveClass(
const char *cname);