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

The baseclass for all Java proxy array types. More...

#include <xmog_java_array.h>

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

Public Member Functions

 xmog_java_array ()
 A default constructor to satisfy virtual inheritance semantics.
 
 xmog_java_array (jobject array, xmog_flags flags, jint size=-1, xmog_localenv *env=NULL)
 The constructor that creates an instance from an existing reference. More...
 
 xmog_java_array (const xmog_null &)
 The from null constructor. More...
 
 xmog_java_array (const xmog_java_array &_rhs, xmog_localenv *env=NULL)
 The copy constructor. More...
 
 xmog_java_array (xmog_java_array *_arr, jint _index)
 The array element constructor. More...
 
 xmog_java_array (xmog_java_class *_clazz, xmog_java_dynamic *_dynamic, xmog_flags _flags)
 The constructor that allows the dynamic resolution of class-related information. More...
 
 xmog_java_array (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_array (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_array ()
 The destructor invalidates the length field.
 
jint get_length (xmog_localenv *env) const
 A higher performance alternative to querying the array length. More...
 
void xmog_invalidate (xmog_localenv *env=NULL)
 Invalidates any cached values in the instance. More...
 
- Public Member Functions inherited from xmog_java_ref
 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...
 
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.
 

Public Attributes

xmog_java_array_size length
 The array length. 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.
 

Protected Member Functions

void copy_ (const xmog_java_array &_rhs, xmog_localenv *env=NULL)
 Updates this instance to reflect the given instance's state.
 

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...
 

Detailed Description

The baseclass for all Java proxy array types.

Constructor & Destructor Documentation

◆ xmog_java_array() [1/7]

xmog_java_array::xmog_java_array ( jobject  array,
xmog_flags  flags,
jint  size = -1,
xmog_localenv env = NULL 
)

The constructor that creates an instance from an existing reference.

Parameters
arraythe Java array.
flagsthe flags that represent the type of the reference.
sizethe array's size. The default value is -1.
envthe local call environment. The default value is NULL.

◆ xmog_java_array() [2/7]

xmog_java_array::xmog_java_array ( 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_array() [3/7]

xmog_java_array::xmog_java_array ( const xmog_java_array _rhs,
xmog_localenv env = NULL 
)

The copy constructor.

Parameters
_rhsthe existing array whose handle we're duplicating.
envthe local call environment. The default value is NULL.

◆ xmog_java_array() [4/7]

xmog_java_array::xmog_java_array ( 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_array() [5/7]

xmog_java_array::xmog_java_array ( 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_array() [6/7]

xmog_java_array::xmog_java_array ( 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_array() [7/7]

xmog_java_array::xmog_java_array ( 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.

Member Function Documentation

◆ get_length()

jint xmog_java_array::get_length ( xmog_localenv env) const

A higher performance alternative to querying the array length.

Parameters
envthe local call environment.

◆ xmog_invalidate()

void xmog_java_array::xmog_invalidate ( xmog_localenv env = NULL)
virtual

Invalidates any cached values in the instance.

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

Reimplemented from xmog_base.

Member Data Documentation

◆ length

xmog_java_array_size xmog_java_array::length

The array length.

This field can be used in every place where the compiler expects a jint.

Referenced by xmog_java_array_template< ElementType >::end().


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

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