#ifndef CMessage__h #define CMessage__h #include #include #define MAX_TRANSFER_LEN (10*1024*1024) namespace Chromium { std::string UtfToGbk(const char* utf8); std::string ConvertGBKToUtf8(std::string &strGBK); class CMessage{ public: CMessage(); explicit CMessage(unsigned int length); explicit CMessage(CMessage *p); ~CMessage(); const char* getPayload() const; const unsigned int getLength(); char* getWriteableData(); int getBufferLength(); int getMessageType(); int getSessionID(); int getTransID(); void exchangeSessionIdAndTransId(); bool getIsEnd(); int getEventID(); int getSignatureID(); unsigned int getCMessageLength(); void clear(); void setSessionID(int sessionid, bool hasTransId = true); void setTransID(int transid); private: int memoryDynamicGrowth(); public: enum { HEADER_LENGTH = 4 }; enum { SUGGEST_BUFFER_LENGTH = 1024 * 4 }; private: char* _data; unsigned int _buf_length; }; } #endif