00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef G__METHODINFO_H
00018 #define G__METHODINFO_H
00019
00020 #ifndef G__API_H
00021 #include "Api.h"
00022 #endif
00023
00024 namespace Cint {
00025
00026
00027
00028
00029
00030
00031 class
00032 #ifndef __CINT__
00033 G__EXPORT
00034 #endif
00035 G__MethodInfo {
00036 friend class G__MethodArgInfo;
00037 public:
00038 ~G__MethodInfo() { if (memberOf != belongingclass) delete memberOf; }
00039 G__MethodInfo()
00040 : handle(0), index(0), usingIndex(0), belongingclass(NULL), memberOf(0), type()
00041 { Init(); }
00042 G__MethodInfo(G__ClassInfo &a)
00043 : handle(0), index(0), usingIndex(0), belongingclass(NULL), memberOf(0), type()
00044 { Init(a); }
00045 G__MethodInfo(const G__MethodInfo& mi)
00046 : handle(mi.handle), index(mi.index), usingIndex(mi.usingIndex),
00047 belongingclass(mi.belongingclass), memberOf(0), type(mi.type) {}
00048 G__MethodInfo& operator=(const G__MethodInfo& mi) {
00049 handle=mi.handle; index=mi.index; usingIndex=mi.usingIndex;
00050 belongingclass=mi.belongingclass; memberOf=NULL; type=mi.type; return *this;}
00051
00052 void Init();
00053 void Init(G__ClassInfo &a);
00054 void Init(long handlein,long indexin,G__ClassInfo *belongingclassin);
00055 void Init(G__ClassInfo *belongingclassin,long funcpage,long indexin);
00056
00057 const char *Name() ;
00058 #ifndef __MAKECINT__
00059 int Hash() ;
00060 struct G__ifunc_table* ifunc();
00061 #endif
00062 long Handle() { return(handle); }
00063 int Index() { return ((int)index); }
00064 const char *Title() ;
00065 G__TypeInfo* Type() { return(&type); }
00066 long Property();
00067 int NArg();
00068 int NDefaultArg();
00069 int HasVarArgs();
00070 G__InterfaceMethod InterfaceMethod();
00071 #ifdef G__ASM_WHOLEFUNC
00072 struct G__bytecodefunc *GetBytecode();
00073 #endif
00074 G__DataMemberInfo GetLocalVariable();
00075 #ifdef G__TRUEP2F
00076 void* PointerToFunc();
00077 #endif
00078 G__ClassInfo* CreatedBy() { return(belongingclass); }
00079 G__ClassInfo* MemberOf();
00080 int GetDefiningScopeTagnum();
00081 struct G__friendtag* GetFriendInfo();
00082 void SetGlobalcomp(int globalcomp);
00083 void SetForceStub();
00084 int IsValid();
00085 int SetFilePos(const char* fname);
00086 int Next();
00087
00088 const char *FileName();
00089 int LineNumber();
00090 int Size();
00091 int IsBusy();
00092 FILE* FilePointer();
00093 long FilePosition();
00094 char* GetPrototype();
00095 char* GetMangledName();
00096
00097 int LoadDLLDirect(const char* filename,const char* funcname);
00098
00099 void SetVtblIndex(int vtblindex);
00100 void SetIsVirtual(int isvirtual);
00101 void SetVtblBasetagnum(int basetagnum);
00102
00103 void SetUserParam(void*);
00104 void *GetUserParam();
00105 long GetThisPointerOffset();
00106
00107 protected:
00108 long handle;
00109 long index;
00110 #ifndef G__OLDIMPLEMENTATION2194
00111 long usingIndex;
00112 #endif
00113 G__ClassInfo* belongingclass;
00114 G__ClassInfo* memberOf;
00115 G__TypeInfo type;
00116
00117 };
00118
00119 }
00120
00121 using namespace Cint;
00122 #endif
00123