VMware GemFire Native C++ Reference  9.1
apache::geode::client::Serializable Class Referenceabstract

This abstract base class is the superclass of all user objects in the cache that can be serialized. More...

Inherits apache::geode::client::SharedBase.

Inherited by apache::geode::client::CacheableArrayType< TObj, TYPEID >, apache::geode::client::CacheableContainerType< TBase, TYPEID >, apache::geode::client::CacheableKey, apache::geode::client::CacheableObjectArray, apache::geode::client::CacheableUndefined, apache::geode::client::Properties, apache::geode::client::RegionAttributes, apache::geode::client::Struct, and apache::geode::client::UserFunctionExecutionException.

Public Member Functions

virtual int32_t classId () const =0
 Return the classId of the instance being serialized. More...
 
virtual int8_t DSFID () const
 return the Data Serialization Fixed ID type. More...
 
virtual SerializablefromData (DataInput &input)=0
 deserialize this object, typical implementation should return the 'this' pointer. More...
 
virtual uint32_t objectSize () const
 return the size in bytes of the instance being serialized. 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...
 
virtual void toData (DataOutput &output) const =0
 serialize this 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
 return the typeId byte of the instance being serialized. More...
 
virtual ~Serializable ()
 destructor 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 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...
 

Protected Member Functions

 Serializable ()
 constructors More...
 

Detailed Description

This abstract base class is the superclass of all user objects in the cache that can be serialized.

Constructor & Destructor Documentation

virtual apache::geode::client::Serializable::~Serializable ( )
inlinevirtual

destructor

apache::geode::client::Serializable::Serializable ( )
inlineprotected

constructors

Member Function Documentation

template<class PRIM >
static SerializablePtr apache::geode::client::Serializable::create ( const PRIM  value)
inlinestatic

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

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

virtual int8_t apache::geode::client::Serializable::DSFID ( ) const
virtual

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 apache::geode::client::Struct, and apache::geode::client::CacheableUndefined.

virtual uint32_t apache::geode::client::Serializable::objectSize ( ) const
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. Note that you must implement this only if you use the HeapLRU feature.

Reimplemented in apache::geode::client::PdxInstance, apache::geode::client::CacheableContainerType< TBase, TYPEID >, apache::geode::client::CacheableArrayType< TObj, TYPEID >, apache::geode::client::CacheableString, apache::geode::client::RegionAttributes, apache::geode::client::Properties, apache::geode::client::Struct, apache::geode::client::CacheableKeyType< TObj, TYPEID, TYPENAME, SPRINTFSYM, STRSIZE >, apache::geode::client::CacheableObjectArray, apache::geode::client::CacheableDate, apache::geode::client::UserFunctionExecutionException, apache::geode::client::CacheableUndefined, and apache::geode::client::CacheableEnum.

void apache::geode::client::SharedBase::preserveSB ( ) const
inherited

Atomically increment reference count.

int32_t apache::geode::client::SharedBase::refCount ( )
inlineinherited
Returns
the reference count
static void apache::geode::client::Serializable::registerPdxSerializer ( PdxSerializerPtr  pdxSerializer)
static

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

See also
PdxSerializer
static void apache::geode::client::Serializable::registerPdxType ( TypeFactoryMethodPdx  creationFunction)
static

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 apache::geode::client::Serializable::registerType ( TypeFactoryMethod  creationFunction)
static

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 apache::geode::client::SharedBase::releaseSB ( ) const
inherited

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

virtual CacheableStringPtr apache::geode::client::Serializable::toString ( ) const
virtual

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


Pivotal GemFire C++ Cache API Documentation