62   static std::mutex sMutex;
 
  143#define R__USE_STD_MAP 
  145#if defined R__USE_STD_MAP 
  149      typedef std::map<std::string, TClassRec*> 
IdMap_t;
 
  171         if (iter != 
fMap.end()) cl = iter->second;
 
  178         Info(
"TMapTypeToClassRec::Print", 
"printing the typeinfo map in TClassTable");
 
  180            printf(
"Key: %40s 0x%zx\n", iter->first.c_str(), (
size_t)iter->second);
 
  187#ifdef R__COMPLETE_MEM_TERMINATION 
  212      void Remove(
const char *key) {
 
  221         Info(
"TMapTypeToClassRec::Print", 
"printing the typeinfo map in TClassTable");
 
  228               printf(
"  class: %s %d\n",
data->fName,
data->fId);
 
  230               printf(
"  no class: \n");
 
  239      auto p = 
reinterpret_cast<const unsigned char*
>( 
name );
 
  242      while (*
p) slot = slot<<1 ^ *
p++;
 
  250      static std::vector<std::unique_ptr<TClassRec>> delayedAddClass;
 
  251      return delayedAddClass;
 
  256      static std::vector<std::pair<const char *, const char *>> delayedAddClassAlternate;
 
  257      return delayedAddClassAlternate;
 
  339   int n = 0, ninit = 0, nl = 0;
 
  345   Printf(
"\nDefined classes");
 
  346   Printf(
"class                                 version  bits  initialized");
 
  347   Printf(
"================================================================");
 
  357         Printf(
"%-35s %6d %7d       Yes", 
r->fName, 
r->fId, 
r->fBits);
 
  359         Printf(
"%-35s %6d %7d       No",  
r->fName, 
r->fId, 
r->fBits);
 
  361   Printf(
"----------------------------------------------------------------");
 
  362   Printf(
"Listed Classes: %4d  Total classes: %4d   initialized: %4d",nl, 
n, ninit);
 
  363   Printf(
"================================================================\n");
 
  402      ::Fatal(
"TClassTable::Add()", 
"Failed to deduce type for '%s'", info.name());
 
  413   if (
r->fName && 
r->fInfo) {
 
  423         ::Warning(
"TClassTable::Add", 
"class %s already in TClassTable", 
cname);
 
  446   r->fBits = pragmabits;
 
  474      if (
r->fProto) 
delete r->fProto;
 
  480         proto->FillTClass(oldcl);
 
  491         ::Warning(
"TClassTable::Add(TProtoClass*)",
"Called for existing class without a prior call add the dictionary function.");
 
  519      if (strcmp(alternate,
a->fName)==0) {
 
  520         if (strcmp(normName,
a->fNormName) != 0) {
 
  521            fprintf(stderr,
"Error in TClassTable::AddAlternate: " 
  522                    "Second registration of %s with a different normalized name (old: '%s', new: '%s')\n",
 
  523                    alternate, 
a->fNormName, normName);
 
  551         if (
a->fNext.get() == alt) {
 
  552            a->fNext.swap( alt->
fNext );
 
  553       assert( alt == alt->
fNext.get());
 
  554       alt->
fNext.release();
 
  578      if (strcmp(
cname,
a->fName)==0) {
 
  579         normname = 
a->fNormName;
 
  603      if (!strcmp(
r->fName, 
cname)) {
 
  632      if (strcmp(
cname, 
r->fName) == 0)
 
  703      ::Info(
"GetDict", 
"searches for %s at 0x%zx", info.name(), (
size_t)&info);
 
  832   int n = 0, ninit = 0;
 
  834   Printf(
"\nDefined classes");
 
  835   Printf(
"class                                 version  bits  initialized");
 
  836   Printf(
"================================================================");
 
  838   for (
UInt_t i = 0; i < last; i++) {
 
  843      if (
gROOT->GetListOfClasses()->FindObject(
r->fName)) {
 
  845         Printf(
"%-35s %6d %7d       Yes", 
r->fName, 
r->fId, 
r->fBits);
 
  847         Printf(
"%-35s %6d %7d       No",  
r->fName, 
r->fId, 
r->fBits);
 
  849   Printf(
"----------------------------------------------------------------");
 
  850   Printf(
"Total classes: %4d   initialized: %4d", 
n, ninit);
 
  851   Printf(
"================================================================\n");
 
  897                    const std::type_info& info,
 
  902      auto r = std::unique_ptr<TClassRec>(
new TClassRec(
nullptr));
 
  905      r->fBits = pragmabits;
 
  962         if (
cname!=(
void*)-1)
 
  963            Error(
"ResetClassVersion",
"Version number of %s can not be changed after first usage!",
 
  967            Error(
"SetClassVersion",
"The class version (for %s) must be positive (value %d is ignored)",cl->
GetName(),newid);
 
  969         if (
cname==(
void*)-1) {
 
 1009   static Bool_t isInit = []() {
 
size_t size(const MatrixT &matrix)
retrieve the size of a square matrix
 
TClass *(* DictFuncPtr_t)()
 
static std::mutex & GetClassTableMutex()
 
TClassTable * gClassTable
 
static int ClassComp(const void *a, const void *b)
 
R__EXTERN TClassTable * gClassTable
 
void Info(const char *location, const char *msgfmt,...)
Use this function for informational messages.
 
void Error(const char *location, const char *msgfmt,...)
Use this function in case an error occurred.
 
winID h TVirtualViewer3D TVirtualGLPainter p
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void data
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t r
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t index
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize id
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char cname
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void reg
 
R__EXTERN TInterpreter * gCling
 
void Printf(const char *fmt,...)
Formats a string in a circular formatting buffer and prints the string.
 
char * StrDup(const char *str)
Duplicate the string str.
 
TClassAlt(const char *alternate, const char *normName, TClassAlt *next)
 
std::unique_ptr< TClassAlt > fNext
 
TClassRec(TClassRec *next)
 
const std::type_info * fInfo
 
IdMap_t::size_type size_type
 
IdMap_t::mapped_type mapped_type
 
void Add(const key_type &key, mapped_type &obj)
 
IdMap_t::key_type key_type
 
std::map< std::string, TClassRec * > IdMap_t
 
IdMap_t::const_iterator const_iterator
 
void Remove(const key_type &key)
 
mapped_type Find(const key_type &key) const
 
IdMap_t::size_type size_type
 
IdMap_t::mapped_type mapped_type
 
IdMap_t::const_iterator const_iterator
 
IdMap_t::key_type key_type
 
const std::string & GetNormalizedName() const
 
std::string fNormalizedName
 
NormalizeThenLock(const NormalizeThenLock &)=delete
 
NormalizeThenLock(const char *cname)
 
NormalizeThenLock(NormalizeThenLock &&)=delete
 
NormalizeThenLock()=delete
 
NormalizeThenLock & operator=(const NormalizeThenLock &)=delete
 
NormalizeThenLock & operator=(NormalizeThenLock &&)=delete
 
This class registers for all classes their name, id and dictionary function in a hash table.
 
static void PrintTable()
Print the class table.
 
static Int_t GetPragmaBits(const char *name)
Returns the pragma bits as specified in the LinkDef.h file.
 
static DictFuncPtr_t GetDict(const char *cname)
Given the class name returns the Dictionary() function of a class (uses hash of name).
 
static Version_t GetID(const char *cname)
Returns the ID of a class.
 
ROOT::TMapTypeToClassRec IdMap_t
 
static void SortTable()
Sort the class table by ascending class ID's.
 
static TProtoClass * GetProtoNorm(const char *cname)
Given the class normalized name returns the TClassProto object for the class.
 
static DictFuncPtr_t GetDictNorm(const char *cname)
Given the normalized class name returns the Dictionary() function of a class (uses hash of name).
 
static ROOT::TClassAlt ** fgAlternate
 
void Print(Option_t *option="") const override
Print the class table.
 
static void Terminate()
Deletes the class table (this static class function calls the dtor).
 
static TProtoClass * GetProto(const char *cname)
Given the class name returns the TClassProto object for the class.
 
static std::atomic< UInt_t > fgTally
 
TClassTable()
TClassTable is a singleton (i.e. only one can exist per application).
 
static char * Next()
Returns next class from sorted class table.
 
static char * At(UInt_t index)
Returns class at index from sorted class table.
 
static Bool_t Check(const char *cname, std::string &normname)
 
static void Remove(const char *cname)
Remove a class from the class table.
 
static ROOT::TClassRec ** fgSortedTable
 
static ROOT::TClassRec ** fgTable
 
static Bool_t CheckClassTableInit()
Return true fs the table exist.
 
static void Add(const char *cname, Version_t id, const std::type_info &info, DictFuncPtr_t dict, Int_t pragmabits)
Add a class to the class table (this is a static function).
 
~TClassTable()
TClassTable singleton is deleted in Terminate().
 
static void RemoveAlternate(ROOT::TClassAlt *alt)
 
static ROOT::TClassRec * FindElement(const char *cname, Bool_t insert)
Find a class by name in the class table (using hash of name).
 
static ROOT::TClassAlt * AddAlternate(const char *normname, const char *alternate)
 
TClass instances represent classes, structs and namespaces in the ROOT type system.
 
void SetUnloaded()
Call this method to indicate that the shared library containing this class's code has been removed (u...
 
void SetClassVersion(Version_t version)
Private function.
 
std::atomic< Bool_t > fVersionUsed
saved remember if fOffsetStreamer has been set.
 
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.
 
virtual bool UseRWLock(Bool_t enable=true)
Set this collection to use a RW lock upon access, making it thread safe.
 
virtual void SetOwner(Bool_t enable=kTRUE)
Set whether this collection is the owner (enable==true) of its content.
 
virtual void RegisterTClassUpdate(TClass *oldcl, DictFuncPtr_t dict)=0
 
TObject * FindObject(const char *name) const override
Find an object in this list using its name.
 
void Add(TObject *obj) override
 
TMap implements an associative array of (key,value) pairs using a THashTable for efficient retrieval ...
 
The TNamed class is the base class for all named ROOT classes.
 
const char * GetName() const override
Returns name of object.
 
Collectable string class.
 
Mother of all ROOT objects.
 
virtual void Warning(const char *method, const char *msgfmt,...) const
Issue warning message.
 
virtual TObject * FindObject(const char *name) const
Must be redefined in derived classes.
 
virtual void Fatal(const char *method, const char *msgfmt,...) const
Issue fatal error message.
 
virtual void Info(const char *method, const char *msgfmt,...) const
Issue info message.
 
Class used by TMap to store (key,value) pairs.
 
Persistent version of a TClass.
 
static Bool_t Initialized()
Return kTRUE if the TROOT object has been initialized.
 
Regular expression class.
 
const char * Data() const
 
TString & Remove(Ssiz_t pos)
 
Ssiz_t Index(const char *pat, Ssiz_t i=0, ECaseCompare cmp=kExact) const
 
R__EXTERN TROOT * gROOTLocal
 
This file contains a specialised ROOT message handler to test for diagnostic in unit tests.
 
std::vector< std::pair< const char *, const char * > > & GetDelayedAddClassAlternate()
 
ROOT::TClassAlt * AddClassAlternate(const char *normName, const char *alternate)
Global function called by GenerateInitInstance.
 
std::vector< std::unique_ptr< TClassRec > > & GetDelayedAddClass()
 
void RemoveClass(const char *cname, TClass *cl)
Global function called by the dtor of a class's init class (see the ClassImp macro).
 
void AddClass(const char *cname, Version_t id, const std::type_info &info, DictFuncPtr_t dict, Int_t pragmabits)
Global function called by the ctor of a class's init class (see the ClassImp macro).
 
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....
 
static UInt_t ClassTableHash(const char *name, UInt_t size)
 
void ResetClassVersion(TClass *, const char *, Short_t)
Global function to update the version number.
 
void RemoveClassAlternate(ROOT::TClassAlt *)
 
bool IsStdClass(const char *type)
return true if the class belongs to the std namespace
 
void GetNormalizedName(std::string &norm_name, std::string_view name)
Return the normalized name.