Main Page | Modules | Class Hierarchy | Class List | Directories | File List | Class Members | Related Pages

xmog_java_method.h

00001 /*
00002  * Copyright 1999-2006 by Codemesh, Inc.  ALL RIGHTS RESERVED.
00003  */
00004 
00005 #ifndef xmog_java_method_inc
00006 #define xmog_java_method_inc
00007 
00008 
00009 class xmog_java_class;
00010 
00011 
00012 #include "xmog_java_dynamic.h"
00013 
00014 
00037 class XMOG_DECLSPEC xmog_java_method : public xmog_java_dynamic
00038 {
00039 private:
00040 
00047     jmethodID       mid_;
00048 
00052     xmog_java_class * clazz_;
00053 
00059     xmog_java_method * next_;
00060 
00064     char *          name_;
00065 
00069     char *          type_;
00070 
00074     bool            bStatic_;
00075 
00079     bool            bIndirect_;
00080 
00081 public:
00082 
00083     friend class xmog_java_class;
00084 
00093     xmog_java_method( xmog_java_class * clazz, jmethodID mid, bool bStatic = false, bool bIndirect = false );
00094 
00104     xmog_java_method( xmog_java_class * clazz, const char * name, const char * type, bool bStatic = false, bool bIndirect = false );
00105 
00111     xmog_java_method( const xmog_java_method & rhs );
00112 
00113     ~xmog_java_method();
00114 
00119     void *          operator new ( size_t );
00120 
00125     void            operator delete( void * );
00126 
00130     xmog_java_method *  next();
00131 
00135     xmog_java_class *   clazz();
00136 
00143     const char *        name();
00144 
00151     const char *        type();
00152 
00156     bool            is_static() const;
00157 
00164     void            set_methodID( jmethodID mid );
00165 
00172     int             initializeMethodID( xmog_localenv * env );
00173 
00177     jmethodID       get_methodID();
00178 
00185     jobjectArray    get_argument_array( xmog_java_values * values, xmog_localenv * env = NULL );
00186 
00195     virtual bool    get_bool( xmog_base * obj, xmog_java_values * args = NULL, xmog_localenv * env = NULL, xmog_flags flags = 0 ) ;
00196 
00205     virtual jboolean get_jboolean( xmog_base * obj, xmog_java_values * args = NULL, xmog_localenv * env = NULL, xmog_flags flags = 0 ) ;
00206 
00215     virtual jbyte   get_byte( xmog_base * obj, xmog_java_values * args = NULL, xmog_localenv * env = NULL, xmog_flags flags = 0 ) ;
00216 
00225     virtual jchar   get_char( xmog_base * obj, xmog_java_values * args = NULL, xmog_localenv * env = NULL, xmog_flags flags = 0 ) ;
00226 
00235     virtual jdouble get_double( xmog_base * obj, xmog_java_values * args = NULL, xmog_localenv * env = NULL, xmog_flags flags = 0 ) ;
00236 
00245     virtual jfloat  get_float( xmog_base * obj, xmog_java_values * args = NULL, xmog_localenv * env = NULL, xmog_flags flags = 0 ) ;
00246 
00255     virtual jint    get_int( xmog_base * obj, xmog_java_values * args = NULL, xmog_localenv * env = NULL, xmog_flags flags = 0 ) ;
00256 
00265     virtual jlong   get_long( xmog_base * obj, xmog_java_values * args = NULL, xmog_localenv * env = NULL, xmog_flags flags = 0 ) ;
00266 
00275     virtual jshort  get_short( xmog_base * obj, xmog_java_values * args = NULL, xmog_localenv * env = NULL, xmog_flags flags = 0 ) ;
00276 
00285     virtual jobject get_jobject( xmog_base * obj, xmog_java_values * args = NULL, xmog_localenv * env = NULL, xmog_flags flags = xmog_base::GLOBAL ) ;
00286 
00287     virtual void    get_void( xmog_base * obj, xmog_java_values * args = NULL, xmog_localenv * env = NULL, xmog_flags flags = 0 ) ;
00288 
00289     virtual void    set_bool( xmog_base * obj, bool b, xmog_localenv * env = NULL ) ;
00290 
00291     virtual void    set_jboolean( xmog_base * obj, jboolean b, xmog_localenv * env = NULL ) ;
00292 
00293     virtual void    set_byte( xmog_base * obj, jbyte b, xmog_localenv * env = NULL ) ;
00294 
00295     virtual void    set_char( xmog_base * obj, jchar ch, xmog_localenv * env = NULL ) ;
00296 
00297     virtual void    set_double( xmog_base * obj, jdouble d, xmog_localenv * env = NULL ) ;
00298 
00299     virtual void    set_float( xmog_base * obj, jfloat f, xmog_localenv * env = NULL ) ;
00300 
00301     virtual void    set_int( xmog_base * obj, jint i, xmog_localenv * env = NULL ) ;
00302 
00303     virtual void    set_long( xmog_base * obj, jlong l, xmog_localenv * env = NULL ) ;
00304 
00305     virtual void    set_short( xmog_base * obj, jshort sh, xmog_localenv * env = NULL ) ;
00306 
00307     virtual void    set_jobject( xmog_base * obj, jobject o, xmog_localenv * env = NULL ) ;
00308 
00317     void            call_remote( xmog_remote_java_value & result, int mid, xmog_base * base, xmog_java_values * args, xmog_localenv * env );
00318 };
00319 
00320 
00321 #endif /* xmog_java_method_inc */

Generated on Wed May 31 14:01:19 2006 for Shared Codemesh Runtime Library API Reference by  doxygen 1.4.1