Pivotal GemFire Native Client Cache Reference  9.0.6
gemfire::Struct Class Reference

A Struct has a StructSet as its parent. More...

Inherits gemfire::Serializable.

Public Member Functions

virtual int32_t classId () const
 Returns the classId for internal use. More...
 
virtual int8_t DSFID () const
 Return the data serializable fixed ID size type for internal use. More...
 
virtual SerializablefromData (DataInput &input)
 Deserializes the Struct object from the DataInput. More...
 
virtual const char * getFieldName (int32_t index)
 Returns the name of the field corresponding to the index number in the Struct. More...
 
const StructSetPtr getStructSet () const
 Get the parent StructSet of this Struct. More...
 
bool hasNext () const
 Check whether another field value is available to iterate over in this Struct. More...
 
int32_t length () const
 Get the number of field values available. More...
 
const SerializablePtr next ()
 Get the next field value item available in this Struct. More...
 
virtual uint32_t objectSize () const
 always returns 0 More...
 
const SerializablePtr operator[] (int32_t index) const
 Get the field value for the given index number. More...
 
const SerializablePtr operator[] (const char *fieldName) const
 Get the field value for the given field name. More...
 
void preserveSB () const
 Atomically increment reference count. More...
 
int32_t refCount ()
 
void releaseSB () const
 Atomically decrement reference count, the SharedBase object is automatically deleted when its reference count goes to zero. More...
 
 Struct (StructSet *ssPtr, VectorT< SerializablePtr > &fieldValues)
 Constructor - meant only for internal use. More...
 
virtual void toData (DataOutput &output) const
 Serializes this Struct object. More...
 
virtual CacheableStringPtr toString () const
 Display this object as 'string', which depends on the implementation in the subclasses. More...
 
virtual int8_t typeId () const
 Returns the typeId of Struct class. More...
 

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. More...
 
static SerializablecreateDeserializable ()
 Factory function for registration of Struct. More...
 
static void registerPdxSerializer (PdxSerializerPtr pdxSerializer)
 Register the PDX serializer which can handle serialization for instances of user domain classes. More...
 
static void registerPdxType (TypeFactoryMethodPdx creationFunction)
 register an Pdx instance factory method for a given type. More...
 
static void registerType (TypeFactoryMethod creationFunction)
 register an instance factory method for a given type. More...
 

Detailed Description

A Struct has a StructSet as its parent.

It contains the field values returned after executing a Query obtained from a QueryService which in turn is obtained from a Cache.

Constructor & Destructor Documentation

gemfire::Struct::Struct ( StructSet ssPtr,
VectorT< SerializablePtr > &  fieldValues 
)

Constructor - meant only for internal use.

Member Function Documentation

virtual int32_t gemfire::Struct::classId ( ) const
virtual

Returns the classId for internal use.

Implements gemfire::Serializable.

template<class PRIM >
static SerializablePtr gemfire::Serializable::create ( const PRIM  value)
inlinestaticinherited

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.

static Serializable* gemfire::Struct::createDeserializable ( )
static

Factory function for registration of Struct.

virtual int8_t gemfire::Struct::DSFID ( ) const
virtual

Return the data serializable fixed ID size type for internal use.

Since
GFE 5.7

Reimplemented from gemfire::Serializable.

virtual Serializable* gemfire::Struct::fromData ( DataInput input)
virtual

Deserializes the Struct object from the DataInput.

KN: better comment

Implements gemfire::Serializable.

virtual const char* gemfire::Struct::getFieldName ( int32_t  index)
virtual

Returns the name of the field corresponding to the index number in the Struct.

const StructSetPtr gemfire::Struct::getStructSet ( ) const

Get the parent StructSet of this Struct.

Returns
A smart pointer to the parent StructSet of this Struct.
bool gemfire::Struct::hasNext ( ) const

Check whether another field value is available to iterate over in this Struct.

Returns
true if available otherwise false.
int32_t gemfire::Struct::length ( ) const

Get the number of field values available.

Returns
the number of field values available.
const SerializablePtr gemfire::Struct::next ( )

Get the next field value item available in this Struct.

Returns
A smart pointer to the next item in the Struct or NULLPTR if no more available.
virtual uint32_t gemfire::Struct::objectSize ( ) const
inlinevirtual

always returns 0

Reimplemented from gemfire::Serializable.

const SerializablePtr gemfire::Struct::operator[] ( int32_t  index) const

Get the field value for the given index number.

Parameters
indexthe index number of the field value to get.
Returns
A smart pointer to the field value or NULLPTR if index out of bounds.
const SerializablePtr gemfire::Struct::operator[] ( const char *  fieldName) const

Get the field value for the given field name.

Parameters
fieldNamethe name of the field whos value is required.
Returns
A smart pointer to the field value.
Exceptions
IllegalArgumentExceptionif the field name is not found.
void gemfire::SharedBase::preserveSB ( ) const
inherited

Atomically increment reference count.

int32_t gemfire::SharedBase::refCount ( )
inlineinherited
Returns
the reference count
static void gemfire::Serializable::registerPdxSerializer ( PdxSerializerPtr  pdxSerializer)
staticinherited

Register the PDX serializer which can handle serialization for instances of user domain classes.

See also
PdxSerializer
static void gemfire::Serializable::registerPdxType ( TypeFactoryMethodPdx  creationFunction)
staticinherited

register an Pdx instance factory method for a given type.

Exceptions
IllegalStateExceptionif the typeName has already been registered, or there is an error in registering the type; check errno for more information in the latter case.
static void gemfire::Serializable::registerType ( TypeFactoryMethod  creationFunction)
staticinherited

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

virtual void gemfire::Struct::toData ( DataOutput output) const
virtual

Serializes this Struct object.

KN: better comment

Implements gemfire::Serializable.

virtual CacheableStringPtr gemfire::Serializable::toString ( ) const
virtualinherited

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::PdxInstance, gemfire::CacheableString, gemfire::CacheableDate, gemfire::CacheableKeyType< TObj, TYPEID, TYPENAME, SPRINTFSYM, STRSIZE >, and gemfire::CacheableEnum.

virtual int8_t gemfire::Struct::typeId ( ) const
virtual

Returns the typeId of Struct class.

Reimplemented from gemfire::Serializable.


GemFire C++ Cache API Documentation