Serializing Data with PDX Serialization
PDX is a cross-language data format that can reduce the cost of distributing and serializing your objects. PDX stores data in named fields that you can access individually to avoid the cost of deserializing the entire data object. When you use PDX serialization with the C++ client API, you can register a PdxSerializer
for the entire cache, implement PDX serialization for each domain object or use automatic PDX serialization by running the pdxautoserializer
tool.
You can also set the object preference of the cache to the PdxInstance
type, which allows you to access fields of a PDX object without deserializing the entire object.
When using the C++ client API, you can opt to use PDX autoserialization. The command line tool pdxautoserializer
will automatically generate C++ code to PDX serialize the class you want to serialize.
Serialize Your Domain Objects with PdxSerializer and PdxWrapper
For domain objects that you cannot or do not want to modify, use the
PdxSerializer
and thePdxWrapper
classes to serialize and deserialize the object’s fields.Serialize Using the PdxSerializable Class
Domain classes need to inherit the
PdxSerializable
abstract class to serialize and de-serialize the object. When you write objects using PDX serialization, they are distributed to the server tier in PDX serialized form.Using Automatic PDX Serialization
You can allow your C++ client applications to automatically PDX serialize and deserialize domain objects without having to add any extra code by using the
pdxautoserializer
command line tool.Programming Your Application to Use PdxInstances
A
PdxInstance
is a lightweight wrapper around the raw bytes of the PDX serialized objects kept in the cache. It provides applications with run-time access to files of a PDX serialized object. GemFire provides the implementation of thePdxInstance
class.Configuring PDX to Ignore Unread Fields During Deserialization
Use the
setPdxIgnoreUnreadFields
API to control whether PDX ignores fields that were unread during deserialization.Using PdxInstanceFactory to Create PdxInstances
You can use the
PdxInstanceFactory
API to create aPdxInstance
from raw data when the domain class is not available on the server.Using C++ Enum Type with PDX Serialization
Because there is no “object” base type in C++, enums cannot be directly passed as parameters to the
writeObject
andreadObject
API.Using PDX Serialization with Delta Propagation
To use delta propagation with PDX serialization, you must implement the
Delta
interface methods.