Inherited by gemfire::CacheableDate, gemfire::CacheableKeyType< TObj, TYPEID, TYPENAME, SPRINTFSYM, STRSIZE >, and gemfire::CacheableString.
Public Member Functions | |
| virtual int8_t | classId () const =0 |
| virtual Serializable * | fromData (DataInput &input)=0 |
| virtual uint32_t | hashcode () const =0 |
| return the hashcode for this key. | |
| virtual size_t | logString (char *buffer, size_t maxLength) const |
| Copy the string form of a key into a char* buffer for logging purposes. | |
| virtual uint32_t | objectSize () const =0 |
| virtual bool | operator== (const CacheableKey &other) const =0 |
| return true if this key matches other. | |
| 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 |
Static Public Member Functions | |
| template<class PRIM> | |
| static CacheableKeyPtr | create (const PRIM value) |
| Factory method that creates the key type that matches the type of value. | |
| static void | registerType (TypeFactoryMethod creationFunction) |
Protected Member Functions | |
| CacheableKey () | |
| Constructor. | |
| virtual | ~CacheableKey () |
| Destructor. | |
| gemfire::CacheableKey::CacheableKey | ( | ) | [inline, protected] |
Constructor.
| virtual gemfire::CacheableKey::~CacheableKey | ( | ) | [inline, protected, virtual] |
Destructor.
| virtual int8_t gemfire::Serializable::classId | ( | ) | const [pure virtual, inherited] |
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 CacheableKeyPtr gemfire::CacheableKey::create | ( | const PRIM | value | ) | [inline, static] |
Factory method that creates the key type that matches the type of value.
For customer defined derivations of CacheableKey, the method gemfire::createKey may be overloaded. For pointer types (e.g. char*) the method gemfire::createKeyArr may be overloaded.
Reimplemented from gemfire::Serializable.
| virtual Serializable* gemfire::Serializable::fromData | ( | DataInput & | input | ) | [pure virtual, inherited] |
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::CacheableKey::hashcode | ( | ) | const [pure virtual] |
return the hashcode for this key.
Implemented in gemfire::CacheableKeyType< TObj, TYPEID, TYPENAME, SPRINTFSYM, STRSIZE >, gemfire::CacheableDate, and gemfire::CacheableString.
| virtual size_t gemfire::CacheableKey::logString | ( | char * | buffer, | |
| size_t | maxLength | |||
| ) | const [virtual] |
Copy the string form of a key into a char* buffer for logging purposes.
implementations should only generate a string as long as maxLength chars, and return the number of chars written. buffer is expected to be large enough to hold at least maxLength chars. The default implementation renders the classname and instance address.
Reimplemented in gemfire::CacheableKeyType< TObj, TYPEID, TYPENAME, SPRINTFSYM, STRSIZE >, gemfire::CacheableDate, gemfire::CacheableFileName, and gemfire::CacheableString.
| virtual uint32_t gemfire::Serializable::objectSize | ( | ) | const [pure virtual, inherited] |
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.
| virtual bool gemfire::CacheableKey::operator== | ( | const CacheableKey & | other | ) | const [pure virtual] |
return true if this key matches other.
Implemented in gemfire::CacheableKeyType< TObj, TYPEID, TYPENAME, SPRINTFSYM, STRSIZE >, gemfire::CacheableDate, and gemfire::CacheableString.
| 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, 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.
| 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, inherited] |
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, inherited] |
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, inherited] |
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.