TAO::Refcounted_ObjectKey Class Reference

A wrapper class that ties together a refcount to an ObjectKey. More...

#include <Refcounted_ObjectKey.h>

Collaboration diagram for TAO::Refcounted_ObjectKey:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 Refcounted_ObjectKey (const ObjectKey &ref)
 Constructor.

const ObjectKeyobject_key (void) const
 Accessor for the underlying ObjectKey.


Protected Member Functions

 ~Refcounted_ObjectKey (void)
 Protected destructor.

void incr_refcount (void)
 Methods for incrementing refcount.

CORBA::ULong decr_refcount (void)

Private Attributes

ObjectKey object_key_
 The object key.

CORBA::ULong ref_count_
 The refcount on the object key..


Friends

class ObjectKey_Table

Detailed Description

A wrapper class that ties together a refcount to an ObjectKey.

The refcount in this class is manipulated within the context of the lock in the TAO::ObjectKey_Table. Manipulating the refcount from anywhere else is strictly forbidden.

Definition at line 40 of file Refcounted_ObjectKey.h.


Constructor & Destructor Documentation

TAO_BEGIN_VERSIONED_NAMESPACE_DECL TAO::Refcounted_ObjectKey::Refcounted_ObjectKey const ObjectKey ref  ) 
 

Constructor.

Definition at line 16 of file Refcounted_ObjectKey.cpp.

00017   : object_key_ (key)
00018   , ref_count_ (1)
00019 {
00020 }

TAO::Refcounted_ObjectKey::~Refcounted_ObjectKey void   )  [protected]
 

Protected destructor.

Definition at line 22 of file Refcounted_ObjectKey.cpp.

00023 {
00024 }


Member Function Documentation

CORBA::ULong TAO::Refcounted_ObjectKey::decr_refcount void   )  [protected]
 

Methods for decrementing refcount. Return the refcount, used by the ObjectKey table.

Definition at line 27 of file Refcounted_ObjectKey.cpp.

References ACE_ASSERT.

Referenced by TAO::ObjectKey_Table::bind_i(), TAO::ObjectKey_Table::unbind(), and TAO::ObjectKey_Table::unbind_i().

00028 {
00029   if (--this->ref_count_ > 0)
00030     {
00031       return this->ref_count_;
00032     }
00033 
00034   ACE_ASSERT (this->ref_count_ == 0);
00035 
00036   delete this;
00037 
00038   return 0;
00039 }

TAO_BEGIN_VERSIONED_NAMESPACE_DECL ACE_INLINE void TAO::Refcounted_ObjectKey::incr_refcount void   )  [protected]
 

Methods for incrementing refcount.

Definition at line 9 of file Refcounted_ObjectKey.inl.

Referenced by TAO::ObjectKey_Table::bind(), and TAO::ObjectKey_Table::bind_i().

00010 {
00011   ++this->ref_count_;
00012 }

ACE_INLINE const TAO::ObjectKey & TAO::Refcounted_ObjectKey::object_key void   )  const
 

Accessor for the underlying ObjectKey.

Definition at line 15 of file Refcounted_ObjectKey.inl.

Referenced by TAO_Profile::compare_key(), TAO_IIOP_Profile::create_profile_body(), TAO_IIOP_Profile::hash(), TAO_Profile::object_key(), TAO_IIOP_Profile::to_string(), and TAO::ObjectKey_Table::unbind_i().

00016 {
00017   return this->object_key_;
00018 }


Friends And Related Function Documentation

friend class ObjectKey_Table [friend]
 

Definition at line 50 of file Refcounted_ObjectKey.h.


Member Data Documentation

ObjectKey TAO::Refcounted_ObjectKey::object_key_ [private]
 

The object key.

Definition at line 64 of file Refcounted_ObjectKey.h.

CORBA::ULong TAO::Refcounted_ObjectKey::ref_count_ [private]
 

The refcount on the object key..

Definition at line 67 of file Refcounted_ObjectKey.h.


The documentation for this class was generated from the following files:
Generated on Thu Nov 9 12:26:45 2006 for TAO by doxygen 1.3.6