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

IP电话/视频会议

开发平台:

Visual C++

  1. // Buffer.cpp: implementation of the CBuffer1 class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #include "stdafx.h"
  5. #include "Buffer.h"
  6. #include <memory.h>
  7. #ifdef _DEBUG
  8. #undef THIS_FILE
  9. static char THIS_FILE[]=__FILE__;
  10. #define new DEBUG_NEW
  11. #endif
  12. //////////////////////////////////////////////////////////////////////
  13. // Construction/Destruction
  14. //////////////////////////////////////////////////////////////////////
  15. CBuffer::CBuffer( )
  16. {
  17. this->buffer = NULL ;
  18. this->size = 0;
  19. }
  20. CBuffer::CBuffer( int s )
  21. {
  22. this->buffer = NULL ;
  23. this->Resize( s );
  24. }
  25. CBuffer::CBuffer( const char * buffer , int size )
  26. {
  27. this->buffer = NULL;
  28. this->Resize( size );
  29. memcpy( this->buffer , buffer , size );
  30. }
  31. const CBuffer & CBuffer::operator =( const CBuffer & b )
  32. {
  33. this->Resize( b.size );
  34. memcpy( this->buffer , b.buffer , b.size );
  35. return * this;
  36. }
  37. CBuffer::~CBuffer( )
  38. {  
  39. this->Release( );
  40. }
  41. void CBuffer::Resize( int size )
  42. {
  43. this->Release( );
  44. if( size > 0 )
  45. {
  46. this->size = size;
  47.         this->buffer = new char[ size ];
  48. }
  49. }
  50. void CBuffer::Release( void )
  51. {
  52. if( this->buffer )
  53. {
  54. try
  55. {
  56. delete [ ]this->buffer; this->buffer = NULL;
  57. }
  58. catch( ... )
  59. {
  60. }
  61. this->size = 0;
  62. }
  63. }