Codemesh Runtime v3 C++ API Reference  3.9.205
Public Types | Public Member Functions | Static Public Member Functions | List of all members
xmog_java_array_template< ElementType > Class Template Reference

The object array template type to support arrays of proxy types. More...

#include <xmog_java_array.h>

Inheritance diagram for xmog_java_array_template< ElementType >:
Inheritance graph
[legend]
Collaboration diagram for xmog_java_array_template< ElementType >:
Collaboration graph
[legend]

Public Types

typedef xmog_array_iterator< xmog_java_array_template< ElementType > > iterator
 The iterator type for arrays of object type.
 
typedef xmog_holder_template< ElementType > value_type
 The type returned by the dereference operations.
 
typedef ptrdiff_t difference_type
 The type used to represent pointer differences.
 
- 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 Member Functions

 xmog_java_array_template ()
 Creates an array instance that does not represent a Java instance.
 
 xmog_java_array_template (const xmog_null &)
 Creates an array instance that does not represent a Java instance.
 
 xmog_java_array_template (const xmog_java_array_template< ElementType > &_rhs, xmog_localenv *_env=NULL)
 Creates an array instance that does represents the same Java instance as the given array instance.
 
XMOG_EXPLICIT xmog_java_array_template (xmog_java_array *_ref, jint _index)
 Creates an array instance that represents an array element itself.
 
XMOG_EXPLICIT xmog_java_array_template (xmog_java_ref *_clazz_ref_array, xmog_java_dynamic *_dynamic, xmog_flags _flags=xmog_base::GLOBAL)
 Creates an indirect array instance.
 
XMOG_EXPLICIT xmog_java_array_template (xmog_base *_delegate, bool bOwnsDelegate)
 Creates an array instance that delegates to another instance. More...
 
XMOG_EXPLICIT xmog_java_array_template (jobject _local, xmog_flags _flags)
 Creates an array instance that represents a pre-existing JNI reference.
 
XMOG_EXPLICIT xmog_java_array_template (jint size, xmog_localenv *env=NULL, xmog_flags flags=xmog_base::GLOBAL)
 Creates a new object array instance of a given length. More...
 
iterator begin ()
 Returns an iterator pointing to the first array element.
 
iterator end ()
 Returns an iterator pointing to after the last array element.
 
xmog_java_array_template< ElementType > & operator= (const xmog_java_array_template< ElementType > &_rhs)
 Sets the given Java array reference into this instance.
 
xmog_holder_template< ElementType > operator[] (jint index)
 Returns the array element of the given index. More...
 
xmog_holder_template< ElementType > operator[] (jint index) const
 Returns the array element of the given index.
 
- Public Member Functions inherited from xmog_java_object_array
 xmog_java_object_array ()
 Creates an array instance that does not refer to any Java object.
 
 xmog_java_object_array (const xmog_null &)
 Creates an array instance that does not refer to any Java object.
 
 xmog_java_object_array (const xmog_java_object_array &, xmog_localenv *env=NULL)
 Creates an array instance that references the same Java object as the given object.
 
 xmog_java_object_array (xmog_java_array *_ref, jint _index)
 Creates an array instance that represents an array element itself.
 
 xmog_java_object_array (xmog_java_ref *_clazz_ref_array, xmog_java_dynamic *_dynamic, xmog_flags _flags=xmog_base::GLOBAL)
 Creates an indirect array instance.
 
 xmog_java_object_array (xmog_base *_delegate, bool _owns_delegate=true)
 Creates an array instance that delegates to another instance.
 
 xmog_java_object_array (jobject _local, xmog_flags _flags)
 Creates an array instance that represents a pre-existing JNI reference.
 
 xmog_java_object_array (jint size, xmog_java_class *clazz, xmog_localenv *env=NULL, xmog_flags flags=xmog_base::GLOBAL)
 Creates a new object array instance of a given length. More...
 
xmog_java_ref operator[] (jint index)
 Returns a proxy to a long array element, usable as a lhs-value. More...
 
void set (jint index, jobject v, xmog_localenv *env=NULL)
 Sets a value into the array's specified element. More...
 
jobject operator[] (jint index) const
 Returns the value of an array element. More...
 
jobject get (jint index, xmog_localenv *env) const
 Returns the value of an array element. More...
 
xmog_java_object_arrayoperator= (const xmog_java_object_array &)
 Sets the given instance's array reference into this instance.
 
- Public Member Functions inherited from xmog_java_array
 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.
 

Static Public Member Functions

static xmog_java_array_template< ElementType > dyna_cast (const xmog_java_ref &_rhs, xmog_localenv *p_lxenv=NULL, xmog_flags flags=xmog_base::GLOBAL)
 A framework method which allows a "cast" of the given object to this array type. More...
 
static xmog_java_dynamicget_dynamic ()
 Returns an xmog_java_dynamic instance that can be used to access the array elements of this type.
 
static xmog_java_classget_class ()
 Returns the proxy wrapper instance for this array type.
 
static xmog_java_classget_element_java_class ()
 Returns the proxy wrapper instance for this array's element type.
 
- Static Public Member Functions inherited from xmog_java_object_array
static xmog_java_dynamicget_dynamic ()
 Returns an xmog_java_dynamic instance that can be used to access the array elements of this type.
 
static xmog_java_classget_class ()
 Returns the proxy wrapper instance for this array type.
 
static xmog_java_classget_element_java_class ()
 Returns the proxy wrapper instance for this array's element type.
 

Additional Inherited Members

- Public Attributes inherited from xmog_java_array
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 inherited from xmog_java_object_array
jarray create (jint size, xmog_java_class *clazz, xmog_flags flags, xmog_localenv *env)
 Creates an array instance of a certain element type and a certain size. More...
 
- Protected Member Functions inherited from xmog_java_array
void copy_ (const xmog_java_array &_rhs, xmog_localenv *env=NULL)
 Updates this instance to reflect the given instance's state.
 

Detailed Description

template<class ElementType>
class xmog_java_array_template< ElementType >

The object array template type to support arrays of proxy types.

Constructor & Destructor Documentation

◆ xmog_java_array_template() [1/2]

template<class ElementType >
XMOG_EXPLICIT xmog_java_array_template< ElementType >::xmog_java_array_template ( xmog_base _delegate,
bool  bOwnsDelegate 
)
inline

Creates an array instance that delegates to another instance.

Parameters
_delegatethe instance to which all calls will be delegated.
bOwnsDelegatetrue if the proxy object owns the delegate, false otherwise.

◆ xmog_java_array_template() [2/2]

template<class ElementType >
XMOG_EXPLICIT xmog_java_array_template< ElementType >::xmog_java_array_template ( jint  size,
xmog_localenv env = NULL,
xmog_flags  flags = xmog_base::GLOBAL 
)
inline

Creates a new object array instance of a given length.

Parameters
sizethe length of the new array.
envthe optional environment. May be NULL.
flagsthe optional flags. Defaults to xmog_base::GLOBAL.

Member Function Documentation

◆ dyna_cast()

template<class ElementType >
static xmog_java_array_template<ElementType> xmog_java_array_template< ElementType >::dyna_cast ( const xmog_java_ref _rhs,
xmog_localenv p_lxenv = NULL,
xmog_flags  flags = xmog_base::GLOBAL 
)
inlinestatic

A framework method which allows a "cast" of the given object to this array type.

You use this method in all places where you would use an explicit class cast in Java. It creates a new instance of the correct type and sets the peer object into it if the peer instance is type compatible. If the peer instance is not type compatible, the newly created object will refer to null.

Parameters
_rhsa proxy instance which we wish to "cast" to this type.
p_lxenvthe local call environment. The default value is NULL.
flagsthe flags that allow control over the reference type and other internal matters. The default value is xmog_base::GLOBAL.
Returns
an instance of this proxy type that either represents the same Java instance as the argument (if they are type-compatible) or null (if they are not type-compatible).

References xmog_java_array_template< ElementType >::get_class(), and xmog_localenv::get_instance().

◆ operator[]()

template<class ElementType >
xmog_holder_template<ElementType> xmog_java_array_template< ElementType >::operator[] ( jint  index)
inline

Returns the array element of the given index.

Parameters
indexthe array index.

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

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