diff options
Diffstat (limited to 'trunk/TAO/tao/AnyTypeCode/True_RefCount_Policy.inl')
-rw-r--r-- | trunk/TAO/tao/AnyTypeCode/True_RefCount_Policy.inl | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/trunk/TAO/tao/AnyTypeCode/True_RefCount_Policy.inl b/trunk/TAO/tao/AnyTypeCode/True_RefCount_Policy.inl new file mode 100644 index 00000000000..db9631237de --- /dev/null +++ b/trunk/TAO/tao/AnyTypeCode/True_RefCount_Policy.inl @@ -0,0 +1,28 @@ +// -*- C++ -*- +// +// $Id$ + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +ACE_INLINE +TAO::True_RefCount_Policy::True_RefCount_Policy (void) + : refcount_ (1) +{ +} + +ACE_INLINE void +TAO::True_RefCount_Policy::add_ref (void) +{ + ++this->refcount_; +} + +ACE_INLINE void +TAO::True_RefCount_Policy::remove_ref (void) +{ + const unsigned long new_count = --this->refcount_; + + if (new_count == 0) + delete this; +} + +TAO_END_VERSIONED_NAMESPACE_DECL |