97 #define RTLD_DEFAULT ((void *)::GetModuleHandle(NULL))    98 #define dlsym(library, function_name) ::GetProcAddress((HMODULE)library, function_name)   124    class TMmallocDescTemp {
   154    auto strLen = strlen(name);
   155    if (strLen == 0) 
return;
   157    const char* endCharPtr = strchr(name, 
'<');
   158    endCharPtr = !endCharPtr ? &name[strLen] : endCharPtr;
   160    const char* beginCharPtr = endCharPtr;
   161    while (beginCharPtr!=name){
   162       if (*beginCharPtr==
':'){
   168    beginCharPtr = beginCharPtr!=endCharPtr ? beginCharPtr : 
name;
   169    std::string s(beginCharPtr, endCharPtr);
   171       printf(
"TDeclNameRegistry::AddQualifiedName Adding key %s for class/namespace %s\n", s.c_str(), 
name);
   193       printf(
"TDeclNameRegistry Destructor. List of %lu names:\n",
   196          printf(
" - %s\n", key.c_str());
   207    while (
fAFlag.test_and_set(std::memory_order_acquire));
   214    fAFlag.clear(std::memory_order_release);
   243 struct ObjRepoValue {
   269    std::pair<RepoCont_t::iterator, Bool_t> tmp = 
gObjectVersionRepository.insert(RepoCont_t::value_type>(location, RepoCont_t::mapped_type(what,version)));
   271       Warning(where, 
"Reregistering an object of class '%s' version %d at address %p", what->
GetName(), version, p);
   275          Warning(where, 
"Failed to reregister an object of class '%s' version %d at address %p", what->
GetName(), version, location);
   288       RepoCont_t::iterator tmp = cur++;
   289       if ((tmp->first == location) && (tmp->second.fVersion == what->
GetClassVersion())) {
   305    size_t objsize = what->
Size();
   306    long delta = (
char*)newadd - (
char*)oldadd;
   310       RepoCont_t::iterator tmp = cur++;
   311       if (oldadd <= tmp->
first && tmp->first < ( ((
char*)oldadd) + objsize) ) {
   314          gObjectVersionRepository.insert(RepoCont_t::value_type(((
char*)tmp->first)+delta, RepoCont_t::mapped_type(tmp->second.fClass,tmp->second.fVersion)));
   327 #define R__USE_STD_MAP   328    class TMapTypeToTClass {
   329 #if defined R__USE_STD_MAP   334       typedef map<string,TClass*>                 
IdMap_t;
   336       typedef std::map<std::string,TClass*>       
IdMap_t;
   338       typedef IdMap_t::key_type                   key_type;
   339       typedef IdMap_t::const_iterator             const_iterator;
   340       typedef IdMap_t::size_type                  size_type;
   343       typedef TClass*                             mapped_type;
   345       typedef IdMap_t::mapped_type                mapped_type;
   352       void Add(
const key_type &key, mapped_type &obj)
   357       mapped_type 
Find(
const key_type &key)
 const   360          IdMap_t::const_iterator iter = fMap.find(key);
   362          if (iter != fMap.end()) cl = iter->second;
   365       void Remove(
const key_type &key) {
   374 #ifdef R__COMPLETE_MEM_TERMINATION   383       void Add(
const char *key, 
TClass *&obj) {
   385          fMap.
Add(realkey, obj);
   392       void Remove(
const char *key) {
   400    class TMapDeclIdToTClass {
   403       typedef multimap<TDictionary::DeclId_t, TClass*>   
DeclIdMap_t;
   404       typedef DeclIdMap_t::key_type                      key_type;
   405       typedef DeclIdMap_t::mapped_type                   mapped_type;
   406       typedef DeclIdMap_t::const_iterator                const_iterator;
   407       typedef std::pair <const_iterator, const_iterator> equal_range;
   408       typedef DeclIdMap_t::size_type                     size_type;
   414       void Add(
const key_type &key, mapped_type obj)
   417          std::pair<const key_type, mapped_type> pair = make_pair(key, obj);
   420       size_type CountElementsWithKey(
const key_type &key)
   422          return fMap.count(key);
   424       equal_range 
Find(
const key_type &key)
 const   427          return fMap.equal_range(key);
   429       void Remove(
const key_type &key) {
   438 #ifdef R__COMPLETE_MEM_TERMINATION   449 #ifdef R__COMPLETE_MEM_TERMINATION   466    gROOT->GetListOfClasses()->Add(cl);
   480    if (!cl || !
id) 
return;
   492    gROOT->GetListOfClasses()->Remove(oldcl);
   524    TDumpMembers(
bool noAddr): fNoAddr(noAddr) { }
   541 void TDumpMembers::Inspect(
TClass *cl, 
const char *pname, 
const char *mname, 
const void *add, 
Bool_t )
   543    const Int_t kvalue = 30;
   545    const Int_t ktitle = 50;
   547    const Int_t ktitle = 42;
   549    const Int_t kline  = 1024;
   557    const char *memberName;
   558    const char *memberFullTypeName;
   559    const char *memberTitle;
   564       if (member->GetDataType()) {
   565          memberDataType = (
EDataType)member->GetDataType()->GetType();
   567       memberName = member->GetName();
   568       memberFullTypeName = member->GetFullTypeName();
   569       memberTitle = member->GetTitle();
   570       isapointer = member->IsaPointer();
   571       isbasic = member->IsBasic();
   578       const char *cursor = mname;
   579       while ( (*cursor)==
'*' ) ++cursor;
   580       TString elname( cursor );
   581       Ssiz_t pos = elname.Index(
"[");
   582       if ( pos != 
kNPOS ) {
   583          elname.Remove( pos );
   586       if (!element) 
return;
   591       memberName = element->
GetName();
   594       membertype = 
gROOT->GetType(memberFullTypeName);
   596       isbasic = membertype !=0;
   603    if (strcmp(memberName,
"fDatime") == 0 && memberDataType == 
kUInt_t) {
   607    if (strcmp(memberName,
"fBits") == 0 && memberDataType == 
kUInt_t) {
   612    static TClassRef stdClass(
"std::string");
   613    Bool_t isStdString = (dataClass == stdClass);
   616    for (i = 0;i < kline; i++) line[i] = 
' ';
   618    snprintf(line,kline,
"%s%s ",pname,mname);
   619    i = strlen(line); line[i] = 
' ';
   622    char *pointer = (
char*)add;
   623    char **ppointer = (
char**)(pointer);
   626       char **p3pointer = (
char**)(*ppointer);
   628          snprintf(&line[kvalue],kline-kvalue,
"->0");
   633       } 
else if (membertype) {
   635             i = strlen(*ppointer);
   636             if (kvalue+i > kline) i=kline-1-kvalue;
   638             for (
Int_t j = 0; j < i; j++) {
   639                if (!std::isprint((*ppointer)[j])) {
   645                strncpy(line + kvalue, *ppointer, i);
   651             strncpy(&line[kvalue], membertype->
AsString(p3pointer), 
TMath::Min(kline-1-kvalue,(
int)strlen(membertype->
AsString(p3pointer))));
   653       } 
else if (!strcmp(memberFullTypeName, 
"char*") ||
   654                  !strcmp(memberFullTypeName, 
"const char*")) {
   655          i = strlen(*ppointer);
   656          if (kvalue+i >= kline) i=kline-1-kvalue;
   658          for (
Int_t j = 0; j < i; j++) {
   659             if (!std::isprint((*ppointer)[j])) {
   665             strncpy(line + kvalue, *ppointer, i);
   675    } 
else if (membertype) {
   677          cdatime = (
UInt_t*)pointer;
   679          snprintf(&line[kvalue],kline-kvalue,
"%d/%d",cdate,ctime);
   687          std::string *str = (std::string*)pointer;
   688          snprintf(&line[kvalue],kline-kvalue,
"%s",str->c_str());
   689       } 
else if (isTString) {
   690          TString *str = (TString*)pointer;
   691          snprintf(&line[kvalue],kline-kvalue,
"%s",str->Data());
   699    if (isdate == 
kFALSE && strcmp(memberFullTypeName, 
"char*") && strcmp(memberFullTypeName, 
"const char*")) {
   700       i = strlen(&line[0]); line[i] = 
' ';
   701       Int_t lentit = strlen(memberTitle);
   702       if (lentit > 250-ktitle) lentit = 250-ktitle;
   703       strncpy(&line[ktitle],memberTitle,lentit);
   704       line[ktitle+lentit] = 0;
   726    void    *fRealDataObject;
   730    TBuildRealData(
void *obj, 
TClass *cl) {
   732       fRealDataObject = obj;
   743 void TBuildRealData::Inspect(
TClass* cl, 
const char* pname, 
const char* mname, 
const void* add, 
Bool_t isTransient)
   755       isTransientMember = 
kTRUE;
   759    TString rname( pname );
   762    if (cl != fRealDataClass) {
   763       if (!fRealDataClass->InheritsFrom(cl)) {
   764          Ssiz_t dot = rname.Index(
'.');
   769          if (!fRealDataClass->GetDataMember(rname)) {
   784             if (!fRealDataClass->GetBaseDataMember(rname)) {
   799       fRealDataClass->GetListOfRealData()->Add(rd);
   809       fRealDataClass->GetListOfRealData()->Add(rd);
   854                   void* addrForRecursion = 0;
   855                   if (GetObjectValidity() == kValidObjectGiven)
   856                      addrForRecursion = 
const_cast<void*
>(add);
   863       fRealDataClass->GetListOfRealData()->Add(rd);
   880       fBrowser = 
b; fCount = 0; }
   881    virtual ~TAutoInspector() { }
   884    virtual Bool_t IsTreatingNonAccessibleTypes() {
return kFALSE;}
   890 void TAutoInspector::Inspect(
TClass *cl, 
const char *tit, 
const char *
name,
   891                              const void *addr, 
Bool_t )
   893    if(tit && strchr(tit,
'.'))    
return ;
   894    if (fCount && !fBrowser) 
return;
   901    int ln = strcspn(
name,
"[ ");
   902    TString iname(
name,ln);
   905    if (!classInfo)               
return;
   914       mname.ReplaceAll(
"*",
"");
   915       if ((found = (iname==mname))) 
break;
   927    if (mname == 
"G__virtualinfo")  
return;
   929    int  size = 
sizeof(
void*);
   949    for(
int i=0; i<nmax; i++) {
   951       char *ptr = (
char*)addr + i*size;
   958       if (!fBrowser)      
return;
   966          bwname = actualClass->
GetName();
   972           bwname.Length()==0 ||
   973           strcmp(bwname.Data(),actualClass->
GetName())==0) {
   975          int l = strcspn(bwname.Data(),
"[ ");
   976          if (l<bwname.Length() && bwname[
l]==
'[') {
   977             char cbuf[12]; 
snprintf(cbuf,12,
"[%02d]",i);
   978             ts.Replace(0,999,bwname,l);
   980             bwname = (
const char*)ts;
   986          fBrowser->Add(obj,clm,bwname);
   993             fBrowser->Add( obj, clm, bwname );
   999             int sz = proxy->
Size();
  1001             char fmt[] = {
"#%09d"};
  1002             fmt[3]  = 
'0'+(int)
log10(
double(sz))+1;
  1004             for (
int ii=0;ii<sz;ii++) {
  1005                void *p = proxy->
At(ii);
  1017                fBrowser->Add( p, actualCl, ts );
  1056       TMmallocDescTemp setreset;
  1092       ::Fatal(
"TClass::TClass", 
"ROOT system not initialized");
  1095       TMmallocDescTemp setreset;
  1102       ::Fatal(
"TClass::TClass", 
"gInterpreter not initialized");
  1106       ::
Warning(
"TClass::TClass", 
"no dictionary for class %s is available", name);
  1137    Init(name, cversion, 0, 0, 0, 0, -1, -1, 0, silent);
  1173               "A TClass entry cannot be initialized in a state different from kForwardDeclared or kEmulated.");
  1174    Init(name, cversion, 0, 0, 0, 0, -1, -1, 0, silent);
  1210       ::Fatal(
"TClass::TClass", 
"ROOT system not initialized");
  1216       ::Fatal(
"TClass::TClass", 
"gInterpreter not initialized");
  1218    if (!classInfo || !
gInterpreter->ClassInfo_IsValid(classInfo)) {
  1225       Init(
fName, cversion, 0, 0, dfil, ifil, dl, il, classInfo, silent);
  1258    Init(name,cversion, 0, 0, dfil, ifil, dl, il, 0, silent);
  1267                const char *dfil, 
const char *ifil, 
Int_t dl, 
Int_t il,
  1290    Init(name, cversion, &info, isa, dfil, ifil, dl, il, 0, silent);
  1308       info->
Clear(
"build");
  1324                   const char *dfil, 
const char *ifil, 
Int_t dl, 
Int_t il,
  1325                   ClassInfo_t *givenInfo,
  1329       ::Fatal(
"TClass::TClass", 
"ROOT system not initialized");
  1361    TClass **persistentRef = 0;
  1379          info->
Clear(
"build");
  1398       ::Fatal(
"TClass::Init", 
"gInterpreter not initialized");
  1459          ::Error(
"TClass::Init", 
"no interpreter information for class %s is available even though it has a TClass initialization routine.", 
fName.Data());
  1463          ::Warning(
"TClass::Init", 
"no dictionary for class %s is available", 
fName.Data());
  1474    TString resolvedThis;
  1475    if (!givenInfo && strchr (name, 
'<')) {
  1476       if ( 
fName != name) {
  1487       if (resolvedThis != name) {
  1511       if (resolvedThis != 
fName) {
  1512          oldcl = (
TClass*)
gROOT->GetListOfClasses()->FindObject(resolvedThis);
  1513          if (oldcl && oldcl != 
this) {
  1519       while ( 
TNameMapNode* htmp = static_cast<TNameMapNode*> (next()) ) {
  1520          if (resolvedThis != htmp->String()) 
continue;
  1521          oldcl = (
TClass*)
gROOT->GetListOfClasses()->FindObject(htmp->fOrigName); 
  1522          if (oldcl && oldcl != 
this) {
  1540    if (persistentRef) {
  1547    if ( isStl || !strncmp(
GetName(),
"stdext::hash_",13) || !strncmp(
GetName(),
"__gnu_cxx::hash_",16) ) {
  1558          } 
else if (!silent) {
  1559             Warning(
"Init",
"Collection proxy for %s was not properly initialized!",
GetName());
  1565    } 
else if (!strncmp(
GetName(),
"std::pair<",10) || !strncmp(
GetName(),
"pair<",5) ) {
  1584       while ( 
TNameMapNode* htmp = static_cast<TNameMapNode*> (next()) ) {
  1585          if (resolvedThis == htmp->String() && htmp->fOrigName == 
GetName()) {
  1652       std::map<std::string, TObjArray*>::iterator it;
  1653       std::map<std::string, TObjArray*>::iterator end = (*fConversionStreamerInfo).end();
  1654       for( it = (*fConversionStreamerInfo).begin(); it != end; ++it ) {
  1664    Int_t ReadRulesContent(FILE *
f)
  1676       while ((c = fgetc(f)) != EOF) {
  1682                if (rule.Length() > 0) {
  1734    static const char *suffix = 
"class.rules";
  1735    TString 
sname = suffix;
  1750    FILE * 
f = fopen(sname,
"r");
  1752       res = ReadRulesContent(f);
  1766    if (!filename || !filename[0]) {
  1767       ::Error(
"TClass::ReadRules", 
"no file name specified");
  1771    FILE * 
f = fopen(filename,
"r");
  1773       ::Error(
"TClass::ReadRules",
"Failed to open %s\n",filename);
  1776    Int_t count = ReadRulesContent(f);
  1829       ::Warning( 
"TClass::AddRule", 
"The rule for class: \"%s\": version, \"%s\" and data members: \"%s\" has been skipped because it conflicts with one of the other rules (%s).",
  1890    TAutoInspector insp(b);
  1891    obj->ShowMembers(insp);
  1912    } 
else if (actual != 
this) {
  1913       return actual->
Browse(obj, b);
  1919       TAutoInspector insp(b);
  1962       isTransient = 
kTRUE;
  1967    TMmallocDescTemp setreset;
  1978    static TClassRef clRefString(
"std::string");
  1979    if (clRefString == 
this) {
  1988        && strncmp(
GetName(), 
"pair<", 5) != 0) {
  1989       Error(
"BuildRealData", 
"Inspection for %s not supported!", 
GetName());
  1995    TBuildRealData brd(pointer, 
this);
  2001       if ( isTransient ) {
  2009          Error(
"BuildRealData", 
"Cannot find any ShowMembers function for %s!", 
GetName());
  2044       Error(
"BuildEmulatedRealData",
"Missing StreamerInfo for %s",
GetName());
  2053       Long_t eoffset = element->GetOffset();
  2054       TClass *cle    = element->GetClassPointer();
  2063          TString rdname; rdname.Form(
"%s%s",name,element->GetFullName());
  2068          rdname.Form(
"%s%s.",name,element->GetFullName());
  2072          TString rdname; rdname.Form(
"%s%s",name,element->GetFullName());
  2086       Int_t etype    = element->GetType();
  2089          Long_t eoffset = element->GetOffset();
  2090          TClass *cle    = element->GetClassPointer();
  2110       TMmallocDescTemp setreset;
  2137          if (strcmp(
GetName(), 
"string") == 0) {
  2145          gInterpreter->InspectMembers(insp, obj, 
this, isTransient);
  2149          sinfo->CallShowMembers(obj, insp, isTransient);
  2164    return gInterpreter->InspectMembers(insp, obj, 
this, isTransient);
  2198             TClass *clbase = element->GetClassPointer();
  2272       static TClassRef stdStringClass(
"std::string");
  2337    if (new_name == 0 || new_name[0]==
'\0' || 
fName == new_name) {
  2338       Error(
"Clone",
"The name of the class must be changed when cloning a TClass object.");
  2368    copy->
fName = new_name;
  2423    if (!padsav || !opt.Contains(
"same")) {
  2426          gROOT->ProcessLine(
"new TCanvas(\"R__class\",\"class\",20,20,1000,750);");
  2432    if (
gPad) 
gPad->DrawClassObject(
this,option);
  2434    if (padsav) padsav->
cd();
  2475       if (
sizeof(
this) == 4)
  2478          Printf(
"==> Dumping object at: 0x%016lx, name=%s, class=%s\n",prObj,tobj->
GetName(),
GetName());
  2481       if (
sizeof(
this) == 4)
  2482          Printf(
"==> Dumping object at: 0x%08lx, class=%s\n",prObj,
GetName());
  2484          Printf(
"==> Dumping object at: 0x%016lx, class=%s\n",prObj,
GetName());
  2487    TDumpMembers dm(noAddr);
  2489       Info(
"Dump", 
"No ShowMembers function, dumping disabled");
  2500    static char name[maxsize+2]; 
  2502    UInt_t nch = strlen(text);
  2504    for (
UInt_t i = 0; i < nch && icur < 
maxsize; ++i, ++icur) {
  2505       if (text[i] == 
'\"' || text[i] == 
'[' || text[i] == 
'~' ||
  2506           text[i] == 
']'  || text[i] == 
'&' || text[i] == 
'#' ||
  2507           text[i] == 
'!'  || text[i] == 
'^' || text[i] == 
'<' ||
  2508           text[i] == 
'?'  || text[i] == 
'>') {
  2512       name[icur] = text[i];
  2538    if (
object==0) 
return (
TClass*)
this;
  2540       return (*
fIsA)(object); 
  2551          return realTObject->IsA();
  2568             return (*
fIsA)(object); 
  2586    if (strcmp(
GetName(), classname) == 0) 
return this;
  2605    if (cl == 
this) 
return this;
  2617          if (cl == c) 
return c;
  2636    if (cl == 
this) 
return 0;
  2638    if (!
fBase.load()) {
  2645          if (!sinfo) 
return -1;
  2651          for(
Int_t i=0; i<size; i++) {
  2657                   if (!baseclass) 
return -1;
  2659                   if (subOffset == -2) 
return -2;
  2660                   if (subOffset != -1) 
return offset+subOffset;
  2661                   offset += baseclass->
Size();
  2665                   if (!baseclass) 
return -1;
  2667                   if (subOffset == -2) 
return -2;
  2668                   if (subOffset != -1) 
return offset+subOffset;
  2669                   offset += baseclass->
Size();
  2672                   Error(
"GetBaseClassOffsetRecurse",
"Unexpected element type for base class: %s\n",element->IsA()->
GetName());
  2685    else lnk = 
fBase.load()->FirstLink();
  2702          if (off == -2) 
return -2;
  2721    if (
this == toBase) 
return 0;
  2737    if(derived && base) {
  2758    if (dm) 
return this;
  2767          if (cdm) 
return cdm;
  2778    struct TClassLocalStorage {
  2784       static TClassLocalStorage *GetStorage(
const TClass *cl)
  2790             if (*thread_ptr==0) *thread_ptr = 
new TExMap();
  2797                local = (
ULong_t) 
new TClassLocalStorage();
  2800             return (TClassLocalStorage*)local;
  2828       TClassLocalStorage *local = TClassLocalStorage::GetStorage(
this);
  2831       return local->fCollectionProxy;
  2842       TClassLocalStorage *local = TClassLocalStorage::GetStorage(
this);
  2844       if (local->fStreamer==0) {
  2846          const std::type_info &orig = ( 
typeid(*fStreamer) );
  2847          if (!local->fStreamer) {
  2848             Warning(
"GetStreamer",
"For %s, the TClassStreamer (%s) passed's call to Generate failed!",
GetName(),orig.name());
  2850             const std::type_info © = ( 
typeid(*local->fStreamer) );
  2851             if (strcmp(orig.name(),copy.name())!=0) {
  2852                Warning(
"GetStreamer",
"For %s, the TClassStreamer passed does not properly implement the Generate method (%s vs %s)\n",
GetName(),orig.name(),copy.name());
  2856       return local->fStreamer;
  2895    if (!name || !name[0]) 
return 0;
  2897    if (strstr(name, 
"(anonymous)")) 
return 0;
  2898    if (strncmp(name,
"class ",6)==0) name += 6;
  2899    if (strncmp(name,
"struct ",7)==0) name += 7;
  2903    if (!
gROOT->GetListOfClasses())  
return 0;
  2938       if (!cl && !load) 
return 0;
  2940       TClass *loadedcl = (dict)();
  2950    std::string normalizedName;
  2958       if (normalizedName != name) {
  2959          cl = (
TClass*)
gROOT->GetListOfClasses()->FindObject(normalizedName.c_str());
  2970       normalizedName = cl->
GetName(); 
  2971       checkTable = load && (normalizedName != 
name);
  2974    if (!load) 
return 0;
  3000          if (
TDataType* theDataType = 
gROOT->GetType(normalizedName.c_str())){
  3002             auto underlyingTypeName = theDataType->GetTypeName();
  3005             if (underlyingTypeDict){
  3006                loadedcl = underlyingTypeDict();
  3012    if (loadedcl) 
return loadedcl;
  3016    if (loadedcl) 
return loadedcl;
  3029       std::string::size_type posLess = normalizedName.find(
'<');
  3030       if (posLess != std::string::npos) {
  3037       printf(
"TClass::GetClass: Header Parsing - The representation of %s was not found in the type system. A lookup in the interpreter is about to be tried: this can cause parsing. This can be avoided selecting %s in the linkdef/selection file.\n",normalizedName.c_str(), normalizedName.c_str());
  3039    if (normalizedName.length() &&
  3043       std::string alternative;
  3045       const char *altname = alternative.c_str();
  3046       if ( strncmp(altname,
"std::",5)==0 ) {
  3051       if (altname != normalizedName && strcmp(altname,name) != 0) {
  3079    if (!
gROOT->GetListOfClasses())    
return 0;
  3100    if (!load) 
return 0;
  3110    TIter next(
gROOT->GetListOfClassGenerators());
  3122    if (!autoload_old) {
  3154    if (!
gROOT->GetListOfClasses())    
return 0;
  3162       if (cl->IsLoaded()) 
return cl;
  3169    if (!load) 
return 0;
  3172    if (cl) loadedcl = 
gROOT->LoadClass(cl->GetName(),silent);
  3173    else    loadedcl = 
gROOT->LoadClass(
name,silent);
  3175    if (loadedcl) 
return loadedcl;
  3200    if (!
gROOT->GetListOfClasses())    
return 0;
  3204    DeclIdMap_t::equal_range iter = map->Find(
id);
  3205    if (iter.first == iter.second) 
return false;
  3206    std::vector<TClass*>::iterator vectIt = classes.begin();
  3207    for (DeclIdMap_t::const_iterator it = iter.first; it != iter.second; ++it)
  3208       vectIt = classes.insert(vectIt, it->second);
  3236        || datamember == 0) 
return 0;
  3239    const char *start_name = datamember;
  3240    while (*start_name == 
'*') ++start_name;
  3245    if (
const char *s = strchr(start_name, 
'[')){
  3246       UInt_t len = s-start_name;
  3247       TString 
name(start_name,len);
  3265    if (strchr(name,
'[')==0) {
  3307    std::string givenName(name);
  3310    std::string::size_type firstBracket = givenName.find_first_of(
"[");
  3311    if (firstBracket != std::string::npos) {
  3313       std::string nameNoDim(givenName.substr(0, firstBracket));
  3316          TObject* obj = lnk->GetObject();
  3317          std::string objName(obj->
GetName());
  3318          std::string::size_type pos = objName.find_first_of(
"[");
  3320          if (pos != std::string::npos) {
  3322             if (objName == nameNoDim) {
  3331    std::ostringstream ptrname;
  3332    ptrname << 
"*" << givenName;
  3339    std::string::size_type firstDot = givenName.find_first_of(
".");
  3340    if (firstDot == std::string::npos) {
  3351    std::string::size_type lastDot = givenName.find_last_of(
".");
  3352    std::ostringstream starname;
  3353    starname << givenName.substr(0, lastDot) << 
".*" << givenName.substr(lastDot + 1);
  3361    std::string firstDotName(givenName.substr(firstDot + 1));
  3375    std::string::size_type firstDotBracket = firstDotName.find_first_of(
"[");
  3376    if (firstDotBracket != std::string::npos) {
  3378       std::string nameNoDim(firstDotName.substr(0, firstDotBracket));
  3381          TObject* obj = lnk->GetObject();
  3382          std::string objName(obj->
GetName());
  3383          std::string::size_type pos = objName.find_first_of(
"[");
  3385          if (pos != std::string::npos) {
  3387             if (objName == nameNoDim) {
  3400    ptrname << 
"*" << firstDotName;
  3416    std::string::size_type bracket = starname.str().find_first_of(
"[");
  3417    if (bracket == std::string::npos) {
  3487          Fatal(
"GetListOfBases", 
"gInterpreter not initialized");
  3516    auto temp = 
fEnums.load();
  3518       if (requestListLoading) {
  3533    if (!requestListLoading) {
  3540       static bool fromRootCling = dlsym(RTLD_DEFAULT, 
"usedToIdentifyRootClingByDlSym");
  3625       if (
gDebug>0) 
Info(
"GetListOfMethods",
"Header Parsing - Asking for all the methods of class %s: this can involve parsing.",
GetName());
  3658       if (
gDebug>0) 
Info(
"GetListOfAllPublicMethods",
"Header Parsing - Asking for all the methods of class %s: this can involve parsing.",
GetName());
  3688    while ((baseClass = (
TBaseClass *) nextBase())) {
  3696    while ((method = (
TMethod*)next())) {
  3755    TIter nextMemb(ldm);
  3786    for (
int i = 0; i < 2; i++) {
  3802    if (
this == sCIString) 
return;
  3805    if (strncmp(
fName, 
"pair<", 5) == 0) {
  3853    if (
this == sCIString) 
return;
  3857    if (strncmp(
fName, 
"pair<", 5) == 0) {
  3912    while ((acl = (
TClass*)nextClass())) {
  3913       if (acl == newcl) 
continue;
  3915       TIter nextInfo(acl->GetStreamerInfos());
  3918          info->
Update(
this, newcl);
  3921       if (acl->GetCollectionProxy()) {
  3922          acl->GetCollectionProxy()->UpdateValueClass(
this, newcl);
  3927    TIter delIter( &tobedeleted );
  3928    while ((acl = (
TClass*)delIter())) {
  3941    Warning(
"ResetClassInfo(Long_t tagnum)",
"Call to deprecated interface (does nothing)");
  3992       (*fMethod).Unload();
  4026    if (options==0 || options[0]==0) 
return;
  4028    if (strstr(options,
"streamerinfo")!=0) {
  4032          std::map<std::string, TObjArray*>::iterator it;
  4033          std::map<std::string, TObjArray*>::iterator end = (*fConversionStreamerInfo).end();
  4034          for( it = (*fConversionStreamerInfo).begin(); it != end; ++it ) {
  4035             it->second->ls(options);
  4062    TIter next(methodList);
  4064    while ((method = (
TMethod*) next())) {
  4066       if (classPtr != method->
GetClass()) {
  4074       TIter nextarg(margsList);
  4075       while ((methodArg = (
TMethodArg*)nextarg())) {
  4078       if (sig.Length()!=0) sig.Remove(0,1);  
  4125       if(
fMethod.compare_exchange_strong(expected, temp.get()) ) {
  4183       Fatal(
"GetMethod", 
"gInterpreter not initialized");
  4189    if (!decl) 
return 0;
  4196          "\nDid not find matching TMethod <%s> with \"%s\" %sfor %s",
  4197          method,params,objectIsConst ? 
"const " : 
"", 
GetName());
  4233       Fatal(
"GetMethodWithPrototype", 
"gInterpreter not initialized");
  4237                                                             objectIsConst, mode);
  4239    if (!decl) 
return 0;
  4242    Error(
"GetMethodWithPrototype",
  4243          "\nDid not find matching TMethod <%s> with \"%s\" %sfor %s",
  4244          method,proto,objectIsConst ? 
"const " : 
"", 
GetName());
  4258    while ((m = (
TMethod *) next())) {
  4278       Fatal(
"GetClassMethod", 
"gInterpreter not initialized");
  4284    if (!decl) 
return 0;
  4304       Fatal(
"GetClassMethodWithPrototype", 
"gInterpreter not initialized");
  4311    if (!decl) 
return 0;
  4387    if ((version < -1) || (version >= ninfos)) {
  4388       Error(
"GetStreamerInfo", 
"class: %s, attempting to access a wrong version: %d", 
GetName(), version);
  4404       TMmallocDescTemp setreset;
  4456    newname += 
"@@emulated";
  4479          for (
Int_t i = -1; sinfo == 0 && i < ninfos; ++i) {
  4492             Error(
"GetStreamerInfoAbstractEmulated", 
"could not create TVirtualStreamerInfo");
  4516    newname += 
"@@emulated";
  4530       if (!sinfo && (checksum != 
fCheckSum)) {
  4539          for (
Int_t i = -1; sinfo == 0 && i < ninfos; ++i) {
  4552             Error(
"GetStreamerInfoAbstractEmulated", 
"could not create TVirtualStreamerInfo");
  4598          Error(
"IgnoreTObjectStreamer",
"Must be called before the creation of StreamerInfo");
  4624    if (cl == 
this) 
return kTRUE;
  4633             TClass *clbase = element->GetClassPointer();
  4634             if (!clbase) 
return kFALSE; 
  4641    if (((
TClass *)
this)->GetBaseClass(cl)) 
return kTRUE;
  4653    if (cl == 
this) 
return obj;
  4660          return (
void*)((
Long_t)obj+off);
  4662          return (
void*)((
Long_t)obj-off);
  4728          Error(
"New", 
"cannot create object of class %s", 
GetName());
  4744          Error(
"New", 
"cannot create object of class %s", 
GetName());
  4755          Error(
"New", 
"cannot create object of class %s", 
GetName());
  4776       if (!sinfo && !quiet) {
  4795          Error(
"New", 
"Failed to construct class '%s' using streamer info", 
GetName());
  4798       Fatal(
"New", 
"This cannot happen!");
  4822          Error(
"New with placement", 
"cannot create object of class %s version %d at address %p", 
GetName(), 
fClassVersion, arena);
  4837          Error(
"New with placement", 
"cannot create object of class %s version %d at address %p", 
GetName(), 
fClassVersion, arena);
  4865          Error(
"New with placement", 
"Cannot construct class '%s' version %d at address %p, no streamer info available!", 
GetName(), 
fClassVersion, arena);
  4870       p = sinfo->
New(arena);
  4884       Error(
"New with placement", 
"This cannot happen!");
  4971       Error(
"NewArray", 
"This cannot happen!");
  4995          Error(
"NewArray with placement", 
"cannot create object of class %s version %d at address %p", 
GetName(), 
fClassVersion, arena);
  5010          Error(
"NewArray with placement", 
"cannot create object of class %s version %d at address %p", 
GetName(), 
fClassVersion, arena);
  5038          Error(
"NewArray with placement", 
"Cannot construct class '%s' version %d at address %p, no streamer info available!", 
GetName(), 
fClassVersion, arena);
  5043       p = sinfo->
NewArray(nElements, arena);
  5062       Error(
"NewArray with placement", 
"This cannot happen!");
  5074    if (obj == 0) 
return;
  5081    } 
else if ((!dtorOnly) && 
fDelete) {
  5113       std::multiset<Version_t> knownVersions;
  5126                knownVersions.insert(ver);
  5134       if (!inRepo || verFound) {
  5141             Error(
"Destructor", 
"No streamer info available for class '%s' version %d at address %p, cannot destruct emulated object!", 
GetName(), 
fClassVersion, p);
  5147                   Error(
"Destructor", 
"Doing Dump() ...");
  5162             Error(
"Destructor2", 
"No streamer info available for class '%s' version %d, cannot destruct object at addr: %p", 
GetName(), objVer, p);
  5169                   Error(
"Destructor2", 
"Doing Dump() ...");
  5177       if (inRepo && verFound && p) {
  5181       Error(
"Destructor", 
"This cannot happen! (class %s)", 
GetName());
  5191    if (ary == 0) 
return;
  5198          Error(
"DeleteArray", 
"Destructor only is not supported!");
  5227       std::multiset<Version_t> knownVersions;
  5238                knownVersions.insert(ver);
  5246       if (!inRepo || verFound) {
  5253             Error(
"DeleteArray", 
"No streamer info available for class '%s' version %d at address %p, cannot destruct object!", 
GetName(), 
fClassVersion, ary);
  5259                   Error(
"DeleteArray", 
"Doing Dump() ...");
  5268          Error(
"DeleteArray", 
"Loaded class version %d is not registered for addr %p", 
fClassVersion, p);
  5277             Error(
"DeleteArray", 
"No streamer info available for class '%s' version %d at address %p, cannot destruct object!", 
GetName(), objVer, ary);
  5284                   Error(
"DeleteArray", 
"Doing Dump() ...");
  5295       if (inRepo && verFound && p) {
  5299       Error(
"DeleteArray", 
"This cannot happen! (class '%s')", 
GetName());
  5375    while (strlen(s) == (maxsize - 1)) {
  5386       ::Error(
"TClass::Load", 
"dictionary of class %s not found", s);
  5410    if (result) 
return result;
  5458    TIter next(
gROOT->GetListOfClassGenerators());
  5494          ::Error(
"TClass::LoadClassInfo",
  5495                  "no interpreter information for class %s is available even though it has a TClass initialization routine.",
  5516                           const char *dfil, 
const char *ifil,
  5521    TMmallocDescTemp setreset;
  5522    return new TClass(cname, 
id, info, isa, dfil, ifil, dl, il);
  5530                           const char *dfil, 
const char *ifil,
  5535    TMmallocDescTemp setreset;
  5536    return new TClass(cname, 
id, dfil, ifil, dl, il);
  5640    The class %s transitioned from not having a specified class version\n\  5641    to having a specified class version (the current class version is %d).\n\  5642    However too many different non-versioned layouts of the class have\n\  5643    already been loaded so far.  To work around this problem you can\n\  5644    load fewer 'old' file in the same ROOT session or load the C++ library\n\  5645    describing the class %s before opening the files or increase the version\n\  5646    number of the class for example ClassDef(%s,%d).\n\  5647    Do not try to write objects with the current class definition,\n\  5648    the files might not be readable.\n",
  5652    The StreamerInfo version %d for the class %s which was read\n\  5653    from a file previously opened has the same version as the active class\n\  5654    but a different checksum. You should update the version to ClassDef(%s,%d).\n\  5655    Do not try to write objects with the current class definition,\n\  5656    the files will not be readable.\n"  5701    TMmallocDescTemp setreset;
  5889       Fatal(
"SetUnloaded",
"The TClass for %s is being unloaded when in state %d\n",
  5914       (*fMethod).Unload();
  5923    if (fState <= kForwardDeclared && fStreamerInfo->GetEntries() != 0) {
  6016    //info is empty. Let's build the default Streamer descriptor
  6018    char *temp = new char[10000];
  6022    //add list of base classes
  6023    TIter nextb(GetListOfBases());
  6025    while ((base = (TBaseClass*) nextb())) {
  6026       snprintf(local,100,"%s;",base->GetName());
  6027       strlcat(temp,local,10000);
  6030    //add list of data members and types
  6031    TIter nextd(GetListOfDataMembers());
  6032    while ((dm = (TDataMember *) nextd())) {
  6033       if (dm->IsEnum()) continue;
  6034       if (!dm->IsPersistent()) continue;
  6035       Long_t property = dm->Property();
  6036       if (property & kIsStatic) continue;
  6037       TClass *acl = TClass::GetClass(dm->GetTypeName(),update);
  6040          if (acl->GetClassVersion() == 0) continue;
  6043       // dm->GetArrayIndex() returns an empty string if it does not
  6045       const char * index = dm->GetArrayIndex();
  6046       if (strlen(index)==0)
  6047          snprintf(local,100,"%s %s;",dm->GetFullTypeName(),dm->GetName());
  6049          snprintf(local,100,"%s %s[%s];",dm->GetFullTypeName(),dm->GetName(),index);
  6050       strlcat(temp,local,10000);
  6052    //fStreamerInfo = temp;
  6141    for (
int i=0; i<il; i++) 
id = 
id*3+name[i];
  6146       TIter nextBase(tlb);
  6155          for (
int i=0; i<il; i++) 
id = 
id*3+name[i];
  6158                Error(
"GetCheckSum",
"Calculating the checksum for (%s) requires the base class (%s) meta information to be available!",
  6167    TList *tlm = ((
TClass*)
this)->GetListOfDataMembers();
  6169       TIter nextMemb(tlm);
  6180          name = tdm->
GetName(); il = name.Length();
  6185          for (i=0; i<il; i++) 
id = 
id*3+name[i];
  6197                   type.ReplaceAll(
"ULong64_t",
"unsigned long long");
  6198                   type.ReplaceAll(
"Long64_t",
"long long");
  6199                   type.ReplaceAll(
"<signed char",
"<char");
  6200                   type.ReplaceAll(
",signed char",
",char");
  6201                   if (type==
"signed char") type = 
"char";
  6213          for (i=0; i<il; i++) 
id = 
id*3+type[i];
  6217             for (
int ii=0;ii<dim;ii++) 
id = 
id*3+tdm->
GetMaxIndex(ii);
  6224                left = strstr(tdm->
GetTitle(),
"[");
  6226                const char *right = strstr(left,
"]");
  6229                   while (left != right) {
  6355    streamer->
Stream(b,
object,onfile_class);
  6445       pThis->
Fatal(
"StreamerDefault", 
"fStreamerImpl not properly initialized (%d)", pThis->
fStreamerType);
  6607       for (
Int_t i=-1;i<ninfos;++i) {
  6629    for (
Int_t i=-1;i<ninfos;i++) {
  6633       if (!info) 
continue;
  6674       std::map<std::string, TObjArray*>::iterator it;
  6677       it = (*fConversionStreamerInfo).find( cl->
GetName() );
  6679       if( it != (*fConversionStreamerInfo).end() ) {
  6683       if( arr && version > -1 && version < arr->GetSize() && arr->
At( version ) )
  6695    if( version >= -1 && version < clSI->GetSize() )
  6733       (*fConversionStreamerInfo)[cl->
GetName()] = arr;
  6772       std::map<std::string, TObjArray*>::iterator it;
  6776       it = (*fConversionStreamerInfo).find( cl->
GetName() );
  6778       if( it != (*fConversionStreamerInfo).end() ) {
  6827       (*fConversionStreamerInfo)[cl->
GetName()] = arr;
  6846          Error(
"RegisterStreamerInfo",
  6847                "Register StreamerInfo for %s on non-empty slot (%d).",
 void Add(TObject *obj, const char *name=0, Int_t check=-1)
Add object with name to browser. 
 
void AddQualifiedName(const char *name)
Extract this part of the name. 
 
Short_t GetImplFileLine() const
 
void ResetCaches()
To clean out all caches. 
 
virtual Bool_t ClassInfo_HasDefaultConstructor(ClassInfo_t *) const
 
virtual int DataMemberInfo_Next(DataMemberInfo_t *) const
 
virtual void SetClass(TClass *cl)=0
 
virtual const char * GetName() const
Returns name of object. 
 
Long_t ClassProperty() const
Return the C++ property of this class, eg. 
 
virtual void * New(void *obj=0)=0
 
Int_t GetNdata()
Return the number of data members of this class Note that in case the list of data members is not yet...
 
void SetBufferOffset(Int_t offset=0)
 
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...
 
static TClass * LoadClassCustom(const char *requestedname, Bool_t silent)
Helper function used by TClass::GetClass(). 
 
ShowMembersFunc_t fShowMembers
 
Bool_t HasInterpreterInfoInMemory() const
 
virtual TClassStreamer * GenEmulatedClassStreamer(const char *class_name, Bool_t silent)=0
 
Bool_t IsForeign() const
Return kTRUE is the class is Foreign (the class does not have a Streamer method). ...
 
A collection of TDataMember objects designed for fast access given a DeclId_t and for keep track of T...
 
virtual void SetClass(TClass *cl)=0
 
Bool_t CanSplit() const
Return true if the data member of this TClass can be saved separately. 
 
TList * GetListOfBases()
Return list containing the TBaseClass(es) of a class. 
 
void SetIsObject(Bool_t isObject)
 
static TDataType * GetDataType(EDataType type)
Given a EDataType type, get the TDataType* that represents it. 
 
virtual void * NewArray(Int_t nElements) const
 
ROOT::NewArrFunc_t fNewArray
 
virtual Int_t WriteClassBuffer(const TClass *cl, void *pointer)=0
 
void(* ClassStreamerFunc_t)(TBuffer &, void *)
 
virtual void Delete(Option_t *option="")
Remove all objects from the list AND delete all heap based objects. 
 
std::atomic< TMethodCall * > fIsAMethod
 
virtual void Info(const char *method, const char *msgfmt,...) const
Issue info message. 
 
TString GetTypeName()
Get basic type of typedef, e,g. 
 
ROOT::ESTLType IsSTLCont(std::string_view type)
type : type name: vector<list<classA,allocator>,allocator> result: 0 : not stl container code of cont...
 
static Bool_t AddRule(const char *rule)
Add a schema evolution customization rule. 
 
virtual Int_t GetProperties() const
 
virtual void PostLoadCheck()
Do the initialization that can only be done after the CINT dictionary has been fully populated and ca...
 
const char * GetDeclFileName() const
 
void GetMissingDictionariesForBaseClasses(TCollection &result, TCollection &visited, bool recurse)
Verify the base classes always. 
 
This namespace contains pre-defined functions to be used in conjuction with TExecutor::Map and TExecu...
 
virtual Bool_t CompareContent(TClass *cl, TVirtualStreamerInfo *info, Bool_t warn, Bool_t complete, TFile *file)=0
 
void AdoptReferenceProxy(TVirtualRefProxy *proxy)
Adopt the Reference proxy pointer to indicate that this class represents a reference. 
 
Int_t GetNmethods()
Return the number of methods of this class Note that in case the list of methods is not yet created...
 
const char * GetFullTypeName() const
Get full type description of data member, e,g.: "class TDirectory*". 
 
void(* DelArrFunc_t)(void *)
 
const char * GetImplFileName() const
 
virtual TClass * GetClass() const =0
 
Collectable string class. 
 
virtual void Clear(Option_t *option="")
Remove all objects from the array. 
 
static void AddClassToDeclIdMap(TDictionary::DeclId_t id, TClass *cl)
static: Add a TClass* to the map of classes. 
 
TVirtualStreamerInfo * FindConversionStreamerInfo(const char *onfile_classname, UInt_t checksum) const
Return a Conversion StreamerInfo from the class 'classname' for the layout represented by 'checksum' ...
 
virtual TVirtualCollectionProxy * GenExplicitProxy(const ::ROOT::Detail::TCollectionProxyInfo &info, TClass *cl)=0
 
TVirtualStreamerInfo * GetConversionStreamerInfo(const char *onfile_classname, Int_t version) const
Return a Conversion StreamerInfo from the class 'classname' for version number 'version' to this clas...
 
R__EXTERN TClassTable * gClassTable
 
ConvSIMap_t fConversionStreamerInfo
 
TDictionary::DeclId_t DeclId_t
 
Long64_t(* MergeFunc_t)(void *, TCollection *, TFileMergeInfo *)
 
void SetDelete(ROOT::DelFunc_t deleteFunc)
Install a new wrapper around 'delete'. 
 
Dictionary for function template This class describes one single function template. 
 
virtual TClass * GetValueClass() const =0
 
virtual Bool_t ClassInfo_IsValid(ClassInfo_t *) const
 
virtual void Delete(Option_t *option="")
Remove all objects from the array AND delete all heap based objects. 
 
All ROOT classes may have RTTI (run time type identification) support added. 
 
static TProtoClass * GetProtoNorm(const char *cname)
Given the class normalized name returns the TClassProto object for the class. 
 
void SetMemberStreamer(const char *name, MemberStreamerFunc_t strm)
Install a new member streamer (p will be copied). 
 
void SetConvStreamerFunc(ClassConvStreamerFunc_t strm)
Set a wrapper/accessor function around this class custom conversion streamer. 
 
A collection of TFunction objects designed for fast access given a DeclId_t and for keep track of TFu...
 
Short_t GetDeclFileLine() const
 
TList * GetListOfEnums(Bool_t load=kTRUE)
Return a list containing the TEnums of a class. 
 
TList * GetMenuList() const
Return the list of menu items associated with the class. 
 
std::atomic< TListOfEnums * > fEnums
 
TClass * GetClassPointer(Bool_t load=kTRUE)
Get pointer to the base class TClass. 
 
static void StreamerExternal(const TClass *pThis, void *object, TBuffer &b, const TClass *onfile_class)
There is special streamer for the class. 
 
void BuildEmulatedRealData(const char *name, Long_t offset, TClass *cl)
Build the list of real data for an emulated class. 
 
TObject * Clone(const char *newname="") const
Create a Clone of this TClass object using a different name but using the same 'dictionary'. 
 
Bool_t TestBit(UInt_t f) const
 
void SetClassVersion(Version_t version)
Private function. 
 
TViewPubFunctions * fAllPubMethod
 
virtual TClass * GetClassPointer() const
Returns a pointer to the TClass of this element. 
 
virtual void SetName(const char *name)
Set the name of the TNamed. 
 
virtual void SetOwner(Bool_t enable=kTRUE)
Set whether this collection is the owner (enable==true) of its content. 
 
Persistent version of a TClass. 
 
void ResetMenuList()
Resets the menu list to it's standard value. 
 
std::atomic< Bool_t > fHasRootPcmInfo
C++ Property of the class (is abstract, has virtual table, etc.) 
 
static THashTable * fgClassTypedefHash
 
const std::type_info * GetTypeInfo() const
 
TVirtualStreamerInfo * GetStreamerInfo(Int_t version=0) const
returns a pointer to the TVirtualStreamerInfo object for version If the object does not exist...
 
const char * GetTypeName() const
Get type of data member, e,g.: "class TDirectory*" -> "TDirectory". 
 
void SetDeleteArray(ROOT::DelArrFunc_t deleteArrayFunc)
Install a new wrapper around 'delete []'. 
 
TMethod * GetClassMethodWithPrototype(const char *name, const char *proto, Bool_t objectIsConst=kFALSE, ROOT::EFunctionMatchMode mode=ROOT::kConversionMatch)
Find the method with a given prototype. 
 
virtual void AddFirst(TObject *obj)
Add object at the beginning of the list. 
 
ROOT::NewArrFunc_t GetNewArray() const
 
ROOT::DirAutoAdd_t fDirAutoAdd
 
static void RemoveClassDeclId(TDictionary::DeclId_t id)
 
Buffer base class used for serializing objects. 
 
static void SetObjectStat(Bool_t stat)
Turn on/off tracking of objects in the TObjectTable. 
 
Bool_t HasInterpreterInfo() const
 
static void StreamerInstrumented(const TClass *pThis, void *object, TBuffer &b, const TClass *onfile_class)
Case of instrumented class with a library. 
 
TClassStreamer * GetStreamer() const
Return the Streamer Class allowing streaming (if any). 
 
This class implements a mutex interface. 
 
ROOT::DelArrFunc_t GetDeleteArray() const
 
void Add(TObject *obj)
This function may not be used (but we need to provide it since it is a pure virtual in TCollection)...
 
TList * GetListOfDataMembers(Bool_t load=kTRUE)
Return list containing the TDataMembers of a class. 
 
const char * GetSharedLibs()
Get the list of shared libraries containing the code for class cls. 
 
virtual TVirtualStreamerInfo * NewInfo(TClass *cl)=0
 
Bool_t HasDictionary() const
Check whether a class has a dictionary or not. 
 
TCollection * GetListOfMethodOverloads(const char *name) const
Return the collection of functions named "name". 
 
const TList * GetListForObject(const char *name) const
Return the TList corresponding to object's name based hash value. 
 
ROOT::DelFunc_t GetDelete() const
 
virtual void Browse(TBrowser *b)
Browse object. May be overridden for another default action. 
 
void GetMissingDictionariesWithRecursionCheck(TCollection &result, TCollection &visited, bool recurse)
From the second level of recursion onwards it is different state check. 
 
TVirtualCollectionProxy * GetCollectionProxy() const
Return the proxy describing the collection (if any). 
 
Bool_t IsStartingWithTObject() const
Returns true if this class inherits from TObject and if the start of the TObject parts is at the very...
 
TString fContextMenuTitle
 
static Bool_t HasNoInfoOrEmuOrFwdDeclaredDecl(const char *)
 
TVirtualIsAProxy * GetIsAProxy() const
Return the proxy implementing the IsA functionality. 
 
TVirtualStreamerInfo * GetCurrentStreamerInfo()
 
Short_t Min(Short_t a, Short_t b)
 
R__EXTERN TVirtualMutex * gROOTMutex
 
const TList * GetListOfAllPublicMethods(Bool_t load=kTRUE)
Returns a list of all public methods of this class and its base classes. 
 
virtual void * New() const
 
void SetContextMenuTitle(const char *title)
Change (i.e. set) the title of the TNamed. 
 
TVirtualRefProxy * fRefProxy
cached streamer info used in the last read. 
 
Each ROOT method (see TMethod) has a linked list of its arguments. 
 
virtual Int_t GetSize() const =0
 
static void StreamerTObjectInitialized(const TClass *pThis, void *object, TBuffer &b, const TClass *onfile_class)
Case of TObjects when fIsOffsetStreamerSet is known to have been set. 
 
void Load()
Load all the DataMembers known to the interpreter for the scope 'fClass' into this collection...
 
static const char * GetElementCounterStart(const char *dmTitle)
Given a comment/title declaring an array counter, for example: //[fArraySize] array of size fArraySiz...
 
Int_t fStreamerType
saved info to call Streamer 
 
bool IsSTLBitset(const char *type)
Return true is the name is std::bitset<number> or bitset<number> 
 
TFunction * Get(DeclId_t id)
Return (after creating it if necessary) the TMethod or TFunction describing the function correspondin...
 
ROOT::NewFunc_t GetNew() const
 
virtual void Stream(TBuffer &b, void *objp, const TClass *onfileClass)
 
Abstract base class for accessing the data-members of a class. 
 
TObject * At(Int_t idx) const
 
static void MoveAddressInRepository(const char *, void *oldadd, void *newadd, const TClass *what)
 
void ReplaceWith(TClass *newcl) const
 
static void StreamerStreamerInfo(const TClass *pThis, void *object, TBuffer &b, const TClass *onfile_class)
Case of where we should directly use the StreamerInfo. 
 
const char * GetFullTypeName() const
Get full type description of method argument, e.g.: "class TDirectory*". 
 
void AdoptStreamer(TClassStreamer *strm)
Adopt a TClassStreamer object. 
 
virtual void Clear(Option_t *)=0
Set name and title to empty strings (""). 
 
std::atomic< Bool_t > fIsOffsetStreamerSet
Indicates whether the ClassInfo is supposed to be available. 
 
TMethod * GetMethodAllAny(const char *method)
Return pointer to method without looking at parameters. 
 
std::atomic< TVirtualStreamerInfo * > fLastReadInfo
cached current streamer info. 
 
void SetClassSize(Int_t sizof)
 
virtual TVirtualPad * cd(Int_t subpadnumber=0)=0
 
R__EXTERN void **(* gThreadTsd)(void *, Int_t)
 
UInt_t Hash(ECaseCompare cmp=kExact) const
Return hash value. 
 
virtual void AddLast(TObject *obj)
Add object at the end of the list. 
 
void SetBit(UInt_t f, Bool_t set)
Set or unset the user status bits as specified in f. 
 
void DeleteArray(void *ary, Bool_t dtorOnly=kFALSE)
Explicitly call operator delete[] for an array. 
 
virtual TObject * FindObject(const char *name) const
Find an object in this list using its name. 
 
char * EscapeChars(const char *text) const
Introduce an escape character (@) in front of a special chars. 
 
void ResetInstanceCount()
 
virtual void ClassInfo_Destruct(ClassInfo_t *, void *) const
 
Int_t ReadBuffer(TBuffer &b, void *pointer, Int_t version, UInt_t start, UInt_t count)
Function called by the Streamer functions to deserialize information from buffer b into object at p...
 
void Move(void *arenaFrom, void *arenaTo) const
Register the fact that an object was moved from the memory location 'arenaFrom' to the memory locatio...
 
static IdMap_t * GetIdMap()
 
static void StreamerTObjectEmulated(const TClass *pThis, void *object, TBuffer &b, const TClass *onfile_class)
Case of TObjects when we do not have the library defining the class. 
 
Int_t GetBaseClassOffset(const TClass *toBase, void *address=0, bool isDerivedObject=true)
 
TDeclNameRegistry & fNoInfoOrEmuOrFwdDeclNameRegistry
 
virtual int ClassInfo_Size(ClassInfo_t *) const
 
Int_t GetBaseClassOffsetRecurse(const TClass *toBase)
Return data member offset to the base class "cl". 
 
TIsAProxy implementation class. 
 
Bool_t IsBasic() const
Return true if data member is a basic type, e.g. char, int, long... 
 
virtual Int_t GetClassVersion() const =0
 
THashTable implements a hash table to store TObject's. 
 
virtual const char * ClassInfo_Title(ClassInfo_t *) const
 
TMethod * FindClassOrBaseMethodWithId(DeclId_t faddr)
Find a method with decl id in this class or its bases. 
 
static TString Format(const char *fmt,...)
Static method which formats a string using a printf style format descriptor and return a TString...
 
void Dump() const
Dump contents of object on stdout. 
 
Bool_t FillTClass(TClass *pcl)
Move data from this TProtoClass into cl. 
 
std::atomic< TList * > fBase
 
static Int_t ReadRules()
Read the class.rules files from the default location:. 
 
void * InterfaceMethod() const
Return pointer to the interface method. 
 
ClassStreamerFunc_t fStreamerFunc
 
virtual TObject * FindObject(const char *name) const
Find an object in this collection using its name. 
 
void Init(const char *name, Version_t cversion, const std::type_info *info, TVirtualIsAProxy *isa, const char *dfil, const char *ifil, Int_t dl, Int_t il, ClassInfo_t *classInfo, Bool_t silent)
Initialize a TClass object. 
 
static DeclIdMap_t * GetDeclIdMap()
 
virtual Long_t ClassInfo_Property(ClassInfo_t *) const
 
virtual Int_t GetOffset(const char *) const =0
 
TVirtualStreamerInfo * GetStreamerInfoAbstractEmulated(Int_t version=0) const
For the case where the requestor class is emulated and this class is abstract, returns a pointer to t...
 
Long_t Property() const
Get property description word. For meaning of bits see EProperty. 
 
void(* MemberStreamerFunc_t)(TBuffer &, void *, Int_t)
 
virtual TVirtualCollectionProxy * GenEmulatedProxy(const char *class_name, Bool_t silent)=0
 
ROOT::ResetAfterMergeFunc_t fResetAfterMerge
 
Bool_t IsLoaded() const
Return true if the shared library of this class is currently in the a process's memory. 
 
Int_t GetDelta()
Get offset from "this" to part of base class. 
 
virtual void BuildOld()=0
 
virtual void * ClassInfo_New(ClassInfo_t *) const
 
void InterpretedShowMembers(void *obj, TMemberInspector &insp, Bool_t isTransient)
Do a ShowMembers() traversal of all members and base classes' members using the reflection informatio...
 
void ResetClassInfo()
Make sure that the current ClassInfo is up to date. 
 
static void GetDateTime(UInt_t datetime, Int_t &date, Int_t &time)
Static function that returns the date and time. 
 
void SetStreamerFunc(ClassStreamerFunc_t strm)
Set a wrapper/accessor function around this class custom streamer. 
 
std::string ResolveTypedef(const char *tname, bool resolveAll=false)
 
void Add(THist< DIMENSIONS, PRECISION_TO, STAT_TO... > &to, THist< DIMENSIONS, PRECISION_FROM, STAT_FROM... > &from)
Add two histograms. 
 
void AdoptStreamer(TMemberStreamer *p)
 
virtual const char * PrependPathName(const char *dir, TString &name)
Concatenate a directory and a file name. 
 
virtual void Destructor(void *p, Bool_t dtorOnly=kFALSE) const
 
ClassConvStreamerFunc_t GetConvStreamerFunc() const
Get a wrapper/accessor function around this class custom conversion streamer (member function)...
 
void * NewArray(Long_t nElements, ENewType defConstructor=kClassNew) const
Return a pointer to a newly allocated array of objects of this class. 
 
Long_t GetThisOffset() const
 
ClassInfo_t * GetClassInfo() const
 
void *(* NewFunc_t)(void *)
 
TDataType * GetDataType() const
 
virtual TClass * GetActualClass(const void *obj) const =0
 
virtual void * NewArray(Long_t nElements, void *ary=0)=0
 
bool IsStdArray(std::string_view name)
 
virtual Long_t DataMemberInfo_Property(DataMemberInfo_t *) const
 
void RegisterStreamerInfo(TVirtualStreamerInfo *info)
Register the StreamerInfo in the given slot, change the State of the TClass as appropriate. 
 
std::atomic< Bool_t > fVersionUsed
saved remember if fOffsetStreamer has been set. 
 
TListOfFunctionTemplates * fFuncTemplate
 
static ENewType IsCallingNew()
Static method returning the defConstructor flag passed to TClass::New(). 
 
TClass *(* DictFuncPtr_t)()
 
Int_t WriteBuffer(TBuffer &b, void *pointer, const char *info="")
Function called by the Streamer functions to serialize object at p to buffer b. 
 
const char * GetVersion() const
Get the version string. 
 
bool IsInterpreterDetail(const char *type)
Return true if the type is one the interpreter details which are only forward declared (ClassInfo_t e...
 
TVirtualPad is an abstract base class for the Pad and Canvas classes. 
 
ROOT::MergeFunc_t GetMerge() const
 
const TObjArray * GetStreamerInfos() const
 
TViewPubDataMembers * fAllPubData
 
TVirtualStreamerInfo * SetStreamerInfo(Int_t version, const char *info="")
Info is a string describing the names and types of attributes written by the class Streamer function...
 
ROOT::Detail::TSchemaRuleSet * fSchemaRules
Pointer to reference proxy if this class represents a reference. 
 
void(* ClassConvStreamerFunc_t)(TBuffer &, void *, const TClass *)
 
std::atomic< StreamerImpl_t > fStreamerImpl
 
ROOT::DesFunc_t GetDestructor() const
 
virtual TObject * FindObject(const char *name) const
Specialize FindObject to do search for the a function just by name or create it if its not already in...
 
~InsertTClassInRegistryRAII()
 
virtual void SetUniqueID(UInt_t uid)
Set the unique object id. 
 
Int_t GetMaxIndex(Int_t dim) const
Return maximum index for array dimension "dim". 
 
View implementing the TList interface and giving access all the TDictionary describing public data me...
 
TClass * GetBaseClass(const char *classname)
Return pointer to the base class "classname". 
 
const char * fImplFileName
 
virtual int DataMemberInfo_MaxIndex(DataMemberInfo_t *, Int_t) const
 
virtual void BuildCheck(TFile *file=0)=0
 
void(* ResetAfterMergeFunc_t)(void *, TFileMergeInfo *)
 
void ls(Option_t *opt="") const
The ls function lists the contents of a class on stdout. 
 
virtual void Delete(Option_t *option="")
Delete all TFunction object files. 
 
void BuildRealData(void *pointer=0, Bool_t isTransient=kFALSE)
Build a full list of persistent data members. 
 
virtual const char * DataMemberInfo_TypeName(DataMemberInfo_t *) const
 
virtual TObject * FindObject(const TObject *obj) const
Find object using its hash value (returned by its Hash() member). 
 
Using a TBrowser one can browse all ROOT objects. 
 
Bool_t IsCompiled() const
 
std::atomic_flag & fAFlag
 
virtual DataMemberInfo_t * DataMemberInfo_Factory(ClassInfo_t *=0) const
 
static void RegisterAddressInRepository(const char *, void *location, const TClass *what)
 
void SetNew(ROOT::NewFunc_t newFunc)
Install a new wrapper around 'new'. 
 
Int_t GetLast() const
Return index of last object in array. 
 
static DictFuncPtr_t GetDict(const char *cname)
Return a pointer to the dictionary loading function generated by rootcint. 
 
std::atomic< TVirtualStreamerInfo * > fCurrentInfo
Current 'state' of the class (Emulated,Interpreted,Loaded) 
 
virtual void ls(Option_t *option="") const
List TNamed name and title. 
 
virtual TList * GetListOfMethodArgs()
Returns methodarg list and additionally updates fDataMember in TMethod by calling FindDataMember();...
 
virtual void DataMemberInfo_Delete(DataMemberInfo_t *) const
 
Int_t GetNargs() const
Number of function arguments. 
 
virtual char * ReadString(char *s, Int_t max)=0
 
void *(* NewArrFunc_t)(Long_t size, void *arena)
 
virtual Bool_t BuildFor(const TClass *cl)=0
 
virtual TObject * FindObject(const char *name) const
Must be redefined in derived classes. 
 
Long64_t GetValue(ULong64_t hash, Long64_t key)
Return the value belonging to specified key and hash value. 
 
virtual void AddAtAndExpand(TObject *obj, Int_t idx)
Add object at position idx. 
 
TVirtualStreamerInfo * FindStreamerInfo(TObjArray *arr, UInt_t checksum) const
Find the TVirtualStreamerInfo in the StreamerInfos corresponding to checksum. 
 
R__EXTERN TSystem * gSystem
 
const char * GetTargetClass() const
Get the targte class of this rule (i.e. the in memory class). 
 
void AdoptMemberStreamer(const char *name, TMemberStreamer *strm)
Adopt the TMemberStreamer pointer to by p and use it to Stream non basic member name. 
 
void MakeCustomMenuList()
Makes a customizable version of the popup menu list, i.e. 
 
void GetNormalizedName(std::string &norm_name, std::string_view name)
Return the normalized name. 
 
Basic data type descriptor (datatype information is obtained from CINT). 
 
TObject * Remove(TObject *key)
Remove the (key,value) pair with key from the map. 
 
This class defines an abstract interface that must be implemented by all classes that contain diction...
 
void GetMissingDictionariesForPairElements(TCollection &result, TCollection &visited, bool recurse)
 
TClass * GetActualClass(const void *object) const
Return a pointer the the real class of the object. 
 
void SetDestructor(ROOT::DesFunc_t destructorFunc)
Install a new wrapper around the destructor. 
 
virtual Long_t DataMemberInfo_TypeProperty(DataMemberInfo_t *) const
 
Bool_t HasDefaultConstructor() const
 
virtual TObject * RemoveAt(Int_t idx)
Remove object at index idx. 
 
void Delete(Option_t *option="")
Delete is not allowed in this class. 
 
virtual TObject * Remove(TObject *obj)
Remove object from the list. 
 
void GetMissingDictionariesForMembers(TCollection &result, TCollection &visited, bool recurse)
Verify the Data Members. 
 
virtual Bool_t HasPointers() const =0
 
void SetGlobalIsA(IsAGlobalFunc_t)
This function installs a global IsA function for this class. 
 
void Store(TBuffer &b) const
Store class description on I/O buffer. 
 
void SetUnloaded()
Call this method to indicate that the shared library containing this class's code has been removed (u...
 
virtual void Inspect() const
Dump contents of this object in a graphics canvas. 
 
Collection abstract base class. 
 
virtual Int_t AutoParse(const char *cls)=0
 
void SetDirectoryAutoAdd(ROOT::DirAutoAdd_t dirAutoAddFunc)
Install a new wrapper around the directory auto add function. 
 
void Destructor(void *obj, Bool_t dtorOnly=kFALSE)
Explicitly call destructor for object. 
 
void IgnoreTObjectStreamer(Bool_t ignore=kTRUE)
When the class kIgnoreTObjectStreamer bit is set, the automatically generated Streamer will not call ...
 
void SetClass(TClass *cls)
Set the TClass associated with this rule set. 
 
static void StreamerTObject(const TClass *pThis, void *object, TBuffer &b, const TClass *onfile_class)
Case of TObjects. 
 
Long_t Property() const
Get property description word. For meaning of bits see EProperty. 
 
Int_t GetEntriesFast() const
 
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message. 
 
ROOT::DirAutoAdd_t GetDirectoryAutoAdd() const
 
void Draw(Option_t *option="")
Draw detailed class inheritance structure. 
 
Int_t Size() const
Return size of object of this class. 
 
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)
Global function called by a class' static Dictionary() method (see the ClassDef macro). 
 
static void UnregisterAddressInRepository(const char *, void *location, const TClass *what)
 
void GetMissingDictionaries(THashTable &result, bool recurse=false)
Get the classes that have a missing dictionary starting from this one. 
 
The TRealData class manages the effective list of all data members for a given class. 
 
virtual void Browse(TBrowser *b)
This method is called by a browser to get the class information. 
 
Bool_t CanIgnoreTObjectStreamer()
 
InsertTClassInRegistryRAII(TClass::EState &state, const char *name, TDeclNameRegistry &emuRegistry)
 
Objects following this interface can be passed onto the TROOT object to implement a user customized w...
 
Int_t GetArrayDim() const
Return number of array dimensions. 
 
The ROOT global object gROOT contains a list of all defined classes. 
 
TVirtualCollectionProxy * fCollectionProxy
 
TClass * GetBaseDataMember(const char *datamember)
Return pointer to (base) class that contains datamember. 
 
ROOT::ESTLType GetCollectionType() const
Return the 'type' of the STL the TClass is representing. 
 
ROOT::TMapTypeToTClass IdMap_t
 
Bool_t InheritsFrom(const char *cl) const
Return kTRUE if this class inherits from a class with name "classname". 
 
static Bool_t GetObjectStat()
Get status of object stat flag. 
 
Long_t Property() const
Set TObject::fBits and fStreamerType to cache information about the class. 
 
bool IsStdClass(const char *type)
return true if the class belongs to the std namespace 
 
Bool_t MatchLegacyCheckSum(UInt_t checksum) const
Return true if the checksum passed as argument is one of the checksum value produced by the older che...
 
static TVirtualMutex * gOVRMutex
 
Each class (see TClass) has a linked list of its base class(es). 
 
virtual TObjLink * FirstLink() const
 
void SetCollectionProxy(const ROOT::Detail::TCollectionProxyInfo &)
Create the collection proxy object (and the streamer object) from using the information in the TColle...
 
TListOfFunctions * GetMethodList()
Return (create an empty one if needed) the list of functions. 
 
View implementing the TList interface and giving access all the TFunction describing public methods i...
 
#define R__LOCKGUARD2(mutex)
 
static void StreamerDefault(const TClass *pThis, void *object, TBuffer &b, const TClass *onfile_class)
Default streaming in cases where either we have no way to know what to do or if Property() has not ye...
 
static void RemoveClass(TClass *cl)
static: Remove a class from the list and map of classes 
 
TList * GetListOfAllPublicDataMembers(Bool_t load=kTRUE)
Returns a list of all public data members of this class and its base classes. 
 
virtual void SetClass(TClass *classptr)=0
 
void Load()
Load all the functions known to the interpreter for the scope 'fClass' and all its bases classes...
 
virtual void Destructor(void *p, Bool_t dtorOnly=kFALSE)=0
 
const char * GetTargetString() const
Get the target data members of this rule as a simple string (i.e. the in memory data member)...
 
TMethod * GetClassMethod(Long_t faddr)
Look for a method in this class that has the interface function address faddr. 
 
ROOT::DesFunc_t fDestructor
 
const char * GetTrueTypeName() const
Get full type description of data member, e,g.: "class TDirectory*". 
 
std::atomic_flag fSpinLock
 
virtual void ClassInfo_DeleteArray(ClassInfo_t *, void *, bool) const
 
std::unordered_set< std::string > fClassNamesSet
 
virtual Int_t ReadClassBuffer(const TClass *cl, void *pointer, const TClass *onfile_class=0)=0
 
void ForceReload(TClass *oldcl)
we found at least one equivalent. 
 
void SetCanSplit(Int_t splitmode)
Set the splitability of this class: -1: Use the default calculation 0: Disallow splitting 1: Always a...
 
std::atomic< TListOfFunctions * > fMethod
 
Bool_t CanSplitBaseAllow()
Pointer to the function implementing the right streaming behavior for the class represented by this o...
 
ROOT::DelArrFunc_t fDeleteArray
 
Class used by TMap to store (key,value) pairs. 
 
A collection of TEnum objects designed for fast access given a DeclId_t and for keep track of TEnum t...
 
Bool_t CallShowMembers(const void *obj, TMemberInspector &insp, Bool_t isTransient=kFALSE) const
Call ShowMembers() on the obj of this class type, passing insp and parent. 
 
Version_t GetClassVersion() const
 
TObject * FindObject(const char *name) const
Find object using its name. 
 
TObject * UncheckedAt(Int_t i) const
 
static const double x1[5]
 
TObjArray * fStreamerInfo
 
std::atomic< TClass ** > fPersistentRef
 
virtual UInt_t Sizeof() const =0
 
Long_t fOffsetStreamer
Indicates whether GetClassVersion has been called. 
 
EState fState
cached of the streaming method to use 
 
ROOT::ResetAfterMergeFunc_t GetResetAfterMerge() const
 
virtual void ls(Option_t *option="") const
List (ls) all objects in this collection. 
 
virtual TObjArray * GetElements() const =0
 
static DictFuncPtr_t GetDict(const char *cname)
Given the class name returns the Dictionary() function of a class (uses hash of name). 
 
virtual Bool_t IsaPointer() const
 
void RemoveStreamerInfo(Int_t slot)
Remove and delete the StreamerInfo in the given slot. 
 
Long_t GetDataMemberOffset(const char *membername) const
return offset for member name. 
 
Wrapper around a TObject so it can be stored in a TList. 
 
TMap implements an associative array of (key,value) pairs using a THashTable for efficient retrieval ...
 
TClass::ENewType & TClass__GetCallingNew()
 
static void AddClass(TClass *cl)
static: Add a class to the list and map of classes. 
 
TList * GetListOfRealData() const
 
Bool_t HasDataMemberInfo() const
 
virtual int DataMemberInfo_TypeSize(DataMemberInfo_t *) const
 
const std::type_info * fTypeInfo
 
virtual Bool_t IsBase() const
Return kTRUE if the element represent a base class. 
 
virtual ~TClass()
TClass dtor. Deletes all list that might have been created. 
 
virtual Long_t ClassInfo_GetBaseOffset(ClassInfo_t *, ClassInfo_t *, void *=0, bool=true) const
 
double func(double *x, double *p)
 
void SetStreamerImpl()
Internal routine to set fStreamerImpl based on the value of fStreamerType. 
 
TMethod * GetMethod(const char *method, const char *params, Bool_t objectIsConst=kFALSE)
Find the best method (if there is one) matching the parameters. 
 
void Add(TObject *obj)
Add object to the hash table. 
 
virtual void * At(UInt_t idx)=0
 
static TDeclNameRegistry fNoInfoOrEmuOrFwdDeclNameRegistry
 
#define R__LOCKGUARD(mutex)
 
TClass *(* IsAGlobalFunc_t)(const TClass *, const void *obj)
 
EMenuItemKind IsMenuItem() const
 
virtual void Add(TObject *obj)=0
 
TVirtualStreamerInfo * DetermineCurrentStreamerInfo()
Determine and set pointer to current TVirtualStreamerInfo. 
 
Long_t Property() const
Get property description word. For meaning of bits see EProperty. 
 
virtual Version_t GetOldVersion() const =0
 
static TClass * GetClass(const char *name, Bool_t load=kTRUE, Bool_t silent=kFALSE)
Static method returning pointer to TClass of the specified class name. 
 
std::atomic< Long_t > fProperty
Indicates whether this class can be split or not. 
 
virtual TClassStreamer * Generate() const
 
UInt_t Find(std::list< std::pair< const Node< T > *, Float_t > > &nlist, const Node< T > *node, const T &event, UInt_t nfind)
 
static TClass * LoadClass(const char *requestedname, Bool_t silent)
Helper function used by TClass::GetClass(). 
 
Bool_t IsPersistent() const
 
virtual void Update(const TClass *oldClass, TClass *newClass)=0
 
virtual void Delete(Option_t *option="")
Delete all TDataMember object files. 
 
IsAGlobalFunc_t fGlobalIsA
pointer to the class's IsA proxy. 
 
virtual TObject * Clone(const char *newname="") const
Make a clone of an object using the Streamer facility. 
 
ROOT::TMapDeclIdToTClass DeclIdMap_t
 
virtual const char * DataMemberInfo_Name(DataMemberInfo_t *) const
 
Long_t fClassProperty
Property. 
 
TDeclNameRegistry(Int_t verbLevel=0)
TDeclNameRegistry class constructor. 
 
Mother of all ROOT objects. 
 
const char * AsString(void *buf) const
Return string containing value in buffer formatted according to the basic data type. 
 
Global functions class (global functions are obtained from CINT). 
 
virtual void Inspect(TClass *cl, const char *parent, const char *name, const void *addr)
 
TFunctionTemplate * GetFunctionTemplate(const char *name)
 
static TVirtualStreamerInfo * Factory()
Static function returning a pointer to a new TVirtualStreamerInfo object. 
 
void Load()
Load all the functions known to the interpreter for the scope 'fClass' into this collection. 
 
void(* DelFunc_t)(void *)
 
Bool_t IsFolder() const
Returns kTRUE in case object contains browsable objects (like containers or lists of other objects)...
 
TObject * GetObject() const
 
virtual UInt_t Size() const =0
 
TClassRef is used to implement a permanent reference to a TClass object. 
 
static std::atomic< Int_t > fgClassCount
 
virtual void ClassInfo_Delete(ClassInfo_t *) const
 
TNameMapNode(const char *typedf, const char *orig)
 
Bool_t IsTObject() const
Return kTRUE is the class inherits from TObject. 
 
void Unload()
Mark 'all func' as being unloaded. 
 
virtual const char * ClassInfo_FullName(ClassInfo_t *) const
 
void AddImplFile(const char *filename, int line)
 
TObject * FindObject(const char *keyname) const
Check if a (key,value) pair exists with keyname as name of the key. 
 
TVirtualMutex * gInterpreterMutex
 
Bool_t HasDeclName(const char *name) const
 
std::atomic< UInt_t > fCheckSum
 
TListOfDataMembers * fData
 
A collection of TEnum objects designed for fast access given a DeclId_t and for keep track of TEnum t...
 
ROOT::ESTLType IsSTLContainer()
Return which type (if any) of STL container the data member is. 
 
const char * GetTypeName() const
 
virtual Int_t GetOnFileClassVersion() const =0
 
virtual void Add(TObject *obj)
 
void(* DirAutoAdd_t)(void *, TDirectory *)
 
virtual void DeleteArray(void *p, Bool_t dtorOnly=kFALSE)=0
 
R__EXTERN const char * gRootDir
 
virtual Long_t ClassInfo_ClassProperty(ClassInfo_t *) const
 
static TClass * LoadClassDefault(const char *requestedname, Bool_t silent)
Helper function used by TClass::GetClass(). 
 
Each ROOT class (see TClass) has a linked list of methods. 
 
std::string ShortType(const char *typeDesc, int mode)
Return the absolute type of typeDesc. 
 
void GetMenuItems(TList *listitems)
Returns list of methods accessible by context menu. 
 
you should not use this method at all Int_t Int_t Double_t Double_t Double_t Int_t Double_t Double_t Double_t Double_t b
 
static TClass * Load(TBuffer &b)
Load class description from I/O buffer and return class object. 
 
ClassConvStreamerFunc_t fConvStreamerFunc
 
TClass * GetClass() const
 
Int_t GetEntries() const
Return the number of objects in array (i.e. 
 
virtual TObject * FindObject(const char *name) const
Find an object in this collection using its name. 
 
void Load()
Load all the DataMembers known to the interpreter for the scope 'fClass' and all its bases classes...
 
const char * fDeclFileName
 
virtual int DataMemberInfo_ArrayDim(DataMemberInfo_t *) const
 
TClassStreamer * fStreamer
 
void SetMerge(ROOT::MergeFunc_t mergeFunc)
Install a new wrapper around 'Merge'. 
 
void SetCurrentStreamerInfo(TVirtualStreamerInfo *info)
Set pointer to current TVirtualStreamerInfo. 
 
std::atomic< Bool_t > fCanLoadClassInfo
Whether info was loaded from a root pcm. 
 
static void ConvStreamerInstrumented(const TClass *pThis, void *object, TBuffer &b, const TClass *onfile_class)
Case of instrumented class with a library. 
 
void LoadClassInfo() const
Try to load the classInfo (it may require parsing the header file and/or loading data from the clang ...
 
virtual Int_t ReadClassEmulated(const TClass *cl, void *object, const TClass *onfile_class=0)=0
 
TDataMember * GetDataMember(const char *datamember) const
Return pointer to datamember object with name "datamember". 
 
ClassStreamerFunc_t GetStreamerFunc() const
Get a wrapper/accessor function around this class custom streamer (member function). 
 
void * DynamicCast(const TClass *base, void *obj, Bool_t up=kTRUE)
Cast obj of this class type up to baseclass cl if up is true. 
 
void SetResetAfterMerge(ROOT::ResetAfterMergeFunc_t resetFunc)
Install a new wrapper around 'ResetAfterMerge'. 
 
const ROOT::Detail::TSchemaRuleSet * GetSchemaRules() const
Return the set of the schema rules if any. 
 
A collection of TFunction objects designed for fast access given a DeclId_t and for keep track of TFu...
 
TMethod * GetMethodAny(const char *method)
Return pointer to method without looking at parameters. 
 
UInt_t GetCheckSum(ECheckSum code=kCurrentCheckSum) const
Call GetCheckSum with validity check. 
 
virtual TClass * GetClassPointer() const
Returns a pointer to the TClass of this element. 
 
virtual void Fatal(const char *method, const char *msgfmt,...) const
Issue fatal error message. 
 
const Bool_t kIterBackward
 
virtual TList * GetListForObject(const char *name) const
Return the set of overloads for this name, collecting all available ones. 
 
R__EXTERN TInterpreter * gCling
 
virtual const char * GetName() const
Returns name of object. 
 
virtual Int_t GetSize() const
 
Abstract Interface class describing Streamer information for one class. 
 
virtual const char * GetName() const
Returns name of object. 
 
TVirtualStreamerInfo * FindStreamerInfoAbstractEmulated(UInt_t checksum) const
For the case where the requestor class is emulated and this class is abstract, returns a pointer to t...
 
static Bool_t HasDictionarySelection(const char *clname)
Check whether a class has a dictionary or ROOT can load one. 
 
TMethod * GetMethodWithPrototype(const char *method, const char *proto, Bool_t objectIsConst=kFALSE, ROOT::EFunctionMatchMode mode=ROOT::kConversionMatch)
Find the method with a given prototype. 
 
virtual void SetTitle(const char *title="")
Set the title of the TNamed. 
 
TList * GetListOfMethods(Bool_t load=kTRUE)
Return list containing the TMethods of a class. 
 
Bool_t IsaPointer() const
Return true if data member is a pointer. 
 
void SetNewArray(ROOT::NewArrFunc_t newArrayFunc)
Install a new wrapper around 'new []'. 
 
virtual TVirtualRefProxy * Clone() const =0
 
virtual void DeleteArray(void *p, Bool_t dtorOnly=kFALSE) const
 
static DictFuncPtr_t GetDictNorm(const char *cname)
Given the normalized class name returns the Dictionary() function of a class (uses hash of name)...
 
TSpinLockGuard(std::atomic_flag &aflag)
 
void CopyCollectionProxy(const TVirtualCollectionProxy &)
Copy the argument. 
 
std::multimap< void *, ObjRepoValue > RepoCont_t
 
static Int_t AutoBrowse(TObject *obj, TBrowser *browser)
Browse external object inherited from TObject. 
 
TRealData * GetRealData(const char *name) const
Return pointer to TRealData element with name "name". 
 
virtual Bool_t ClassInfo_HasMethod(ClassInfo_t *, const char *) const
 
This class stores a (key,value) pair using an external hash. 
 
ROOT::MergeFunc_t fMerge
saved info to call a IsA member function 
 
void CalculateStreamerOffset() const
Calculate the offset between an object of this class to its base class TObject. 
 
virtual void Warning(const char *method, const char *msgfmt,...) const
Issue warning message. 
 
void AddAt(UInt_t slot, ULong64_t hash, Long64_t key, Long64_t value)
Add an (key,value) pair to the table. 
 
void Class_ShowMembers(TClass *cl, const void *obj, TMemberInspector &)
Indirect call to the implementation of ShowMember allowing [forward] declaration with out a full defi...
 
virtual const char * GetTitle() const
Returns title of object. 
 
void AdoptSchemaRules(ROOT::Detail::TSchemaRuleSet *rules)
Adopt a new set of Data Model Evolution rules. 
 
Bool_t SetFromRule(const char *rule)
Set the content fot this object from the rule See TClass::AddRule for details on the syntax...
 
TObject * Remove(TObject *obj)
Remove object from the hashtable. 
 
virtual TVirtualCollectionProxy * Generate() const =0
 
static RepoCont_t gObjectVersionRepository
 
virtual void WriteString(const char *s)=0
 
void * New(ENewType defConstructor=kClassNew, Bool_t quiet=kFALSE) const
Return a pointer to a newly allocated object of this class. 
 
virtual int SetClassAutoloading(int) const
 
virtual UInt_t GetCheckSum() const =0
 
void(* DesFunc_t)(void *)
 
TList * GetListOfFunctionTemplates(Bool_t load=kTRUE)
Return list containing the TEnums of a class.