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

IP电话/视频会议

开发平台:

Visual C++

  1. // PSendFileREQ.cpp: implementation of the PSendFileREQ class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #include "stdafx.h"
  5. #include "PSendFileREQ.h"
  6. #ifdef _DEBUG
  7. #undef THIS_FILE
  8. static char THIS_FILE[]=__FILE__;
  9. #define new DEBUG_NEW
  10. #endif
  11. //////////////////////////////////////////////////////////////////////
  12. // Construction/Destruction
  13. //////////////////////////////////////////////////////////////////////
  14. PSendFileREQ::PSendFileREQ()
  15. {
  16. this->Tag = PSendFileREQTAG;
  17. this->user_name = "";
  18. this->user_id = 0;
  19. this->filename = "";
  20. this->recv_id = 0;
  21. }
  22. PSendFileREQ::~PSendFileREQ()
  23. {
  24. }
  25. bool PSendFileREQ::assembleData( const char * user_name , int user_id , const char * filename , int recv_id )
  26. {
  27. this->buffer.Resize( sizeof( int ) + strlen( user_name ) + sizeof( char ) + sizeof( int ) + strlen( filename ) + sizeof( char ) + sizeof( int ) );
  28. char * now = buffer.GetBuffer( );
  29. *( int * )now = this->Tag; now += sizeof( int );
  30. strcpy( now , user_name ); now += strlen( user_name ) + sizeof( char );
  31. *( int * )now = user_id ; now += sizeof( int );
  32. strcpy( now , filename ); now += strlen( filename ) + sizeof( char );
  33. *( int * )now = recv_id;
  34. return true;
  35. }
  36. bool PSendFileREQ::parseData( char * buffer , int size )
  37. {
  38. if( *( int * )buffer != this->Tag )
  39. return false;
  40. buffer += sizeof( int );
  41. this->user_name = buffer; buffer += this->user_name.GetLength( ) + sizeof( char );
  42. this->user_id = *( int * )buffer; buffer += sizeof( int );
  43. this->filename = buffer; buffer += this->filename.GetLength( ) + sizeof( char );
  44. this->recv_id = *( int * )buffer;
  45. return true;
  46. }