chxbody.h
上传用户:zhongxx05
上传日期:2007-06-06
资源大小:33641k
文件大小:1k
源码类别:

Symbian

开发平台:

C/C++

  1. /************************************************************************
  2.  * chxbody.h
  3.  * ------------
  4.  *
  5.  * Synopsis:
  6.  * Simple ref counting class to derive from.
  7.  * 
  8.  * Target:
  9.  * Symbian OS
  10.  *
  11.  *
  12.  * (c) 1995-2003 RealNetworks, Inc. Patents pending. All rights reserved.
  13.  *
  14.  ************************************************************************/ 
  15. #ifndef _chxbody_h_
  16. #define _chxbody_h_
  17. typedef unsigned long CountType;
  18. class CHXBody {
  19. public:
  20.   CountType ref();
  21.   CountType unref();
  22.   CountType refcount() const;
  23.   static void ref(CHXBody*);
  24.   static void unref(CHXBody*);
  25. protected:
  26.   CHXBody();
  27.   ~CHXBody();
  28.   CHXBody(const CHXBody&);
  29.   CHXBody& operator=(const CHXBody&);
  30. private:
  31.   CountType refcount_;
  32. };
  33. inline
  34. CHXBody::CHXBody()
  35. : refcount_(0)
  36. {}
  37. inline
  38. CHXBody::CHXBody(const CHXBody&)
  39. : refcount_(0)
  40. {}
  41. inline
  42. CHXBody& CHXBody::operator=(const CHXBody&)
  43. {
  44.   return *this;
  45. }
  46. inline
  47. CHXBody::~CHXBody()
  48. {}
  49. inline
  50. CountType CHXBody::ref()
  51. {
  52.   return ++refcount_;
  53. }
  54. inline
  55. CountType CHXBody::unref()
  56. {
  57.   return --refcount_;
  58. }
  59. inline
  60. void CHXBody::unref(CHXBody* b)
  61. {
  62.   if (b) b->unref();
  63. }
  64. inline
  65. CountType CHXBody::refcount() const
  66. {
  67.   return refcount_;
  68. }
  69. #endif // _chxbody_h_