Method.h

Go to the documentation of this file.
00001 /* /% C++ %/ */
00002 /***********************************************************************
00003  * cint (C/C++ interpreter)
00004  ************************************************************************
00005  * Header file Method.h
00006  ************************************************************************
00007  * Description:
00008  *  Extended Run Time Type Identification API
00009  ************************************************************************
00010  * Copyright(c) 1995~2005  Masaharu Goto 
00011  *
00012  * For the licensing terms see the file COPYING
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 * class G__MethodInfo
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(); /* ON1163 */
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 } // namespace Cint
00120 
00121 using namespace Cint;
00122 #endif
00123 

Generated on Tue Jul 5 14:25:39 2011 for ROOT_528-00b_version by  doxygen 1.5.1