00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __CCOMMBUFFER_H__
00021 #define __CCOMMBUFFER_H__
00022
00023 #include "cpolymorphic.h"
00024
00025
00026 class cCommBuffer;
00027 class cObject;
00028 class opp_string;
00029
00035 SIM_API bool notNull(void *ptr, cCommBuffer *buffer);
00036
00041 SIM_API bool checkFlag(cCommBuffer *buffer);
00042
00046 SIM_API void packObject(cObject *obj, cCommBuffer *buffer);
00047
00051 SIM_API cObject *unpackObject(cCommBuffer *buffer);
00052
00053
00066 class SIM_API cCommBuffer : public cPolymorphic
00067 {
00068 public:
00072 virtual ~cCommBuffer() {}
00073
00081 virtual bool isBufferEmpty() = 0;
00082
00088 virtual void assertBufferEmpty() = 0;
00090
00096 virtual void pack(char d) = 0;
00100 virtual void pack(unsigned char d) = 0;
00104 virtual void pack(bool d) = 0;
00108 virtual void pack(short d) = 0;
00112 virtual void pack(unsigned short d) = 0;
00116 virtual void pack(int d) = 0;
00120 virtual void pack(unsigned int d) = 0;
00124 virtual void pack(long d) = 0;
00128 virtual void pack(unsigned long d) = 0;
00132 virtual void pack(float d) = 0;
00136 virtual void pack(double d) = 0;
00140 virtual void pack(long double d) = 0;
00144 void pack(char *d) {pack((const char *)d);}
00148 virtual void pack(const char *d) = 0;
00152 virtual void pack(opp_string& d) = 0;
00154
00160 virtual void pack(const char *d, int size) = 0;
00164 virtual void pack(unsigned char *d, int size) = 0;
00168 virtual void pack(bool *d, int size) = 0;
00172 virtual void pack(short *d, int size) = 0;
00176 virtual void pack(unsigned short *d, int size) = 0;
00180 virtual void pack(int *d, int size) = 0;
00184 virtual void pack(unsigned int *d, int size) = 0;
00188 virtual void pack(long *d, int size) = 0;
00192 virtual void pack(unsigned long *d, int size) = 0;
00196 virtual void pack(float *d, int size) = 0;
00200 virtual void pack(double *d, int size) = 0;
00204 virtual void pack(long double *d, int size) = 0;
00208 void pack(char **d, int size) {pack((const char **)d,size);}
00212 virtual void pack(const char **d, int size) = 0;
00216 virtual void pack(opp_string *d, int size) = 0;
00218
00224 virtual void unpack(char& d) = 0;
00228 virtual void unpack(unsigned char& d) = 0;
00232 virtual void unpack(bool& d) = 0;
00236 virtual void unpack(short& d) = 0;
00240 virtual void unpack(unsigned short& d) = 0;
00244 virtual void unpack(int& d) = 0;
00248 virtual void unpack(unsigned int& d) = 0;
00252 virtual void unpack(long& d) = 0;
00256 virtual void unpack(unsigned long& d) = 0;
00260 virtual void unpack(float& d) = 0;
00264 virtual void unpack(double& d) = 0;
00268 virtual void unpack(long double& d) = 0;
00272 void unpack(char *&d) {unpack((const char *&)d);}
00276 virtual void unpack(const char *&d) = 0;
00280 virtual void unpack(opp_string& d) = 0;
00282
00288 virtual void unpack(char *d, int size) = 0;
00292 virtual void unpack(unsigned char *d, int size) = 0;
00296 virtual void unpack(bool *d, int size) = 0;
00300 virtual void unpack(short *d, int size) = 0;
00304 virtual void unpack(unsigned short *d, int size) = 0;
00308 virtual void unpack(int *d, int size) = 0;
00312 virtual void unpack(unsigned int *d, int size) = 0;
00316 virtual void unpack(long *d, int size) = 0;
00320 virtual void unpack(unsigned long *d, int size) = 0;
00324 virtual void unpack(float *d, int size) = 0;
00328 virtual void unpack(double *d, int size) = 0;
00332 virtual void unpack(long double *d, int size) = 0;
00336 void unpack(char **d, int size) {unpack((const char **)d,size);}
00340 virtual void unpack(const char **d, int size) = 0;
00344 virtual void unpack(opp_string *d, int size) = 0;
00346 };
00347
00348 #endif
00349