ACE_Hashable Class Reference

ACE_Hashable. More...

#include <Hashable.h>

Inheritance diagram for ACE_Hashable:

Inheritance graph
List of all members.

Public Member Functions

virtual ~ACE_Hashable (void)

virtual unsigned long hash (void) const

Protected Member Functions

 ACE_Hashable (void)
 Protected constructor.

virtual unsigned long hash_i (void) const=0

Protected Attributes

unsigned long hash_value_
 Pre-computed hash-value.

Detailed Description


Definition at line 31 of file Hashable.h.

Constructor & Destructor Documentation

ACE_BEGIN_VERSIONED_NAMESPACE_DECL ACE_Hashable::~ACE_Hashable void   )  [virtual]


Definition at line 17 of file Hashable.cpp.

00018 {
00019 }

ACE_BEGIN_VERSIONED_NAMESPACE_DECL ACE_INLINE ACE_Hashable::ACE_Hashable void   )  [protected]

Protected constructor.

Definition at line 9 of file Hashable.inl.

00010   : hash_value_ (0)
00011 {
00012 }

Member Function Documentation

unsigned long ACE_Hashable::hash void   )  const [virtual]

Computes and returns hash value. This "caches" the hash value to improve performance.

Definition at line 22 of file Hashable.cpp.

References hash_i(), and hash_value_.

00023 {
00024   // In doing the check below, we take chance of paying a performance
00025   // price when the hash value is zero.  But, that will (hopefully)
00026   // happen far less often than a non-zero value, so this caching
00027   // strategy should pay off, esp. if hash computation is expensive
00028   // relative to the simple comparison.
00030   if (this->hash_value_ == 0)
00031     this->hash_value_ = this->hash_i ();
00033   return this->hash_value_;
00034 }

virtual unsigned long ACE_Hashable::hash_i void   )  const [protected, pure virtual]

This is the method that actually performs the non-cached hash computation.

Implemented in ACE_Refcounted_Hash_Recyclable< T >.

Referenced by hash().

Member Data Documentation

unsigned long ACE_Hashable::hash_value_ [mutable, protected]

Pre-computed hash-value.

Definition at line 53 of file Hashable.h.

Referenced by hash().

The documentation for this class was generated from the following files:
Generated on Thu Nov 9 11:23:23 2006 for ACE by doxygen 1.3.6