00001 00006 /*----------------------------------------------------------------------------*/ 00007 /* C Tool Box: Designed and implemented by: */ 00008 /* Walter F.J. Mueller Gesellschaft fuer Schwerionenforschung (GSI) */ 00009 /* Planckstrasse 1, D-64291 Darmstadt, Germany */ 00010 /* Email: W.F.J.Mueller@gsi.de */ 00011 /* WWW: http://www-kp3.gsi.de/www/kp3/people/mueller.html */ 00012 /*------------------------------------------+---------------------------------*/ 00013 00019 //------------------------------------------+----------------------------------- 00021 00022 inline CTBreferenceCounter::CTBreferenceCounter() 00023 : mi_count(1) 00024 {} 00025 00026 //------------------------------------------+----------------------------------- 00028 00029 inline void CTBreferenceCounter::Increment() 00030 { 00031 mi_count += 1; 00032 return; 00033 } 00034 00035 //------------------------------------------+----------------------------------- 00037 00038 inline bool CTBreferenceCounter::Decrement() 00039 { 00040 mi_count -= 1; 00041 return mi_count == 0; 00042 } 00043 00044 //------------------------------------------+----------------------------------- 00046 00047 inline bool CTBreferenceCounter::IsUnique() const 00048 { 00049 return mi_count == 1; 00050 } 00051 00052 //------------------------------------------+----------------------------------- 00054 00055 inline bool CTBreferenceCounter::IsShared() const 00056 { 00057 return mi_count > 1; 00058 } 00059 00060 //------------------------------------------+----------------------------------- 00062 00063 inline CTBreferenceCounter::operator CTBint() const 00064 { 00065 return mi_count; 00066 } 00067