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

A wrapper type for boolean proxies. More...

#include <xmog_java_field.h>

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

Public Member Functions

 xmog_bool (xmog_java_array *_ref, jint _index)
 Creates an instance that acts as a proxy for an element of a boolean array. More...
 
 xmog_bool (xmog_java_ref *_clazz_ref_array, xmog_java_dynamic *_dynamic, xmog_flags _flags=0)
 Creates an instance that acts as a proxy for an indirect element of boolean type. More...
 
 operator bool () const
 A conversion operator to the bool type. More...
 
bool operator* () const
 The dereference operator converts to the bool type. More...
 
xmog_booloperator= (bool)
 An assignment operator from the bool type. More...
 
bool get (xmog_localenv *env=NULL, bool readThrough=false) const
 Returns the value of a bool proxy instance. More...
 
void set (bool b, xmog_localenv *env=NULL, bool writeThrough=false)
 Sets the value of a bool proxy. More...
 
- 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_jobject_ (xmog_localenv *env=NULL) const
 Returns this instance's object reference. 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

A wrapper type for boolean proxies.

This type wraps the Java boolean type in a proxy type that uses the built-in C++ bool type to represent the Java type. Conversion operators allow convenient usage while the get/set methods take an optional xmog_localenv argument for better performance (by saving at least a threadlocal memory access). The set(bool,xmog_localenv*,bool) method also takes an optional bool argument that governs whether the change should be written through to the Java side unconditionally, ignoring a possibly set CACHE_LAZY_WRITE flag.

Primitive proxy types only exist in two flavors: as array elements and as fields (static and instance). There are two contructors to support those two flavors.

Constructor & Destructor Documentation

◆ xmog_bool() [1/2]

xmog_bool::xmog_bool ( xmog_java_array _ref,
jint  _index 
)

Creates an instance that acts as a proxy for an element of a boolean array.

Parameters
_refa pointer to an array proxy element.
_indexthe index of the element.

◆ xmog_bool() [2/2]

xmog_bool::xmog_bool ( xmog_java_ref _clazz_ref_array,
xmog_java_dynamic _dynamic,
xmog_flags  _flags = 0 
)

Creates an instance that acts as a proxy for an indirect element of boolean type.

Parameters
_clazz_ref_arraya pointer to the owner of the primitive value.
_dynamicthe algorithm to access the value.
_flagsadditional processing arguments.

Member Function Documentation

◆ get()

bool xmog_bool::get ( xmog_localenv env = NULL,
bool  readThrough = false 
) const

Returns the value of a bool proxy instance.

This method takes two optional arguments that can be used to improve overall performance or force a read from the Java side even if a cached value is available.

Parameters
enva local environment pointer. May be NULL.
readThroughtrue if the value should be read from the Java side unconditionally, false if a cached value should be used if available. This flag is ignored if the instance does not use caching or if it does not yet have a cached value.

◆ operator bool()

xmog_bool::operator bool ( ) const

A conversion operator to the bool type.

This operator allows the use of proxy instances of this type in any place where the compiler expects a primitive bool rhs-value. You can achieve better performance by using the get(xmog_localenv*,bool) method with the proper arguments.

◆ operator*()

bool xmog_bool::operator* ( ) const

The dereference operator converts to the bool type.

This operator is declared to support array iterators.

◆ operator=()

xmog_bool& xmog_bool::operator= ( bool  )

An assignment operator from the bool type.

This operator allows the use of proxy instances of this type in any place where the compiler expects a primitive bool lhs-value. You can achieve better performance by using the set(bool,xmog_localenv*,bool) method with the proper arguments.

◆ set()

void xmog_bool::set ( bool  b,
xmog_localenv env = NULL,
bool  writeThrough = false 
)

Sets the value of a bool proxy.

This method takes two optional arguments that can be used to improve overall performance or force a write to the Java side even if the CACHE_LAZY_WRITE policy is in effect for this instance.

Parameters
bthe new value.
enva local environment pointer. May be NULL.
writeThroughtrue if the value should be written to the Java side unconditionally, false if only the cached value should be updated. This flag is ignored if the instance does not use caching.

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

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