/usr/include/root/TClassTable.h is in libroot-core-dev 5.34.14-1build1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 | // @(#)root/cont:$Id$
// Author: Fons Rademakers 11/08/95
/*************************************************************************
* Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
* All rights reserved. *
* *
* For the licensing terms see $ROOTSYS/LICENSE. *
* For the list of contributors see $ROOTSYS/README/CREDITS. *
*************************************************************************/
#ifndef ROOT_TClassTable
#define ROOT_TClassTable
//////////////////////////////////////////////////////////////////////////
// //
// TClassTable //
// //
// This class registers for all classes their name, id and dictionary //
// function in a hash table. //
// //
//////////////////////////////////////////////////////////////////////////
#ifndef ROOT_TObject
#include "TObject.h"
#endif
#ifndef ROOT_TString
#include "TString.h"
#endif
class TClassRec {
public:
char *fName;
Version_t fId;
Int_t fBits;
VoidFuncPtr_t fDict;
const type_info *fInfo;
TClassRec *fNext;
};
namespace ROOT {
class TMapTypeToClassRec;
}
class TClassTable : public TObject {
friend void ROOT::ResetClassVersion(TClass*, const char*, Short_t);
private:
typedef ROOT::TMapTypeToClassRec IdMap_t;
static TClassRec **fgTable;
static TClassRec **fgSortedTable;
static IdMap_t *fgIdMap;
static int fgSize;
static int fgTally;
static Bool_t fgSorted;
static int fgCursor;
TClassTable();
static TClassRec *FindElementImpl(const char *cname, Bool_t insert);
static TClassRec *FindElement(const char *cname, Bool_t insert=kFALSE);
static void SortTable();
public:
// bits that can be set in pragmabits
enum { kNoStreamer = 0x01, kNoInputOperator = 0x02, kAutoStreamer = 0x04 };
~TClassTable();
static void Add(const char *cname, Version_t id,
const type_info &info, VoidFuncPtr_t dict,
Int_t pragmabits);
static char *At(int index);
int Classes();
static Version_t GetID(const char *cname);
static Int_t GetPragmaBits(const char *name);
static VoidFuncPtr_t GetDict(const char *cname);
static VoidFuncPtr_t GetDict(const type_info& info);
static void Init();
static char *Next();
void Print(Option_t *option="") const;
static void PrintTable();
static void Remove(const char *cname);
static void Terminate();
ClassDef(TClassTable,0) //Table of known classes
};
R__EXTERN TClassTable *gClassTable;
namespace ROOT {
extern void AddClass(const char *cname, Version_t id, VoidFuncPtr_t dict,
Int_t pragmabits);
extern void RemoveClass(const char *cname);
}
#endif
|