1 #ifndef PDX_AUTO_SERIALIZER_HPP 2 #define PDX_AUTO_SERIALIZER_HPP 13 #include "gfcpp_globals.hpp" 14 #include "PdxWriter.hpp" 15 #include "PdxReader.hpp" 19 #include "GemfireTypeIds.hpp" 20 #include "TypeHelper.hpp" 25 namespace PdxAutoSerializable
33 pw->writeByte( fieldName, value );
37 value = pr->readByte(fieldName);
42 pw->writeChar( fieldName, value );
46 value = pr->readChar(fieldName) ;
52 pw->writeWideChar(fieldName, value );
56 value = pr->readWideChar( fieldName );
61 pw->writeBoolean( fieldName, value );
65 value = pr->readBoolean( fieldName );
70 pw->writeByte( fieldName, value );
74 value = pr->readByte(fieldName);
79 pw->writeShort( fieldName, value );
83 value = pr->readShort( fieldName );
88 pw->writeInt( fieldName, value );
92 value = pr->readInt( fieldName );
97 pw->writeLong( fieldName, value );
101 value = pr->readLong( fieldName);
106 pw->writeFloat( fieldName, value );
110 value = pr->readFloat( fieldName );
115 pw->writeDouble( fieldName, value );
119 value = pr->readDouble( fieldName );
122 inline void writePdxObject(
gemfire::PdxWriterPtr& pw,
const char* fieldName, CacheableDatePtr value )
124 pw->writeDate( fieldName, value );
126 inline void readPdxObject(
gemfire::PdxReaderPtr& pr,
const char* fieldName, CacheableDatePtr& value )
128 value = pr->readDate( fieldName );
133 pw->writeString( fieldName, value );
137 value = pr->readString( fieldName );
141 const wchar_t* value )
143 pw->writeWideString( fieldName, value );
147 value = pr->readWideString( fieldName );
152 char** value, int32_t arraySize, int32_t* elemArraySize)
155 pw->writeArrayOfByteArrays(fieldName, (
char**)value, arraySize, elemArraySize);
158 int32_t& len, int32_t*& Lengtharr)
160 GF_NEW( Lengtharr, int32_t[len]);
161 value = (
char**)pr->readArrayOfByteArrays(fieldName, len, &Lengtharr);
165 int8_t** value, int32_t arraySize, int32_t* elemArraySize)
167 pw->writeArrayOfByteArrays(fieldName, value, arraySize, elemArraySize);
170 int32_t& len, int32_t*& Lengtharr)
172 GF_NEW( Lengtharr, int32_t[len]);
173 value = (
signed char**)pr->readArrayOfByteArrays(fieldName, len, &Lengtharr);
179 template <
typename TObj>
182 gemfire::TypeHelper::yes_type isSerializable )
184 pw->writeObject( fieldName, value );
187 template <
typename TObj>
191 writePdxObject( pw, fieldName, value, GF_TYPE_IS_SERIALIZABLE_TYPE( TObj ) );
194 template <
typename TObj>
197 gemfire::TypeHelper::yes_type isSerializable )
199 value = dynCast<gemfire::SharedPtr< TObj > >(pr->readObject(fieldName));
202 template <
typename TObj>
206 readPdxObject( pr, fieldName, value, GF_TYPE_IS_SERIALIZABLE_TYPE( TObj ) );
212 pw->writeBooleanArray( fieldName, value, len );
218 value = pr->readBooleanArray( fieldName, len );
224 pw->writeWideCharArray( fieldName, value, len );
230 value = pr->readWideCharArray( fieldName, len );
237 pw->writeByteArray( fieldName, value, len );
243 value = (int8_t*)pr->readByteArray( fieldName, len );
250 pw->writeCharArray( fieldName, value, len );
256 value = pr->readCharArray( fieldName, len );
262 pw->writeByteArray( fieldName, value, len );
268 value = (
signed char*)pr->readByteArray( fieldName, len );
275 pw->writeShortArray( fieldName, value, len );
281 value = pr->readShortArray( fieldName, len );
287 pw->writeIntArray( fieldName, value, len );
293 value = pr->readIntArray( fieldName, len );
299 pw->writeLongArray( fieldName, value, len );
305 value = pr->readLongArray( fieldName, len );
311 pw->writeFloatArray( fieldName, value, len );
317 value = pr->readFloatArray( fieldName, len );
323 pw->writeDoubleArray( fieldName, value, len );
329 value = pr->readDoubleArray( fieldName, len );
335 pw->writeStringArray( fieldName, value, len );
341 value = pr->readStringArray( fieldName, len );
347 pw->writeWideStringArray( fieldName, value, len );
353 value = pr->readWideStringArray( fieldName, len );
356 inline void writePdxObject(
gemfire::PdxWriterPtr& pw,
const char* fieldName, CacheableObjectArrayPtr value)
358 pw->writeObjectArray( fieldName, value);
361 inline void readPdxObject(
gemfire::PdxReaderPtr& pr,
const char* fieldName, CacheableObjectArrayPtr& value )
363 value = pr->readObjectArray( fieldName);
528 #endif // _GEMFIRE_SERIALIZER_HPP_
This namespace contains all the GemFire C++ API classes, enumerations and globals.
Definition: Assert.hpp:19
#define GF_NEW(v, stmt)
Allocates x and throws OutOfMemoryException if it fails.
Definition: gf_base.hpp:315
Defines a reference counted shared pointer.
Definition: SharedPtr.hpp:35