00001
00002
00003
00004
00005 #ifndef xmog_java_ref_inc
00006 #define xmog_java_ref_inc
00007
00008
00009 #include "xmog_base.h"
00010
00011
00012 class xmog_null;
00013
00014
00018 class XMOG_DECLSPEC xmog_java_ref : public xmog_base
00019 {
00020 private:
00021
00022 jobject local_cache_;
00023
00024 public:
00025
00029 xmog_java_ref();
00030
00037 xmog_java_ref( const xmog_null & );
00038
00049 xmog_java_ref( xmog_java_array * _arr, jint _index );
00050
00061 xmog_java_ref( xmog_java_class * _clazz, xmog_java_dynamic * _dynamic, xmog_flags _flags );
00062
00078 xmog_java_ref( xmog_base * _delegate, bool _owns_delegate = true );
00079
00090 xmog_java_ref( xmog_java_ref * _ref, xmog_java_dynamic * _dynamic, xmog_flags _flags );
00091
00098 xmog_java_ref( jobject _local, xmog_flags _flags );
00099
00103 ~xmog_java_ref();
00104
00108 bool operator == ( const xmog_null & ) const;
00109
00117 bool operator == ( const xmog_java_ref & ) const;
00118
00122 bool operator != ( const xmog_null & ) const;
00123
00133 bool operator != ( const xmog_java_ref & ) const;
00134
00138 bool operator ! () const;
00139
00149 jboolean xmog_equals( const xmog_java_ref & _rhs, xmog_localenv * env = NULL );
00150
00158 jint xmog_hashCode( xmog_localenv * env = NULL );
00159
00167 jobject xmog_toString( xmog_localenv * env = NULL );
00168
00178 virtual jobject get_jobject_( xmog_localenv * env = NULL ) const;
00179
00183 virtual void xmog_monitor_enter( xmog_localenv * env = NULL ) const;
00184
00188 virtual void xmog_monitor_exit( xmog_localenv * env = NULL ) const;
00189 };
00190
00191
00192 #if !defined (XMOG_LACKS_INLINE_FUNCTIONS)
00193 # include "xmog_jvm_loader.h"
00194 # include "xmog_null.h"
00195 # include "xmog_java_ref.inl"
00196 #endif
00197
00198
00199 #endif