gemfire::Struct Class Reference

Inherits gemfire::Serializable.


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.

Public Member Functions

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

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


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  )  [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.

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 [inline, virtual]

always returns 0

Reimplemented from gemfire::Serializable.

const SerializablePtr gemfire::Struct::operator[] ( const char *  fieldName  )  const

Get the field value for the given field name.

Parameters:
fieldName the name of the field whos value is required.
Returns:
A smart pointer to the field value.
Exceptions:
IllegalArgumentException if the field name is not found.

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

Get the field value for the given index number.

Parameters:
index the index number of the field value to get.
Returns:
A smart pointer to the field value or NULLPTR if index out of bounds.

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::registerPdxSerializer ( PdxSerializerPtr  pdxSerializer  )  [static, inherited]

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

See also:
PdxSerializer

static void gemfire::Serializable::registerPdxType ( TypeFactoryMethodPdx  creationFunction  )  [static, inherited]

register an Pdx instance factory method for a given type.

Exceptions:
IllegalStateException if 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  )  [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.

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 [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, gemfire::CacheableEnum, and gemfire::CacheableString.

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

Returns the typeId of Struct class.

Reimplemented from gemfire::Serializable.


GemFire C++ Cache API Documentation