Codemesh Runtime v3 C++ API Reference  3.9.205
Public Member Functions | List of all members
xmog_field_t< FieldType > Class Template Reference

A template type that is used to represent instance fields in generated proxy classes. More...

#include <xmog_java_field.h>

Inheritance diagram for xmog_field_t< FieldType >:
Inheritance graph
[legend]
Collaboration diagram for xmog_field_t< FieldType >:
Collaboration graph
[legend]

Public Member Functions

 xmog_field_t (xmog_java_ref *_inst, xmog_java_dynamic *_dynamic, xmog_flags _flags=xmog_base::GLOBAL)
 The constructor of a field template instance. More...
 
FieldType operator= (const FieldType &_inst)
 The assignment operator. More...
 
FieldType operator= (const xmog_null &_null_inst)
 The assignment from null operator. More...
 
 operator FieldType () const
 The constant conversion operator to template type.
 
FieldType operator* () const
 The dereference operator converts to the FieldType type. More...
 
 operator FieldType ()
 The non-constant conversion operator to template type.
 
- 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...
 
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

template<class FieldType>
class xmog_field_t< FieldType >

A template type that is used to represent instance fields in generated proxy classes.

This template is used to prevent several problems related to instance fields. Its main characteristic is a conversion operator to its template argument type. This allows instances of this type to be used in every place where a right-hand-side instance of type FieldType is expected. The assignment operators enable left-hand-side use of instace fields, i.e. the assignment of new values into instance fields.

Constructor & Destructor Documentation

◆ xmog_field_t()

template<class FieldType >
xmog_field_t< FieldType >::xmog_field_t ( xmog_java_ref _inst,
xmog_java_dynamic _dynamic,
xmog_flags  _flags = xmog_base::GLOBAL 
)
inline

The constructor of a field template instance.

Parameters
_instthe owner of the field.
_dynamicthe field instance providing the instructions of how to access the field.
_flagsthe optional access flags. Defaults to GLOBAL.

Member Function Documentation

◆ operator*()

template<class FieldType >
FieldType xmog_field_t< FieldType >::operator* ( ) const
inline

The dereference operator converts to the FieldType type.

This operator is declared to support array iterators.

References xmog_base::dynamic_, xmog_base::flags_, and xmog_base::owner_.

◆ operator=() [1/2]

template<class FieldType >
FieldType xmog_field_t< FieldType >::operator= ( const FieldType &  _inst)
inline

The assignment operator.

Parameters
_instthe template argument type instance assigned to this field.

References xmog_base::copy_jobject_().

◆ operator=() [2/2]

template<class FieldType >
FieldType xmog_field_t< FieldType >::operator= ( const xmog_null _null_inst)
inline

The assignment from null operator.

Parameters
_null_instnull.

References xmog_base::set_jobject_().


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

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