gemfire::CacheableArrayType< TObj, TYPEID > Class Template Reference

Inherits gemfire::Serializable.


Detailed Description

template<typename TObj, int8_t TYPEID>
class gemfire::CacheableArrayType< TObj, TYPEID >

Template class for array of primitive types.


Public Member Functions

virtual int32_t classId () const
virtual int8_t DSFID () const
virtual SerializablefromData (DataInput &input)
int32_t length () const
virtual uint32_t objectSize () const
TObj operator[] (uint32_t index) const
void preserveSB () const
 Atomically increment reference count.
int32_t refCount ()
 
Returns:
the reference count

void releaseSB () const
 Atomically decrement reference count, the SharedBase object is automatically deleted when its reference count goes to zero.
virtual void toData (DataOutput &output) const
virtual
CacheableStringPtr 
toString () const
 Display this object as 'string', which depends on the implementation in the subclasses.
virtual int8_t typeId () const
const TObj * value () const

Static Public Member Functions

template<class PRIM>
static SerializablePtr create (const PRIM value)
 Factory method that creates the Serializable object that matches the type of value.
static
SharedArrayPtr< TObj,
TYPEID > 
create (const TObj *value, int32_t length)
static
SharedArrayPtr< TObj,
TYPEID > 
create (int32_t length)
static
SharedArrayPtr< TObj,
TYPEID > 
create ()
static SerializablecreateDeserializable ()
static
SharedArrayPtr< TObj,
TYPEID > 
createNoCopy (TObj *value, int32_t length)
static void registerType (TypeFactoryMethod creationFunction)


Member Function Documentation

template<typename TObj, int8_t TYPEID>
virtual int32_t gemfire::CacheableArrayType< TObj, TYPEID >::classId (  )  const [inline, virtual]

Return the classId of the instance being serialized. This is used by deserialization to determine what instance type to create and deserialize into.

Implements gemfire::Serializable.

template<class PRIM>
static SerializablePtr gemfire::Serializable::create ( const PRIM  value  )  [inline, static, inherited]

Factory method that creates the Serializable object that matches the type of value.

For customer defined derivations of Serializable, the method gemfire::createValue may be overloaded. For pointer types (e.g. char*) the method gemfire::createValueArr may be overloaded.

Reimplemented in gemfire::CacheableKey.

template<typename TObj, int8_t TYPEID>
static SharedArrayPtr<TObj, TYPEID> gemfire::CacheableArrayType< TObj, TYPEID >::create ( const TObj *  value,
int32_t  length 
) [inline, static]

create a cacheable array copying from the given array.

template<typename TObj, int8_t TYPEID>
static SharedArrayPtr<TObj, TYPEID> gemfire::CacheableArrayType< TObj, TYPEID >::create ( int32_t  length  )  [inline, static]

create a default cacheable array of given size.

template<typename TObj, int8_t TYPEID>
static SharedArrayPtr<TObj, TYPEID> gemfire::CacheableArrayType< TObj, TYPEID >::create (  )  [inline, static]

creation function taking no arguments.

template<typename TObj, int8_t TYPEID>
static Serializable* gemfire::CacheableArrayType< TObj, TYPEID >::createDeserializable (  )  [inline, static]

creation function registered with serialization registry.

template<typename TObj, int8_t TYPEID>
static SharedArrayPtr<TObj, TYPEID> gemfire::CacheableArrayType< TObj, TYPEID >::createNoCopy ( TObj *  value,
int32_t  length 
) [inline, static]

Create a cacheable array taking ownership of the given array without creating a copy. Note that the application has to ensure that the given array is not deleted (apart from this class) and is allocated on the heap using the "new" operator.

virtual int8_t gemfire::Serializable::DSFID (  )  const [virtual, inherited]

return the Data Serialization Fixed ID type. This is used to determine what instance type to create and deserialize into.

Note that this should not be overridden by custom implementations and is reserved only for builtin types.

Reimplemented in gemfire::CacheableUndefined, and gemfire::Struct.

template<typename TObj, int8_t TYPEID>
virtual Serializable* gemfire::CacheableArrayType< TObj, TYPEID >::fromData ( DataInput &  input  )  [inline, virtual]

deserialize this object

Implements gemfire::Serializable.

template<typename TObj, int8_t TYPEID>
int32_t gemfire::CacheableArrayType< TObj, TYPEID >::length (  )  const [inline]

get the length of the array

template<typename TObj, int8_t TYPEID>
virtual uint32_t gemfire::CacheableArrayType< TObj, TYPEID >::objectSize (  )  const [inline, virtual]

return the size in bytes of the instance being serialized. This is used to determine whether the cache is using up more physical memory than it has been configured to use. The method can return zero if the user does not require the ability to control cache memory utilization.

Implements gemfire::Serializable.

template<typename TObj, int8_t TYPEID>
TObj gemfire::CacheableArrayType< TObj, TYPEID >::operator[] ( uint32_t  index  )  const [inline]

get the element at the given index

void gemfire::SharedBase::preserveSB (  )  const [inherited]

Atomically increment reference count.

int32_t gemfire::SharedBase::refCount (  )  [inline, inherited]

Returns:
the reference count

static void gemfire::Serializable::registerType ( TypeFactoryMethod  creationFunction  )  [static, inherited]

register an instance factory method for a given type. During registration the factory will be invoked to extract the typeId to associate with this function.

Exceptions:
IllegalStateException if the typeId has already been registered, or there is an error in registering the type; check errno for more information in the latter case.

void gemfire::SharedBase::releaseSB (  )  const [inherited]

Atomically decrement reference count, the SharedBase object is automatically deleted when its reference count goes to zero.

template<typename TObj, int8_t TYPEID>
virtual void gemfire::CacheableArrayType< TObj, TYPEID >::toData ( DataOutput &  output  )  const [inline, virtual]

serialize this object

Implements gemfire::Serializable.

virtual CacheableStringPtr gemfire::Serializable::toString (  )  const [virtual, inherited]

Display this object as 'string', which depends on the implementation in the subclasses.

The default implementation renders the classname.

The return value may be a temporary, so the caller has to ensure that the SharedPtr count does not go down to zero by storing the result in a variable or otherwise.

Reimplemented in gemfire::CacheableKeyType< TObj, TYPEID, TYPENAME, SPRINTFSYM, STRSIZE >, gemfire::CacheableDate, and gemfire::CacheableString.

template<typename TObj, int8_t TYPEID>
virtual int8_t gemfire::CacheableArrayType< TObj, TYPEID >::typeId (  )  const [inline, virtual]

return the typeId byte of the instance being serialized. This is used by deserialization to determine what instance type to create and deserialize into.

Reimplemented from gemfire::Serializable.

template<typename TObj, int8_t TYPEID>
const TObj* gemfire::CacheableArrayType< TObj, TYPEID >::value (  )  const [inline]

get the underlying array


GemFire C++ Cache API Documentation