18#ifndef ROOT_TGenericClassInfo
19#define ROOT_TGenericClassInfo
24#include <unordered_map>
38 class TCollectionProxyInfo;
41 class TGenericClassInfo {
46 const Internal::TInitBehavior *fAction;
48 const char *fClassName;
49 const char *fDeclFileName;
52 const std::type_info &fInfo;
53 const char *fImplFileName;
70 std::size_t fAlignment;
72 std::string fRNTupleSoARecord;
73 Detail::TCollectionProxyInfo *fCollectionProxyInfo;
74 Detail::TCollectionProxyInfo *fCollectionStreamerInfo;
75 std::vector<ROOT::Internal::TSchemaHelper> fReadRules;
76 std::vector<ROOT::Internal::TSchemaHelper> fReadRawRules;
77 std::vector<ROOT::TClassAlt*> fAlternate;
78 std::unordered_map<std::string, TMemberStreamer *> fAdoptedMemberStreamers;
81 TGenericClassInfo(
const char *fullClassname,
const char *declFileName,
Int_t declFileLine,
82 const std::type_info &info,
const Internal::TInitBehavior *action,
DictFuncPtr_t dictionary,
85 TGenericClassInfo(
const char *fullClassname,
Int_t version,
const char *declFileName,
Int_t declFileLine,
86 const std::type_info &info,
const Internal::TInitBehavior *action,
DictFuncPtr_t dictionary,
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;
118 TClass *IsA(
const void *obj);
124 void AdoptCollectionProxyInfo(Detail::TCollectionProxyInfo*);
125 void AdoptCollectionStreamerInfo(Detail::TCollectionProxyInfo*);
127 void SetDelete(DelFunc_t deleteFunc);
128 void SetDeleteArray(DelArrFunc_t deleteArrayFunc);
129 void SetDestructor(DesFunc_t destructorFunc);
130 void SetDirectoryAutoAdd(DirAutoAdd_t dirAutoAdd);
131 void SetFromTemplate();
133 void SetMerge(MergeFunc_t);
134 void SetResetAfterMerge(ResetAfterMergeFunc_t);
135 void SetNew(NewFunc_t newFunc);
136 void SetNewArray(NewArrFunc_t newArrayFunc);
137 void SetReadRawRules(
const std::vector<ROOT::Internal::TSchemaHelper>& rules );
138 void SetReadRules(
const std::vector<ROOT::Internal::TSchemaHelper>& rules );
143 void SetRNTupleSoARecord(
const std::string &recordName);
147 void CreateRuleSet( std::vector<ROOT::Internal::TSchemaHelper>& vect,
Bool_t ProcessReadRules );
148 TGenericClassInfo(
const TGenericClassInfo &) =
delete;
149 TGenericClassInfo& operator=(
const TGenericClassInfo &) =
delete;
interop::TCppScope_t fClass
bool Bool_t
Boolean (0=false, 1=true) (bool)
int Int_t
Signed integer 4 bytes (int)
short Short_t
Signed Short integer 2 bytes (short)
TClass *(* DictFuncPtr_t)()
void(* ClassStreamerFunc_t)(TBuffer &, void *)
void(* ClassConvStreamerFunc_t)(TBuffer &, void *, const TClass *)
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)
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)