CMessage.h 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  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. class CMessage {
  8. public:
  9. CMessage();
  10. explicit CMessage(unsigned int length);
  11. explicit CMessage(CMessage* p);
  12. ~CMessage();
  13. const char* getPayload() const;
  14. const unsigned int getLength();
  15. char* getWriteableData();
  16. unsigned int getBufferLength();
  17. int getMessageType();
  18. int getSessionID();
  19. int getTransID();
  20. void exchangeSessionIdAndTransId();
  21. bool getIsEnd();
  22. int getEventID();
  23. int getSignatureID();
  24. unsigned int getCMessageLength();
  25. void clear();
  26. void setSessionID(int sessionid, bool hasTransId = true);
  27. void setTransID(int transid);
  28. std::string printfHEX(int preNum = 0); //0即printAll
  29. void hexToFile();
  30. private:
  31. int memoryDynamicGrowth();
  32. public:
  33. enum { HEADER_LENGTH = 4 };
  34. enum { SUGGEST_BUFFER_LENGTH = 1024 * 4 };
  35. private:
  36. char* _data;
  37. unsigned int _buf_length;
  38. };
  39. }
  40. #endif