18#ifndef ROOT_TGenericClassInfo
19#define ROOT_TGenericClassInfo
24#include <unordered_map>
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;
55 TVirtualIsAProxy *fIsA;
65 TClassStreamer *fStreamer;
68 TVirtualCollectionProxy *fCollectionProxy;
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,
83 TVirtualIsAProxy *isa,
Int_t pragmabits,
Int_t sizof, std::size_t alignof_ = 0);
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,
87 TVirtualIsAProxy *isa,
Int_t pragmabits,
Int_t sizof, std::size_t alignof_ = 0);
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;
111 TVirtualIsAProxy *GetIsA()
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);
120 void AdoptAlternate(ROOT::TClassAlt *alt);
121 bool AdoptMemberStreamer(
const char *
name, TMemberStreamer *strm);
122 Short_t AdoptStreamer(TClassStreamer*);
123 Short_t AdoptCollectionProxy(TVirtualCollectionProxy*);
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;
RInterface & operator=(const RInterface &)=default
Copy-assignment operator for RInterface.
TClass * IsA() const override
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 *)
Special implementation of ROOT::RRangeCast for TCollection, including a check that the cast target ty...
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)