Codemesh Runtime v3 C++ API Reference  3.9.205
Public Member Functions | List of all members
xmog_java_ref Class Reference

The wrapper base type representing C++ proxy instances for Java objects. More...

#include <xmog_java_ref.h>

Inheritance diagram for xmog_java_ref:
Inheritance graph
[legend]
Collaboration diagram for xmog_java_ref:
Collaboration graph
[legend]

Public Member Functions

 xmog_java_ref ()
 The default constructor.
 
 xmog_java_ref (const xmog_null &)
 The from null constructor. More...
 
 xmog_java_ref (xmog_java_array *_arr, jint _index)
 The array element constructor. More...
 
 xmog_java_ref (xmog_java_class *_clazz, xmog_java_dynamic *_dynamic, xmog_flags _flags)
 The constructor that allows the dynamic resolution of class-related information. More...
 
XMOG_EXPLICIT xmog_java_ref (xmog_base *_delegate, bool _owns_delegate=true)
 The constructor that allows the creation of an instance to handle all requests by delegating to another instance. More...
 
 xmog_java_ref (xmog_java_ref *_ref, xmog_java_dynamic *_dynamic, xmog_flags _flags)
 The constructor that allows the dynamic resolution of instance-related information. More...
 
 xmog_java_ref (jobject _local, xmog_flags _flags)
 The constructor that sets an existing JNI reference into a wrapper instance. More...
 
 ~xmog_java_ref ()
 Deletes the reference we hold to the wrapped Java instance.
 
bool operator== (const xmog_null &) const
 Compares the instance for equality with null.
 
bool operator== (const xmog_java_ref &) const
 Compares the instance for equality with another instance. More...
 
bool operator!= (const xmog_null &) const
 Compares the instance for inequality with null.
 
bool operator!= (const xmog_java_ref &) const
 Compares the instance for inequality with another instance. More...
 
bool operator! () const
 Returns true if the instance refers to null, false otherwise.
 
jboolean xmog_equals (const xmog_java_ref &_rhs, xmog_localenv *env=NULL)
 Returns true if both instances are null or satisfy the equality test. More...
 
jint xmog_hashCode (xmog_localenv *env=NULL)
 Returns the Java instance's hashCode. More...
 
jobject xmog_toString (xmog_localenv *env=NULL)
 Returns the Java instance's toString() valus as a global reference. More...
 
virtual jobject get_jobject_ (xmog_localenv *env=NULL) const
 Returns this instance's object reference. More...
 
virtual void xmog_monitor_enter (xmog_localenv *env=NULL) const
 Attempts to enter into a lock on the object.
 
virtual void xmog_monitor_exit (xmog_localenv *env=NULL) const
 Leaves a lock in the object.
 
- Public Member Functions inherited from xmog_base
 xmog_base ()
 The default contructor. More...
 
 xmog_base (xmog_java_array *_ref, jint _index)
 The constructor for Java array elements. More...
 
 xmog_base (xmog_java_ref *_ref, xmog_java_dynamic *_dynamic, xmog_flags _flags)
 The constructor for indirect and user-defined types. More...
 
 xmog_base (xmog_java_class *_clazz, xmog_java_dynamic *_dynamic, xmog_flags _flags)
 The constructor for indirect and user-defined types. More...
 
XMOG_EXPLICIT xmog_base (xmog_base *_delegate, bool _owns_delegate=true)
 The constructor for delegating objects. More...
 
 xmog_base (jobject _local, xmog_flags _flags)
 The constructor for direct types. More...
 
virtual ~xmog_base ()
 The virtual destructor.
 
virtual void copy_jobject_ (xmog_base *_rhs, xmog_localenv *env=NULL)
 Sets this instance's object reference to a duplicate of the given object's reference. More...
 
virtual jobject get_owning_jobject_ (xmog_localenv *env=NULL)
 Returns this instance's owner. More...
 
virtual jobject get_released_local_jobject_ (xmog_localenv *env=NULL) const
 Returns this instance's object reference as a local reference and removes it from this instance's ownership. More...
 
virtual bool is_null_ (xmog_localenv *env=NULL) const
 Tests the instance for null.
 
virtual bool is_same_ (const xmog_base &_rhs, xmog_localenv *env=NULL) const
 Tests whether this instance references the same instance as the other instance.
 
virtual jobject duplicate_jobject_ (xmog_localenv *env=NULL) const
 Returns a duplicate of this instance's object reference. More...
 
virtual void set_jobject_ (xmog_base *_rhs, xmog_localenv *env=NULL)
 Sets this instance's object reference to the given object's reference. More...
 
virtual void transfer_jobject_ (xmog_base *_rhs, xmog_localenv *env=NULL)
 Sets this instance's object reference to the given object's reference and removes ownership from the other object. More...
 
virtual xmog_basexmog_to_ (xmog_flags flags, xmog_localenv *env=NULL)
 Converts a reference from one reference type to another. More...
 
virtual xmog_basexmog_fill_with_standalone_for_ (xmog_base *_rhs, xmog_localenv *env=NULL)
 Populates the object with a stand-alone reference based on another object. More...
 
virtual xmog_java_classxmog_get_java_peer (xmog_localenv *env=NULL)
 Returns NULL if the type does not have a Java peer type, a pointer to the type's xmog_java_class otherwise. More...
 
virtual int xmog_create_java_peer (xmog_java_class *clazz, xmog_localenv *env=NULL, xmog_flags flags=xmog_base::GLOBAL)
 Creates a Java peer instance for this type.
More...
 
virtual int xmog_to_java_peer (xmog_localenv *env=NULL)
 Sets the native instance's state into the Java peer instance. More...
 
virtual void xmog_lazy_write (xmog_localenv *env=NULL)
 Performs a lazy write operation on the instance. More...
 
virtual void xmog_invalidate (xmog_localenv *env=NULL)
 Invalidates any cached values in the instance. More...
 
void release_standalone (xmog_localenv *env=NULL)
 Releases the internally maintained object if the instance is a stand-alone (direct) instance and not an indirect instance. More...
 
void release_delegate ()
 Releases the internally maintained delegate.
 

Additional Inherited Members

- Public Types inherited from xmog_base
enum  flags {
  STAND_ALONE = 1, ARRAY_ELEMENT = 2, DYNAMIC = 4, DELEGATE = 8,
  LOCAL = 16, WEAK_GLOBAL = 32, GLOBAL = 64, REMOTE = 128,
  CACHING = 256, CACHE_INVALID = 512, CACHE_DIRTY = 1024, CACHE_LAZY_WRITE = 2048,
  OWNS_DELEGATE = 4096, STRING_DIRTY = 8192, STRING_PTR = 16384, STRING_WPTR = 32768,
  INDIRECT = 65536, NONVIRT = 131072, SUPPRESS_LOGGING = 262144, CATEGORY = 15,
  TYPE = 240, CACHE = 3840
}
 The possible flag values. More...
 
- Public Attributes inherited from xmog_base
XMOG_JOBJECT_HOLDER owner_
 The owner or identity of the object. More...
 
union {
   xmog_java_dynamic *   dynamic_
 A pointer to an object that can access indirectly specified information.
 
   jint   index_
 The index of an array element.
 
}; 
 Data or object that provides assistance in accessing indirectly specified elements. More...
 
xmog_flags flags_
 The flags governing the type and other housekeeping information.
 

Detailed Description

The wrapper base type representing C++ proxy instances for Java objects.

Constructor & Destructor Documentation

◆ xmog_java_ref() [1/6]

xmog_java_ref::xmog_java_ref ( const xmog_null )

The from null constructor.

This constructor is synonymous to the default constructor and creates an instance that does not refer to any Java instance.

◆ xmog_java_ref() [2/6]

xmog_java_ref::xmog_java_ref ( xmog_java_array _arr,
jint  _index 
)

The array element constructor.

This is really just a convenience constructor that helps improve the performance of accessing array elements. The same could be achieved by using the version of the constructor that takes an xmog_java_ref and xmog_java_dynamic as input.

Parameters
_arrthe array instance to which the element belongs.
_indexthe index into the array.

◆ xmog_java_ref() [3/6]

xmog_java_ref::xmog_java_ref ( xmog_java_class _clazz,
xmog_java_dynamic _dynamic,
xmog_flags  _flags 
)

The constructor that allows the dynamic resolution of class-related information.

This is the constructor that's used when we're creating support for static methods and fields.

Parameters
_clazzthe class instance to which the element belongs.
_dynamicthe instance that knows how to access the information we're interested in.
_flagsbit flags that provide additional processing information.

◆ xmog_java_ref() [4/6]

XMOG_EXPLICIT xmog_java_ref::xmog_java_ref ( xmog_base _delegate,
bool  _owns_delegate = true 
)

The constructor that allows the creation of an instance to handle all requests by delegating to another instance.

This is the constructor that's used when we want to maintain a dynamically allocated instance inside another instance. This will for example allow us to have a more derived concrete instance maintained in a stack-based less concrete instance that is returned by a method call.

Parameters
_delegatean instance that is of compatible type to the outer instance and can therefore be delegated to for every request being made of this instance.
_owns_delegatetrue if the proxy instance owns the delgate, false otherwise. The proxy's destructor will call delete() on the delegate if the value is true. The default value is true.

◆ xmog_java_ref() [5/6]

xmog_java_ref::xmog_java_ref ( xmog_java_ref _ref,
xmog_java_dynamic _dynamic,
xmog_flags  _flags 
)

The constructor that allows the dynamic resolution of instance-related information.

This is the constructor that's used when we're creating support for instance methods and fields.

Parameters
_refthe instance to which the element belongs.
_dynamicthe instance that knows how to access the information we're interested in.
_flagsbit flags that provide additional processing information.

◆ xmog_java_ref() [6/6]

xmog_java_ref::xmog_java_ref ( jobject  _local,
xmog_flags  _flags 
)

The constructor that sets an existing JNI reference into a wrapper instance.

Parameters
_localthe JNI reference.
_flagsbit flags that provide additional processing information.

Member Function Documentation

◆ get_jobject_()

virtual jobject xmog_java_ref::get_jobject_ ( xmog_localenv env = NULL) const
virtual

Returns this instance's object reference.

This method is only useful for reference-type proxies but not for primitive value proxies. Overrides the xmog_base::get_jobject_() method to potentially use a cached value.

Parameters
envan optional local call environment. NULL is a legal value.

Reimplemented from xmog_base.

◆ operator!=()

bool xmog_java_ref::operator!= ( const xmog_java_ref ) const

Compares the instance for inequality with another instance.

This method returns true if this instance and the other instance reference different Java objects. It does not matter whether the Java objects contain the same data and satisfy the equals test. This is an identity-based comparison operation, not an equality-based comparison operation.

◆ operator==()

bool xmog_java_ref::operator== ( const xmog_java_ref ) const

Compares the instance for equality with another instance.

This method returns true if this instance and the other instance reference the same Java object. This is an identity-based comparison operation, not an equality-based comparison operation.

◆ xmog_equals()

jboolean xmog_java_ref::xmog_equals ( const xmog_java_ref _rhs,
xmog_localenv env = NULL 
)

Returns true if both instances are null or satisfy the equality test.

This method is mainly used to support other languages than C++.

Parameters
_rhsthe other instance for the equality comparison.
envthe local call environment. The default value is NULL.

◆ xmog_hashCode()

jint xmog_java_ref::xmog_hashCode ( xmog_localenv env = NULL)

Returns the Java instance's hashCode.

This method is mainly used to support other languages than C++.

Parameters
envthe local call environment. The default value is NULL.

◆ xmog_toString()

jobject xmog_java_ref::xmog_toString ( xmog_localenv env = NULL)

Returns the Java instance's toString() valus as a global reference.

This method is mainly used to support other languages than C++.

Parameters
envthe local call environment. The default value is NULL.

The documentation for this class was generated from the following file:

Copyright (c) 1999-2020 by Codemesh, Inc., ALL RIGHTS RESERVED.