/usr/include/root/Class.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 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 | /* /% C++ %/ */
/***********************************************************************
* cint (C/C++ interpreter)
************************************************************************
* Header file Class.h
************************************************************************
* Description:
* Extended Run Time Type Identification API
************************************************************************
* Copyright(c) 1995~1998 Masaharu Goto
*
* For the licensing terms see the file COPYING
*
************************************************************************/
#ifndef G__CLASSINFO_H
#define G__CLASSINFO_H
#ifndef G__API_H
#include "Api.h"
#endif
namespace Cint {
class G__MethodInfo;
class G__DataMemberInfo;
class G__FriendInfo;
/*********************************************************************
* class G__ClassInfo
*
*
*********************************************************************/
class
#ifndef __CINT__
G__EXPORT
#endif
G__ClassInfo {
public:
virtual ~G__ClassInfo() {}
G__ClassInfo(): tagnum(0), class_property(0) { Init(); }
void Init();
G__ClassInfo(const char *classname): tagnum(0), class_property(0){ Init(classname); }
void Init(const char *classname);
G__ClassInfo(const G__value &value_for_type);
G__ClassInfo(int tagnumin): tagnum(0), class_property(0) { Init(tagnumin); }
void Init(int tagnumin);
int operator==(const G__ClassInfo& a);
int operator!=(const G__ClassInfo& a);
const char *Name() ;
const char *Fullname();
const char *Title() ;
int Size() ;
long Property();
int NDataMembers();
int NMethods();
long IsBase(const char *classname);
long IsBase(G__ClassInfo& a);
void* DynamicCast(G__ClassInfo& to, void* obj);
int Tagnum() const { return(tagnum); }
G__ClassInfo EnclosingClass() ;
G__ClassInfo EnclosingSpace() ;
struct G__friendtag* GetFriendInfo();
void SetGlobalcomp(G__SIGNEDCHAR_T globalcomp);
void SetProtectedAccess(int protectedaccess);
#ifdef G__OLDIMPLEMENTATION1218_YET
int IsValid() { return 0<=tagnum && tagnum<G__struct.alltag ? 1 : 0; }
#else
int IsValid();
#endif
int IsLoaded();
int SetFilePos(const char *fname);
int Next();
int Linkage();
const char *FileName() ;
int LineNumber() ;
int IsTmplt();
const char* TmpltName();
const char* TmpltArg();
protected:
int tagnum; // class,struct,union,enum key for cint dictionary
long class_property; // cache value (expensive to get)
///////////////////////////////////////////////////////////////
// Following things have to be added for ROOT
///////////////////////////////////////////////////////////////
public:
void SetDefFile(char *deffilein);
void SetDefLine(int deflinein);
void SetImpFile(char *impfilein);
void SetImpLine(int implinein);
void SetVersion(int versionin);
const char *DefFile();
int DefLine();
const char *ImpFile();
int ImpLine();
int Version();
void *New();
void *New(int n);
void *New(void *arena);
void *New(int n, void* arena);
void Delete(void* p) const ;
void Destruct(void* p) const ;
void DeleteArray(void* ary, int dtorOnly = 0);
int InstanceCount();
void ResetInstanceCount();
void IncInstanceCount();
int HeapInstanceCount();
void IncHeapInstanceCount();
void ResetHeapInstanceCount();
int RootFlag();
//void SetDefaultConstructor(void* p2f);
enum MatchMode { ExactMatch=0, ConversionMatch=1, ConversionMatchBytecode=2};
enum InheritanceMode { InThisScope=0, WithInheritance=1 };
G__InterfaceMethod GetInterfaceMethod(const char *fname,const char *arg
,long* poffset
,MatchMode mode=ConversionMatch
,InheritanceMode imode=WithInheritance
);
G__MethodInfo GetMethod(const char *fname,const char *arg,long* poffset
,MatchMode mode=ConversionMatch
,InheritanceMode imode=WithInheritance
);
G__MethodInfo GetMethod(const char *fname,struct G__param* libp,long* poffset
,MatchMode mode=ConversionMatch
,InheritanceMode imode=WithInheritance
);
G__MethodInfo GetDefaultConstructor();
G__MethodInfo GetCopyConstructor();
G__MethodInfo GetDestructor();
G__MethodInfo GetAssignOperator();
G__MethodInfo AddMethod(const char* typenam,const char* fname,const char *arg
,int isstatic=0,int isvirtual=0,void *methodAddress=0);
G__DataMemberInfo GetDataMember(const char *name,long* poffset);
int HasMethod(const char *fname);
int HasDataMember(const char *name);
int HasDefaultConstructor();
private:
void CheckValidRootInfo();
public:
long ClassProperty();
unsigned char FuncFlag();
static int GetNumClasses();
};
/*********************************************************************
* class G__FriendInfo
*
*
*********************************************************************/
class
#ifndef __CINT__
G__EXPORT
#endif
G__FriendInfo {
public:
G__FriendInfo(struct G__friendtag *pin=0): pfriendtag(NULL), cls()
{ Init(pin); }
G__FriendInfo(const G__FriendInfo& x): pfriendtag(x.pfriendtag), cls(x.cls)
{ Init(x.pfriendtag); }
G__FriendInfo& operator=(const G__FriendInfo& x)
{ Init(x.pfriendtag); return *this; }
void Init(struct G__friendtag* pin) {
pfriendtag = pin;
if(pfriendtag) cls.Init(pfriendtag->tagnum);
else cls.Init(-1);
}
G__ClassInfo* FriendOf() { return(&cls); }
int Next() {
if(pfriendtag) {
pfriendtag=pfriendtag->next;
Init(pfriendtag);
return(IsValid());
}
else {
return(0);
}
}
int IsValid() { if(pfriendtag) return(1); else return(0); }
private:
G__friendtag *pfriendtag;
G__ClassInfo cls;
};
} // namespace Cint
using namespace Cint;
#endif
|