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

IP电话/视频会议

开发平台:

Visual C++

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