14 #include "TClassEdit.h" 30 constexpr
static const char tag[] =
"TypeNameExtraction<";
31 const char* start = strstr(derived_funcname, tag);
34 start +=
sizeof(tag) - 1;
35 const char* end = strstr(start,
">::Get(");
39 TClassEdit::GetNormalizedName(ret, std::string_view(start, end - start));
67 std::string& nameMember) {
69 if (nameMember.empty()) {
70 TClassEdit::GetNormalizedName(nameMember, name);
84 const char *declFileName,
Int_t declFileLine,
88 : fAction(action), fClass(0), fClassName(fullClassname),
89 fDeclFileName(declFileName), fDeclFileLine(declFileLine),
90 fDictionary(dictionary), fInfo(info),
91 fImplFileName(0), fImplFileLine(0),
94 fMerge(0),fResetAfterMerge(0),fNew(0),fNewArray(0),fDelete(0),fDeleteArray(0),fDestructor(0), fDirAutoAdd(0), fStreamer(0),
95 fStreamerFunc(0), fConvStreamerFunc(0), fCollectionProxy(0), fSizeof(sizof), fPragmaBits(pragmabits),
96 fCollectionProxyInfo(0), fCollectionStreamerInfo(0)
104 const char *declFileName,
Int_t declFileLine,
124 class TForNamespace {};
127 const char *declFileName,
Int_t declFileLine,
240 ::Fatal(
"TClass::TClass",
"ROOT system not initialized");
296 if ( vect.empty() ) {
312 std::vector<Internal::TSchemaHelper>::iterator it;
313 for( it = vect.begin(); it != vect.end(); ++it ) {
326 if( ProcessReadRules ) {
335 ::Warning(
"TGenericClassInfo",
"The rule for class: \"%s\": version, \"%s\" and data members: \"%s\" has been skipped because %s.",
virtual const char * GetName() const
Returns name of object.
void SetStreamerFunc(ClassStreamerFunc_t)
virtual UInt_t GetUniqueID() const
Return the unique object id.
Bool_t AddRule(TSchemaRule *rule, EConsistencyCheck checkConsistency=kCheckAll, TString *errmsg=0)
The consistency check always fails if the TClass object was not set! if checkConsistency is: kNoCheck...
const std::type_info & GetInfo() const
const char * GetClassName() const
void(* ReadRawFuncPtr_t)(char *, TBuffer &)
void(* ClassStreamerFunc_t)(TBuffer &, void *)
DelArrFunc_t fDeleteArray
Detail::TCollectionProxyInfo * fCollectionProxyInfo
void SetReadRawFunctionPointer(ReadRawFuncPtr_t ptr)
Set the pointer to the function to be run for the rule (if it is a raw read rule).
Namespace for new ROOT classes and functions.
void SetDelete(DelFunc_t deleteFunc)
TCollection * GetListOfClasses() const
void(* DelArrFunc_t)(void *)
void Fatal(const char *location, const char *msgfmt,...)
void SetDeclFile(const char *name, int line)
Long64_t(* MergeFunc_t)(void *, TCollection *, TFileMergeInfo *)
void SetDelete(ROOT::DelFunc_t deleteFunc)
Install a new wrapper around 'delete'.
void SetConvStreamerFunc(ClassConvStreamerFunc_t)
const std::type_info & fInfo
void SetConvStreamerFunc(ClassConvStreamerFunc_t strm)
Set a wrapper/accessor function around this class custom conversion streamer.
R__EXTERN TVirtualMutex * gInterpreterMutex
void CreateRuleSet(std::vector< ROOT::Internal::TSchemaHelper > &vect, Bool_t ProcessReadRules)
Attach the schema evolution information to TClassObject.
void SetDeleteArray(ROOT::DelArrFunc_t deleteArrayFunc)
Install a new wrapper around 'delete []'.
R__EXTERN TVirtualMutex * gROOTMutex
TVirtualIsAProxy * GetIsA() const
Short_t AdoptCollectionProxy(TVirtualCollectionProxy *)
Short_t SetVersion(Short_t version)
DelFunc_t GetDelete() const
Bool_t SetVersion(const TString &version)
Set the version string - returns kFALSE if the format is incorrect.
ClassConvStreamerFunc_t fConvStreamerFunc
void AdoptStreamer(TClassStreamer *strm)
Adopt a TClassStreamer object.
const TInitBehavior * DefineBehavior(void *, void *)
void SetClassSize(Int_t sizof)
void SetBit(UInt_t f, Bool_t set)
Set or unset the user status bits as specified in f.
void SetMerge(MergeFunc_t)
void SetTargetClass(const TString &classname)
Set the target class of this rule (i.e. the in memory class).
void SetAttributes(const TString &attributes)
Set the attributes code of this rule.
ResetAfterMergeFunc_t fResetAfterMerge
DirAutoAdd_t GetDirectoryAutoAdd() const
The TNamed class is the base class for all named ROOT classes.
static Bool_t Initialized()
Return kTRUE if the TROOT object has been initialized.
const char * GetDeclFileName() const
void SetStreamerFunc(ClassStreamerFunc_t strm)
Set a wrapper/accessor function around this class custom streamer.
const char * fDeclFileName
void SetReadRules(const std::vector< ROOT::Internal::TSchemaHelper > &rules)
void SetDirectoryAutoAdd(DirAutoAdd_t dirAutoAdd)
TClass * IsA(const void *obj)
void *(* NewFunc_t)(void *)
const char * fImplFileName
Short_t SetStreamer(ClassStreamerFunc_t)
TClass *(* DictFuncPtr_t)()
Int_t SetDeclFile(const char *file, Int_t line)
void SetSource(const TString &source)
Set the list of source members.
void(* ClassConvStreamerFunc_t)(TBuffer &, void *, const TClass *)
void SetSourceClass(const TString &classname)
Set the source class of this rule (i.e. the onfile class).
Short_t AdoptStreamer(TClassStreamer *)
void SetInclude(const TString &include)
Set the comma separated list of header files to include to be able to compile this rule...
void(* ResetAfterMergeFunc_t)(void *, TFileMergeInfo *)
std::vector< ROOT::Internal::TSchemaHelper > fReadRawRules
R__EXTERN TROOT * gROOTLocal
const Internal::TInitBehavior * fAction
void SetNew(ROOT::NewFunc_t newFunc)
Install a new wrapper around 'new'.
void ResetClassVersion(TClass *, const char *, Short_t)
Global function to update the version number.
void *(* NewArrFunc_t)(Long_t size, void *arena)
const std::vector< ROOT::Internal::TSchemaHelper > & GetReadRawRules() const
static void SetfgIsA(atomic_TClass_ptr &isA, TClass *(*dictfun)())
void SetDestructor(ROOT::DesFunc_t destructorFunc)
Install a new wrapper around the destructor.
Int_t SetImplFile(const char *file, Int_t line)
void SetTarget(const TString &target)
Set the target member of this rule (i.e. the in memory data member).
TClassStreamer * fStreamer
void AdoptCollectionStreamerInfo(Detail::TCollectionProxyInfo *)
void SetDirectoryAutoAdd(ROOT::DirAutoAdd_t dirAutoAddFunc)
Install a new wrapper around the directory auto add function.
NewArrFunc_t GetNewArray() const
const Internal::TInitBehavior & GetAction() const
void SetCode(const TString &code)
Set the source code of this rule.
Detail::TCollectionProxyInfo * fCollectionStreamerInfo
ClassStreamerFunc_t fStreamerFunc
The ROOT global object gROOT contains a list of all defined classes.
std::atomic< TClass * > atomic_TClass_ptr
Bool_t SetChecksum(const TString &checksum)
Set the checksum string - returns kFALSE if the format is incorrect.
static void SetInstance(::ROOT::TGenericClassInfo &R__instance, NewFunc_t, NewArrFunc_t, DelFunc_t, DelArrFunc_t, DesFunc_t)
void Warning(const char *location, const char *msgfmt,...)
const char * GetImplFileName()
void SetDestructor(DesFunc_t destructorFunc)
void SetCollectionProxy(const ROOT::Detail::TCollectionProxyInfo &)
Create the collection proxy object (and the streamer object) from using the information in the TColle...
#define R__LOCKGUARD2(mutex)
virtual void Unregister(const char *classname) const =0
std::vector< ROOT::Internal::TSchemaHelper > fReadRules
void(* ReadFuncPtr_t)(char *, TVirtualObject *)
void SetReadFunctionPointer(ReadFuncPtr_t ptr)
Set the pointer to the function to be run for the rule (if it is a read rule).
TVirtualCollectionProxy * fCollectionProxy
double func(double *x, double *p)
void SetDeleteArray(DelArrFunc_t deleteArrayFunc)
void SetEmbed(Bool_t embed)
Set whether this rule should be save in the ROOT file (if true)
Detail::TCollectionProxyInfo * GetCollectionStreamerInfo() const
void Init(Int_t pragmabits)
void SetNew(NewFunc_t newFunc)
void(* DelFunc_t)(void *)
void SetNewArray(NewArrFunc_t newArrayFunc)
Detail::TCollectionProxyInfo * GetCollectionProxyInfo() const
void AddImplFile(const char *filename, int line)
void SetResetAfterMerge(ResetAfterMergeFunc_t)
void(* DirAutoAdd_t)(void *, TDirectory *)
DictFuncPtr_t fDictionary
DesFunc_t GetDestructor() const
Int_t GetDeclFileLine() const
void SetMerge(ROOT::MergeFunc_t mergeFunc)
Install a new wrapper around 'Merge'.
virtual void Register(const char *cname, Version_t id, const std::type_info &info, DictFuncPtr_t dict, Int_t pragmabits) const =0
void SetResetAfterMerge(ROOT::ResetAfterMergeFunc_t resetFunc)
Install a new wrapper around 'ResetAfterMerge'.
void Destruct(TCppType_t type, TCppObject_t instance)
const ROOT::Detail::TSchemaRuleSet * GetSchemaRules() const
Return the set of the schema rules if any.
static void SetName(const std::string &name, std::string &nameMember)
TNamed * RegisterClassTemplate(const char *name, const char *file, Int_t line)
Global function to register the implementation file and line of a class template (i.e.
void SetRuleType(RuleType_t type)
Set the type of the rule.
void SetNewArray(ROOT::NewArrFunc_t newArrayFunc)
Install a new wrapper around 'new []'.
virtual TClass * CreateClass(const char *cname, Version_t id, const std::type_info &info, TVirtualIsAProxy *isa, const char *dfil, const char *ifil, Int_t dl, Int_t il) const =0
void AdoptCollectionProxyInfo(Detail::TCollectionProxyInfo *)
void CopyCollectionProxy(const TVirtualCollectionProxy &)
Copy the argument.
const std::vector< ROOT::Internal::TSchemaHelper > & GetReadRules() const
void SetReadRawRules(const std::vector< ROOT::Internal::TSchemaHelper > &rules)
virtual const char * GetTitle() const
Returns title of object.
DelArrFunc_t GetDeleteArray() const
void(* DesFunc_t)(void *)
const char * Data() const