00001 #ifndef __GEMFIRE_PDXWRITER_H__
00002 #define __GEMFIRE_PDXWRITER_H__
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #include "gfcpp_globals.hpp"
00013 #include "gf_types.hpp"
00014 #include "CacheableBuiltins.hpp"
00015 #include "CacheableDate.hpp"
00016
00017 namespace gemfire {
00018
00019 class PdxWriter;
00020 typedef SharedPtr<PdxWriter> PdxWriterPtr;
00021
00027 class CPPCACHE_EXPORT PdxWriter : public SharedBase{
00028
00029 public:
00030
00034 PdxWriter(){}
00035
00039 virtual ~PdxWriter(){}
00040
00050 virtual PdxWriterPtr writeChar(const char* fieldName, char value) = 0;
00051
00061 virtual PdxWriterPtr writeWideChar(const char* fieldName, wchar_t value) = 0;
00062
00072 virtual PdxWriterPtr writeBoolean(const char* fieldName, bool value) = 0;
00073
00083 virtual PdxWriterPtr writeByte(const char* fieldName, int8_t value) = 0;
00084
00094 virtual PdxWriterPtr writeShort(const char* fieldName, int16_t value) = 0;
00095
00105 virtual PdxWriterPtr writeInt(const char* fieldName, int32_t value) = 0;
00106
00116 virtual PdxWriterPtr writeLong(const char* fieldName, int64_t value) = 0;
00117
00127 virtual PdxWriterPtr writeFloat(const char* fieldName, float value) = 0;
00128
00138 virtual PdxWriterPtr writeDouble(const char* fieldName, double value) = 0;
00139
00149 virtual PdxWriterPtr writeDate(const char* fieldName, CacheableDatePtr date) = 0;
00150
00160 virtual PdxWriterPtr writeString(const char* fieldName, const char* value) = 0;
00161
00171 virtual PdxWriterPtr writeWideString(const char* fieldName, const wchar_t* value) = 0;
00172
00188 virtual PdxWriterPtr writeObject(const char* fieldName, CacheablePtr value) = 0;
00189
00200 virtual PdxWriterPtr writeBooleanArray(const char* fieldName, bool* array, int length) = 0;
00201
00212 virtual PdxWriterPtr writeWideCharArray(const char* fieldName, wchar_t* array, int length) = 0;
00213
00224 virtual PdxWriterPtr writeCharArray(const char* fieldName, char* array, int length) = 0;
00225
00236 virtual PdxWriterPtr writeByteArray(const char* fieldName, int8_t* array, int length) = 0;
00237
00248 virtual PdxWriterPtr writeShortArray(const char* fieldName, int16_t* array, int length) = 0;
00249
00260 virtual PdxWriterPtr writeIntArray(const char* fieldName, int32_t* array, int length) = 0;
00261
00272 virtual PdxWriterPtr writeLongArray(const char* fieldName, int64_t* array, int length) = 0;
00273
00284 virtual PdxWriterPtr writeFloatArray(const char* fieldName, float* array, int length) = 0;
00285
00296 virtual PdxWriterPtr writeDoubleArray(const char* fieldName, double* array, int length) = 0;
00297
00308 virtual PdxWriterPtr writeStringArray(const char* fieldName, char** array, int length) = 0;
00309
00320 virtual PdxWriterPtr writeWideStringArray(const char* fieldName, wchar_t** array, int length) = 0;
00321
00333 virtual PdxWriterPtr writeObjectArray(const char* fieldName, CacheableObjectArrayPtr array) = 0;
00334
00346 virtual PdxWriterPtr writeArrayOfByteArrays(const char* fieldName, int8_t** array, int arrayLength, int* elementLength ) = 0;
00347
00364 virtual PdxWriterPtr markIdentityField(const char* fieldName) = 0;
00365
00374 virtual PdxWriterPtr writeUnreadFields(PdxUnreadFieldsPtr unread) = 0;
00375
00376 };
00377 }
00378 #endif
00379