#include <Hashable.h>
Inheritance diagram for ACE_Hashable:
Public Member Functions | |
virtual | ~ACE_Hashable (void) |
Destructor. | |
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. |
Definition at line 31 of file Hashable.h.
|
Destructor.
Definition at line 17 of file Hashable.cpp.
00018 { 00019 } |
|
Protected constructor.
Definition at line 9 of file Hashable.inl.
00010 : hash_value_ (0) 00011 { 00012 } |
|
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. 00029 00030 if (this->hash_value_ == 0) 00031 this->hash_value_ = this->hash_i (); 00032 00033 return this->hash_value_; 00034 } |
|
This is the method that actually performs the non-cached hash computation. Implemented in ACE_Refcounted_Hash_Recyclable< T >. Referenced by hash(). |
|
Pre-computed hash-value.
Definition at line 53 of file Hashable.h. Referenced by hash(). |