00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00016 #ifndef LOG4CPLUS_HELPERS_SOCKET_BUFFER_HEADER_
00017 #define LOG4CPLUS_HELPERS_SOCKET_BUFFER_HEADER_
00018
00019 #include <log4cplus/config.h>
00020 #include <log4cplus/tstring.h>
00021 #include <log4cplus/helpers/logloguser.h>
00022
00023
00024 namespace log4cplus {
00025 namespace helpers {
00026
00030 class LOG4CPLUS_EXPORT SocketBuffer : protected log4cplus::helpers::LogLogUser
00031 {
00032 public:
00033 SocketBuffer(size_t max);
00034 SocketBuffer(const SocketBuffer& rhs);
00035 ~SocketBuffer();
00036
00037 SocketBuffer& operator=(const SocketBuffer& rhs);
00038
00039 char *getBuffer() const { return buffer; }
00040 size_t getMaxSize() const { return maxsize; }
00041 size_t getSize() const { return size; }
00042 void setSize(size_t s) { size = s; }
00043 size_t getPos() const { return pos; }
00044
00045 unsigned char readByte();
00046 unsigned short readShort();
00047 unsigned int readInt();
00048 tstring readString(unsigned char sizeOfChar);
00049
00050 void appendByte(unsigned char val);
00051 void appendShort(unsigned short val);
00052 void appendInt(unsigned int val);
00053 void appendSize_t(size_t val);
00054 void appendString(const tstring& str);
00055 void appendBuffer(const SocketBuffer& buffer);
00056
00057 private:
00058
00059 void copy(const SocketBuffer& rhs);
00060
00061
00062 size_t maxsize;
00063 size_t size;
00064 size_t pos;
00065 char *buffer;
00066 };
00067
00068 }
00069 }
00070
00071 #endif // LOG4CPLUS_HELPERS_SOCKET_HEADER_
00072