12 #ifndef ROOT_TGenericClassInfo
13 #define ROOT_TGenericClassInfo
20 class TVirtualIsAProxy;
30 std::string GetDemangledTypeName(
const std::type_info&);
34 class TCollectionProxyInfo;
37 class TGenericClassInfo {
42 const Internal::TInitBehavior *fAction;
44 const char *fClassName;
45 const char *fDeclFileName;
47 DictFuncPtr_t fDictionary;
48 const std::type_info &fInfo;
49 const char *fImplFileName;
51 TVirtualIsAProxy *fIsA;
54 ResetAfterMergeFunc_t fResetAfterMerge;
56 NewArrFunc_t fNewArray;
58 DelArrFunc_t fDeleteArray;
59 DesFunc_t fDestructor;
60 DirAutoAdd_t fDirAutoAdd;
61 TClassStreamer *fStreamer;
62 ClassStreamerFunc_t fStreamerFunc;
63 ClassConvStreamerFunc_t fConvStreamerFunc;
64 TVirtualCollectionProxy *fCollectionProxy;
67 Detail::TCollectionProxyInfo *fCollectionProxyInfo;
68 Detail::TCollectionProxyInfo *fCollectionStreamerInfo;
69 std::vector<ROOT::Internal::TSchemaHelper> fReadRules;
70 std::vector<ROOT::Internal::TSchemaHelper> fReadRawRules;
73 TGenericClassInfo(
const char *fullClassname,
74 const char *declFileName, Int_t declFileLine,
75 const std::type_info &info,
const Internal::TInitBehavior *action,
76 DictFuncPtr_t dictionary,
77 TVirtualIsAProxy *isa, Int_t pragmabits, Int_t sizof);
79 TGenericClassInfo(
const char *fullClassname, Int_t version,
80 const char *declFileName, Int_t declFileLine,
81 const std::type_info &info,
const Internal::TInitBehavior *action,
82 DictFuncPtr_t dictionary,
83 TVirtualIsAProxy *isa, Int_t pragmabits, Int_t sizof);
85 TGenericClassInfo(
const char *fullClassname, Int_t version,
86 const char *declFileName, Int_t declFileLine,
87 const Internal::TInitBehavior *action,
88 DictFuncPtr_t dictionary, Int_t pragmabits);
90 void Init(Int_t pragmabits);
93 const Internal::TInitBehavior &GetAction()
const;
95 const char *GetClassName()
const;
96 Detail::TCollectionProxyInfo *GetCollectionProxyInfo()
const;
97 Detail::TCollectionProxyInfo *GetCollectionStreamerInfo()
const;
98 const char *GetDeclFileName()
const;
99 Int_t GetDeclFileLine()
const;
100 DelFunc_t GetDelete()
const;
101 DelArrFunc_t GetDeleteArray()
const;
102 DesFunc_t GetDestructor()
const;
103 DirAutoAdd_t GetDirectoryAutoAdd()
const;
104 const char *GetImplFileName();
105 Int_t GetImplFileLine();
106 const std::type_info &GetInfo()
const;
107 TVirtualIsAProxy *GetIsA()
const;
108 NewFunc_t GetNew()
const;
109 NewArrFunc_t GetNewArray()
const;
110 const std::vector<ROOT::Internal::TSchemaHelper> &GetReadRawRules()
const;
111 const std::vector<ROOT::Internal::TSchemaHelper> &GetReadRules()
const;
112 Int_t GetVersion()
const;
114 TClass *IsA(
const void *obj);
116 Short_t AdoptStreamer(TClassStreamer*);
117 Short_t AdoptCollectionProxy(TVirtualCollectionProxy*);
118 void AdoptCollectionProxyInfo(Detail::TCollectionProxyInfo*);
119 void AdoptCollectionStreamerInfo(Detail::TCollectionProxyInfo*);
120 Int_t SetDeclFile(
const char *file, Int_t line);
121 void SetDelete(DelFunc_t deleteFunc);
122 void SetDeleteArray(DelArrFunc_t deleteArrayFunc);
123 void SetDestructor(DesFunc_t destructorFunc);
124 void SetDirectoryAutoAdd(DirAutoAdd_t dirAutoAdd);
125 void SetFromTemplate();
126 Int_t SetImplFile(
const char *file, Int_t line);
127 void SetMerge(MergeFunc_t);
128 void SetResetAfterMerge(ResetAfterMergeFunc_t);
129 void SetNew(NewFunc_t newFunc);
130 void SetNewArray(NewArrFunc_t newArrayFunc);
131 void SetReadRawRules(
const std::vector<ROOT::Internal::TSchemaHelper>& rules );
132 void SetReadRules(
const std::vector<ROOT::Internal::TSchemaHelper>& rules );
133 Short_t SetStreamer(ClassStreamerFunc_t);
134 void SetStreamerFunc(ClassStreamerFunc_t);
135 void SetConvStreamerFunc(ClassConvStreamerFunc_t);
136 Short_t SetVersion(Short_t version);
140 void CreateRuleSet( std::vector<ROOT::Internal::TSchemaHelper>& vect, Bool_t ProcessReadRules );
141 TGenericClassInfo(
const TGenericClassInfo&);
142 TGenericClassInfo& operator=(
const TGenericClassInfo&);