#ifndef CMessage__h #define CMessage__h #include #include #define MAX_TRANSFER_LEN (2*1024*1024) //系统默认读缓冲区就这么大,/proc/sys/net/core/rmem_default namespace Chromium { class CMessage { public: CMessage(); explicit CMessage(unsigned int length); explicit CMessage(CMessage* p); ~CMessage(); const char* getPayload() const; const unsigned int getLength(); char* getWriteableData(); unsigned 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); std::string printfHEX(int preNum = 0); //0即printAll void hexToFile(); private: int memoryDynamicGrowth(); public: enum { HEADER_LENGTH = 4 }; enum { SUGGEST_BUFFER_LENGTH = 1024 * 4 }; private: char* _data; unsigned int _buf_length; }; } #endif