1 /* /% C++ %/ */ 2 /*********************************************************************** 3 * cint (C/C++ interpreter) 4 ************************************************************************ 5 * Header file DataMbr.h 6 ************************************************************************ 7 * Description: 8 * Extended Run Time Type Identification API 9 ************************************************************************ 10 * Copyright(c) 1995~1998 Masaharu Goto 11 * 12 * For the licensing terms see the file COPYING 13 * 14 ************************************************************************/ 15 16 17 #ifndef G__DATAMEMBER_H 18 #define G__DATAMEMBER_H 19 20 #ifndef G__API_H 21 #include "Api.h" 22 #endif 23 24 namespace Cint { 25 26 /********************************************************************* 27 * class G__DataMemberInfo 28 * 29 * 30 *********************************************************************/ 31 class 32 #ifndef __CINT__ 33 G__EXPORT 34 #endif 35 G__DataMemberInfo { 36 public: 37 ~G__DataMemberInfo() {} 38 G__DataMemberInfo(); 39 G__DataMemberInfo(const G__DataMemberInfo& dmi); 40 G__DataMemberInfo(class G__ClassInfo &a); 41 G__DataMemberInfo& operator=(const G__DataMemberInfo& dmi); 42 43 void Init(); 44 void Init(class G__ClassInfo &a); 45 void Init(long handlinin,long indexin,G__ClassInfo *belongingclassin); 46 47 long Handle() { return(handle); } 48 int Index() { return ((int)index); } 49 const char *Name(); 50 const char *Title(); 51 G__TypeInfo* Type(); 52 long Property(); 53 long Offset() ; 54 int Bitfield(); 55 int ArrayDim() ; 56 long MaxIndex(int dim) ; 57 G__ClassInfo* MemberOf(); 58 void SetGlobalcomp(G__SIGNEDCHAR_T globalcomp); 59 int IsValid(); 60 int SetFilePos(const char* fname); 61 int Next(); 62 int Prev(); 63 64 enum error_code { VALID, NOT_INT, NOT_DEF, IS_PRIVATE, UNKNOWN }; 65 const char *ValidArrayIndex(int *errnum = 0, char **errstr = 0); 66 67 const char *FileName(); 68 int LineNumber(); 69 70 static int SerialNumber(); 71 72 private: 73 long handle; 74 long index; 75 G__ClassInfo *belongingclass; 76 G__TypeInfo type; 77 }; 78 79 } 80 81 using namespace Cint; 82 #endif 83