18#ifndef ROOT_TGenericClassInfo
19#define ROOT_TGenericClassInfo
37 class TCollectionProxyInfo;
40 class TGenericClassInfo {
45 const Internal::TInitBehavior *fAction;
47 const char *fClassName;
48 const char *fDeclFileName;
51 const std::type_info &fInfo;
52 const char *fImplFileName;
70 Detail::TCollectionProxyInfo *fCollectionProxyInfo;
71 Detail::TCollectionProxyInfo *fCollectionStreamerInfo;
72 std::vector<ROOT::Internal::TSchemaHelper> fReadRules;
73 std::vector<ROOT::Internal::TSchemaHelper> fReadRawRules;
74 std::vector<ROOT::TClassAlt*> fAlternate;
77 TGenericClassInfo(
const char *fullClassname,
78 const char *declFileName,
Int_t declFileLine,
79 const std::type_info &info,
const Internal::TInitBehavior *action,
83 TGenericClassInfo(
const char *fullClassname,
Int_t version,
84 const char *declFileName,
Int_t declFileLine,
85 const std::type_info &info,
const Internal::TInitBehavior *action,
89 TGenericClassInfo(
const char *fullClassname,
Int_t version,
90 const char *declFileName,
Int_t declFileLine,
91 const Internal::TInitBehavior *action,
97 const Internal::TInitBehavior &GetAction()
const;
99 const char *GetClassName()
const;
100 Detail::TCollectionProxyInfo *GetCollectionProxyInfo()
const;
101 Detail::TCollectionProxyInfo *GetCollectionStreamerInfo()
const;
102 const char *GetDeclFileName()
const;
103 Int_t GetDeclFileLine()
const;
108 const char *GetImplFileName();
109 Int_t GetImplFileLine();
110 const std::type_info &GetInfo()
const;
114 const std::vector<ROOT::Internal::TSchemaHelper> &GetReadRawRules()
const;
115 const std::vector<ROOT::Internal::TSchemaHelper> &GetReadRules()
const;
116 Int_t GetVersion()
const;
123 void AdoptCollectionProxyInfo(Detail::TCollectionProxyInfo*);
124 void AdoptCollectionStreamerInfo(Detail::TCollectionProxyInfo*);
126 void SetDelete(DelFunc_t deleteFunc);
127 void SetDeleteArray(DelArrFunc_t deleteArrayFunc);
128 void SetDestructor(DesFunc_t destructorFunc);
129 void SetDirectoryAutoAdd(DirAutoAdd_t dirAutoAdd);
130 void SetFromTemplate();
132 void SetMerge(MergeFunc_t);
133 void SetResetAfterMerge(ResetAfterMergeFunc_t);
134 void SetNew(NewFunc_t newFunc);
135 void SetNewArray(NewArrFunc_t newArrayFunc);
136 void SetReadRawRules(
const std::vector<ROOT::Internal::TSchemaHelper>& rules );
137 void SetReadRules(
const std::vector<ROOT::Internal::TSchemaHelper>& rules );
145 void CreateRuleSet( std::vector<ROOT::Internal::TSchemaHelper>& vect,
Bool_t ProcessReadRules );
146 TGenericClassInfo(
const TGenericClassInfo &) =
delete;
147 TGenericClassInfo&
operator=(
const TGenericClassInfo &) =
delete;
TClass *(* DictFuncPtr_t)()
void(* ClassStreamerFunc_t)(TBuffer &, void *)
void(* ClassConvStreamerFunc_t)(TBuffer &, void *, const TClass *)
Binding & operator=(OUT(*fun)(void))
TClass * IsA() const override
TClass instances represent classes, structs and namespaces in the ROOT type system.
Defines a common interface to inspect/change the contents of an object that represents a collection.
std::string GetDemangledTypeName(const std::type_info &t)
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...
void(* DirAutoAdd_t)(void *, TDirectory *)
void(* ResetAfterMergeFunc_t)(void *, TFileMergeInfo *)
void(* DesFunc_t)(void *)
void(* DelFunc_t)(void *)
void *(* NewArrFunc_t)(Long_t size, void *arena)
void(* DelArrFunc_t)(void *)
void *(* NewFunc_t)(void *)
Long64_t(* MergeFunc_t)(void *, TCollection *, TFileMergeInfo *)
void Init(TClassEdit::TInterpreterLookupHelper *helper)