PModulePackage.cpp
上传用户:popouu88
上传日期:2013-02-11
资源大小:2894k
文件大小:1k
源码类别:

IP电话/视频会议

开发平台:

Visual C++

  1. // PModulePackage.cpp: implementation of the PModulePackage class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #include "PModulePackage.h"
  5. //////////////////////////////////////////////////////////////////////
  6. // Construction/Destruction
  7. //////////////////////////////////////////////////////////////////////
  8. PModulePackage::PModulePackage()
  9. {
  10. this->Tag = PModulePackageTAG;
  11. this->module = 0;
  12. this->module_buffer = NULL;
  13. this->module_size = 0;
  14. }
  15. PModulePackage::~PModulePackage()
  16. {
  17. }
  18. bool PModulePackage::assembleData( int module , char * buffer , int size )
  19. {
  20. this->buffer.Resize( 4 * INT_SIZE + size );
  21. char * now = this->buffer.GetBuffer( );
  22. *( int * )now = this->buffer.GetSize( ); now += INT_SIZE;
  23. *( int * )now = this->Tag; now += INT_SIZE;
  24. *( int * )now = module; now += INT_SIZE;
  25. *( int * )now = size; now += INT_SIZE;
  26. if( size && buffer )
  27. memcpy( now , buffer , size );
  28. return true;
  29. }
  30. bool PModulePackage::parseData( CBuffer & buffer )
  31. {
  32. if( ! buffer.GetSize( ) ) return false;
  33. char * now = buffer.GetBuffer( ) + 2 * INT_SIZE;
  34. this->module = *( int * )now; now += INT_SIZE;
  35. this->module_size = *( int * )now; now += INT_SIZE;
  36. this->module_buffer = ! this->module_size ? NULL : now;
  37. return true;
  38. }