home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 January: Mac OS SDK / Dev.CD Jan 97 SDK2.toast / Development Kits (Disc 2) / OpenDoc Development Framework / ODFDev / ODF / Found / FWRefCnt / FWMRefCt.cpp < prev    next >
Encoding:
Text File  |  1996-09-17  |  2.0 KB  |  71 lines  |  [TEXT/MPS ]

  1. //========================================================================================
  2. //
  3. //    File:                FWMRefCt.cpp
  4. //    Release Version:    $ ODF 2 $
  5. //
  6. //    Copyright:    (c) 1993 - 1996 by Apple Computer, Inc., all rights reserved.
  7. //
  8. //========================================================================================
  9.  
  10. #include "FWFound.hpp"
  11.  
  12. #ifndef FWMREFCT_H
  13. #include "FWMRefCt.h"
  14. #endif
  15.  
  16. #ifndef FWDEBUG_H
  17. #include "FWDebug.h"
  18. #endif
  19.  
  20. //========================================================================================
  21. // RunTime Info
  22. //========================================================================================
  23.  
  24. FW_DEFINE_CLASS_M0(FW_MRefCount)
  25.  
  26. //========================================================================================
  27. //    class FW_MRefCount
  28. //========================================================================================
  29.  
  30. //----------------------------------------------------------------------------------------
  31. //    FW_MRefCount::FW_MRefCount
  32. //----------------------------------------------------------------------------------------
  33.  
  34. FW_MRefCount::FW_MRefCount() :
  35.     fRefCount(1)
  36. {
  37. }
  38.  
  39. //----------------------------------------------------------------------------------------
  40. //    FW_MRefCount::~FW_MRefCount
  41. //----------------------------------------------------------------------------------------
  42.  
  43. FW_MRefCount::~FW_MRefCount()
  44. {
  45. }
  46.  
  47. //----------------------------------------------------------------------------------------
  48. //    FW_MRefCount::Acquire
  49. //----------------------------------------------------------------------------------------
  50.  
  51. long FW_MRefCount::Acquire()
  52. {
  53.     return ++fRefCount;
  54. }
  55.  
  56. //----------------------------------------------------------------------------------------
  57. //    FW_MRefCount::Release
  58. //----------------------------------------------------------------------------------------
  59.  
  60. long FW_MRefCount::Release()
  61. {
  62.     FW_ASSERT(fRefCount > 0);
  63.     
  64.     long result = --fRefCount;
  65.     
  66.     if (result == 0)
  67.         delete this;
  68.     
  69.     return result;
  70. }
  71.