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

IP电话/视频会议

开发平台:

Visual C++

  1. // POnlineUserRES.cpp: implementation of the POnlineUserRES class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #include "POnlineUserRES.h"
  5. //////////////////////////////////////////////////////////////////////
  6. // Construction/Destruction
  7. //////////////////////////////////////////////////////////////////////
  8. POnlineUserRES::POnlineUserRES()
  9. {
  10. this->Tag = POnlineUserRESTAG;
  11. this->user_id = 0;
  12. this->isCharement = false;
  13. this->user_name = "";
  14. this->data_name = "";
  15. this->isSpeeking = false;
  16. }
  17. POnlineUserRES::~POnlineUserRES()
  18. {
  19. }
  20. bool POnlineUserRES::assembleData( int id , const char * u_name , bool isCharement , const char * c_name , bool isSpeeking )
  21. {
  22. int size = 5 * INT_SIZE + 2 * CHAR_SIZE;
  23. if( u_name ) size += strlen( u_name );
  24. if( c_name ) size += strlen( c_name );
  25. this->buffer.Resize( size );
  26. char * now = this->buffer.GetBuffer( );
  27. *( int * )now = this->buffer.GetSize( ); now += INT_SIZE;
  28. *( int * )now = this->Tag; now += INT_SIZE;
  29. *( int * )now = id; now += INT_SIZE;
  30. *( int * )now = isCharement ; now += INT_SIZE;
  31. *( int * )now = isSpeeking ; now += INT_SIZE; 
  32. if( u_name )
  33. {
  34. strcpy( now , u_name ); now += strlen( u_name );
  35. }
  36. *( char * )now = ''; now += CHAR_SIZE;
  37. if( c_name )
  38. {
  39. strcpy( now , c_name ); now += strlen( c_name );
  40. }
  41. * ( char * )now = '';
  42. return true;
  43. }
  44. bool POnlineUserRES::parseData( CBuffer & buffer )
  45. {
  46. if( ! buffer.GetSize( ) ) return false;
  47. char * now = buffer.GetBuffer( ) + 2 * INT_SIZE;
  48. this->user_id = *( int * )now; now += INT_SIZE;
  49. this->isCharement = ( bool ) * ( int * )now; now += INT_SIZE;
  50. this->isSpeeking = ( bool ) * ( int * )now; now += INT_SIZE;
  51. this->user_name = now ; now += this->user_name.length( ) + CHAR_SIZE;
  52. this->data_name = now;
  53. return true;
  54. }