00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef _CAVERNPLUS_ETCP_C
00018 #define _CAVERNPLUS_ETCP_C
00019
00020 #include "CAVERNnet_datapack_c.hxx"
00021 #include "CAVERNnet_tcp_c.hxx"
00022
00037 class CAVERNnet_extendedTcpClient_c : public CAVERNnet_tcpClient_c
00038 {
00039 public:
00040 CAVERNnet_extendedTcpClient_c();
00041 virtual ~CAVERNnet_extendedTcpClient_c();
00042
00049 int readChar(char& value, int blockingType);
00050
00057 int writeChar(char value, int blockingType);
00058
00065 int readInt(int& value, int blockingType);
00066
00074 int readIntArray(int* intArray, int size, int blockingType);
00075
00082 int writeInt(int value, int blockingType);
00083
00091 int writeIntArray(int* intArray, int size, int blockingType);
00092
00099 int readInt32(int32& value, int blockingType);
00100
00108 int readInt32Array(int32* int32Array, int size, int blockingType);
00109
00116 int writeInt32(int32 value, int blockingType);
00117
00125 int writeInt32Array(int32* int32Array, int size, int blockingType);
00126
00133 int readInt64(int64& value, int blockingType);
00134
00142 int readInt64Array(int64* int64Array, int size, int blockingType);
00143
00150 int writeInt64(int64 value, int blockingType);
00151
00159 int writeInt64Array(int64* int64Array, int size, int blockingType);
00160
00167 int readLong(long& value, int blockingType);
00168
00176 int readLongArray(long* longArray, int size, int blockingType);
00177
00184 int writeLong(long value, int blockingType);
00185
00193 int writeLongArray(long* longArray, int size, int blockingType);
00194
00201 int readFloat(float& value, int blockingType);
00202
00210 int readFloatArray(float* floatArray, int size, int blockingType);
00211
00218 int writeFloat(float value, int blockingType);
00219
00227 int writeFloatArray(float* floatArray, int size, int blockingType);
00228
00235 int readDouble(double& value, int blockingType);
00236
00244 int readDoubleArray(double* doubleArray, int size, int blockingType);
00245
00252 int writeDouble(double value, int blockingType);
00253
00261 int writeDoubleArray(double* doubleArray, int size, int blockingType);
00262
00263 private:
00264 int int_size;
00265 int char_size;
00266 int int32_size;
00267 int int64_size;
00268 int long_size;
00269 int float_size;
00270 int double_size;
00271
00272 char* int_buffer;
00273 char* int32_buffer;
00274 char* int64_buffer;
00275 char* long_buffer;
00276 char* float_buffer;
00277 char* double_buffer;
00278 };
00279
00282 class CAVERNnet_extendedTcpServer_c : public CAVERNnet_tcpServer_c
00283 {
00284 public:
00288 CAVERNnet_extendedTcpClient_c *checkForNewConnections();
00289 };
00290
00291 #endif
00292