00001
00018 #ifndef _CMS_STREAMMESSAGE_H_
00019 #define _CMS_STREAMMESSAGE_H_
00020
00021 #include <cms/Config.h>
00022 #include <cms/Message.h>
00023 #include <cms/CMSException.h>
00024 #include <cms/MessageNotReadableException.h>
00025 #include <cms/MessageNotWriteableException.h>
00026 #include <cms/MessageFormatException.h>
00027 #include <cms/MessageEOFException.h>
00028
00029 namespace cms {
00030
00061 class CMS_API StreamMessage: public Message {
00062 public:
00063
00064 virtual ~StreamMessage();
00065
00080 virtual ValueType getNextValueType() const = 0;
00081
00092 virtual bool readBoolean() const = 0;
00093
00105 virtual void writeBoolean(bool value) = 0;
00106
00117 virtual unsigned char readByte() const = 0;
00118
00128 virtual void writeByte(unsigned char value) = 0;
00129
00154 virtual int readBytes(std::vector<unsigned char>& value) const = 0;
00155
00166 virtual void writeBytes(const std::vector<unsigned char>& value) = 0;
00167
00199 virtual int readBytes(unsigned char* buffer, int length) const = 0;
00200
00215 virtual void writeBytes(const unsigned char* value, int offset, int length) = 0;
00216
00227 virtual char readChar() const = 0;
00228
00238 virtual void writeChar(char value) = 0;
00239
00250 virtual float readFloat() const = 0;
00251
00260 virtual void writeFloat(float value) = 0;
00261
00272 virtual double readDouble() const = 0;
00273
00282 virtual void writeDouble(double value) = 0;
00283
00294 virtual short readShort() const = 0;
00295
00305 virtual void writeShort(short value) = 0;
00306
00317 virtual unsigned short readUnsignedShort() const = 0;
00318
00328 virtual void writeUnsignedShort(unsigned short value) = 0;
00329
00340 virtual int readInt() const = 0;
00341
00351 virtual void writeInt(int value) = 0;
00352
00363 virtual long long readLong() const = 0;
00364
00374 virtual void writeLong(long long value) = 0;
00375
00386 virtual std::string readString() const = 0;
00387
00397 virtual void writeString(const std::string& value) = 0;
00398
00406 virtual void reset() = 0;
00407
00408 };
00409
00410 }
00411
00412 #endif