/* /% C++ %/ */ /*********************************************************************** * cint (C/C++ interpreter) ************************************************************************ * Header file Class.h ************************************************************************ * Description: * Extended Run Time Type Identification API ************************************************************************ * Copyright(c) 1995~1998 Masaharu Goto (MXJ02154@niftyserve.or.jp) * * Permission to use, copy, modify and distribute this software and its * documentation for any purpose is hereby granted without fee, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. The author makes no * representations about the suitability of this software for any * purpose. It is provided "as is" without express or implied warranty. ************************************************************************/ #ifndef G__CLASSINFO_H #define G__CLASSINFO_H #include "Api.h" class G__MethodInfo; class G__DataMemberInfo; #ifndef G__OLDIMPLEMENTATION1020 class G__FriendInfo; #endif /********************************************************************* * class G__ClassInfo * * *********************************************************************/ class G__ClassInfo { public: ~G__ClassInfo() {} G__ClassInfo() { Init(); } void Init(); G__ClassInfo(const char *classname) { Init(classname); } void Init(const char *classname); G__ClassInfo(int tagnumin) { 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); long Tagnum() { return(tagnum); } G__ClassInfo EnclosingClass() ; G__ClassInfo EnclosingSpace() ; #ifndef G__OLDIMPLEMENTATION1020 struct G__friendtag* GetFriendInfo(); #endif void SetGlobalcomp(int globalcomp); #ifndef G__OLDIMPLEMENTATION1334 void SetProtectedAccess(int protectedaccess); #endif #ifdef G__OLDIMPLEMENTATION1218_YET int IsValid() { return 0<=tagnum && tagnumtagnum); 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; }; #endif #endif