Inherited by gemfire::CacheableArrayType< TObj, TYPEID >, gemfire::CacheableContainerType< TBase, TYPEID >, gemfire::CacheableKey, gemfire::CacheableObjectArray, gemfire::CacheableUndefined, gemfire::Properties, gemfire::RegionAttributes, and gemfire::Struct.
Public Member Functions | |
| virtual int8_t | classId () const =0 |
| virtual Serializable * | fromData (DataInput &input)=0 |
| virtual uint32_t | objectSize () const =0 |
| void | preserveSB () const |
| Atomically increment reference count. | |
| int32_t | refCount () |
| |
| 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 =0 |
| virtual CacheableStringPtr | toString () const |
| Display this object as 'string', which depends on the implementation in the subclasses. | |
| virtual int8_t | typeId () const |
| virtual | ~Serializable () |
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 void | registerType (TypeFactoryMethod creationFunction) |
Protected Member Functions | |
| Serializable () | |
| virtual gemfire::Serializable::~Serializable | ( | ) | [inline, virtual] |
destructor
| gemfire::Serializable::Serializable | ( | ) | [inline, protected] |
constructors
| virtual int8_t gemfire::Serializable::classId | ( | ) | const [pure virtual] |
Return the classId byte of the instance being serialized. This is used by deserialization to determine what instance type to create and derserialize into.
The classId must be unique within an application suite and in the range 0-127 both inclusive -- negative values are not allowed. An application can thus define upto 128 custom Serializable classes. Returning a value greater than 127 will result in undefined behaviour.
Implemented in gemfire::CacheableKeyType< TObj, TYPEID, TYPENAME, SPRINTFSYM, STRSIZE >, gemfire::CacheableArrayType< TObj, TYPEID >, gemfire::CacheableContainerType< TBase, TYPEID >, gemfire::CacheableDate, gemfire::CacheableFileName, gemfire::CacheableObjectArray, gemfire::CacheableString, gemfire::CacheableUndefined, gemfire::Properties, gemfire::RegionAttributes, and gemfire::Struct.
| static SerializablePtr gemfire::Serializable::create | ( | const PRIM | value | ) | [inline, static] |
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.
| virtual Serializable* gemfire::Serializable::fromData | ( | DataInput & | input | ) | [pure virtual] |
deserialize this object, typical implementation should return the 'this' pointer.
Implemented in gemfire::CacheableKeyType< TObj, TYPEID, TYPENAME, SPRINTFSYM, STRSIZE >, gemfire::CacheableArrayType< TObj, TYPEID >, gemfire::CacheableContainerType< TBase, TYPEID >, gemfire::CacheableDate, gemfire::CacheableFileName, gemfire::CacheableObjectArray, gemfire::CacheableString, gemfire::CacheableUndefined, gemfire::Properties, gemfire::RegionAttributes, and gemfire::Struct.
| virtual uint32_t gemfire::Serializable::objectSize | ( | ) | const [pure 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.
Implemented in gemfire::CacheableKeyType< TObj, TYPEID, TYPENAME, SPRINTFSYM, STRSIZE >, gemfire::CacheableArrayType< TObj, TYPEID >, gemfire::CacheableContainerType< TBase, TYPEID >, gemfire::CacheableDate, gemfire::CacheableObjectArray, gemfire::CacheableString, gemfire::CacheableUndefined, gemfire::Properties, gemfire::RegionAttributes, and gemfire::Struct.
| void gemfire::SharedBase::preserveSB | ( | ) | const [inherited] |
Atomically increment reference count.
| int32_t gemfire::SharedBase::refCount | ( | ) | [inline, inherited] |
| static void gemfire::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.
| 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::Serializable::toData | ( | DataOutput & | output | ) | const [pure virtual] |
serialize this object
Implemented in gemfire::CacheableKeyType< TObj, TYPEID, TYPENAME, SPRINTFSYM, STRSIZE >, gemfire::CacheableArrayType< TObj, TYPEID >, gemfire::CacheableContainerType< TBase, TYPEID >, gemfire::CacheableDate, gemfire::CacheableFileName, gemfire::CacheableObjectArray, gemfire::CacheableString, gemfire::CacheableUndefined, gemfire::Properties, gemfire::RegionAttributes, and gemfire::Struct.
| virtual CacheableStringPtr gemfire::Serializable::toString | ( | ) | const [virtual] |
Display this object as 'string', which depends on the implementation in the subclasses.
The default implementation renders the classname.
Reimplemented in gemfire::CacheableKeyType< TObj, TYPEID, TYPENAME, SPRINTFSYM, STRSIZE >, gemfire::CacheableDate, and gemfire::CacheableString.
| virtual int8_t gemfire::Serializable::typeId | ( | ) | const [virtual] |
return the typeId byte of the instance being serialized. This is used by deserialization to determine what instance type to create and derserialize into.
Note that this should be never be overridden by custom implementations and is reserved only for builtin types.
Reimplemented in gemfire::CacheableKeyType< TObj, TYPEID, TYPENAME, SPRINTFSYM, STRSIZE >, gemfire::CacheableArrayType< TObj, TYPEID >, gemfire::CacheableContainerType< TBase, TYPEID >, gemfire::CacheableDate, gemfire::CacheableFileName, gemfire::CacheableObjectArray, gemfire::CacheableString, gemfire::CacheableUndefined, gemfire::Properties, gemfire::RegionAttributes, and gemfire::Struct.