CMessage.h 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #ifndef CMessage__h
  2. #define CMessage__h
  3. #include <string>
  4. #include <iostream>
  5. #define MAX_TRANSFER_LEN (2*1024*1024) //系统默认读缓冲区就这么大,/proc/sys/net/core/rmem_default
  6. namespace Chromium {
  7. std::string UtfToGbk(const char* utf8);
  8. std::string ConvertGBKToUtf8(std::string &strGBK);
  9. class CMessage{
  10. public:
  11. CMessage();
  12. explicit CMessage(unsigned int length);
  13. explicit CMessage(CMessage *p);
  14. ~CMessage();
  15. const char* getPayload() const;
  16. const unsigned int getLength();
  17. char* getWriteableData();
  18. unsigned int getBufferLength();
  19. int getMessageType();
  20. int getSessionID();
  21. int getTransID();
  22. void exchangeSessionIdAndTransId();
  23. bool getIsEnd();
  24. int getEventID();
  25. int getSignatureID();
  26. unsigned int getCMessageLength();
  27. void clear();
  28. void setSessionID(int sessionid, bool hasTransId = true);
  29. void setTransID(int transid);
  30. std::string printfHEX(int preNum = 0); //0即printAll
  31. void hexToFile();
  32. private:
  33. int memoryDynamicGrowth();
  34. public:
  35. enum { HEADER_LENGTH = 4 };
  36. enum { SUGGEST_BUFFER_LENGTH = 1024 * 4 };
  37. private:
  38. char* _data;
  39. unsigned int _buf_length;
  40. };
  41. }
  42. #endif