// $Id$ #include "ace/OS.h" #include "ace/ACE.h" #include "ace/Synch.h" #include "JAWS/Cache_Manager.h" #include "JAWS/Cache_List_T.h" JAWS_String_Hash_Functor::JAWS_String_Hash_Functor (const char *s) : i_ (0) { this->i_ = ACE::hash_pjw (s); } JAWS_String_Hash_Functor::operator unsigned long (void) const { return this->i_; } JAWS_String_Equal_Functor::JAWS_String_Equal_Functor (const char *s1, const char *s2) : i_ (0) { this->i_ = ACE_OS::strcmp (s1, s2); } JAWS_String_Equal_Functor::operator int (void) const { return this->i_ == 0; } JAWS_Strdup_String::JAWS_Strdup_String (void) : c_ (0), s_ (0) { } JAWS_Strdup_String::JAWS_Strdup_String (const char *s) : c_ (0), s_ (0) { this->c_ = new int (1); this->s_ = ACE_OS::strdup (s); } JAWS_Strdup_String::JAWS_Strdup_String (const JAWS_Strdup_String &s) : c_ (s.c_), s_ (s.s_) { ++*(this->c_); } JAWS_Strdup_String::~JAWS_Strdup_String (void) { if (this->c_ && --*(this->c_) == 0) { if (this->s_) ACE_OS::free (this->s_); delete this->c_; } this->s_ = 0; this->c_ = 0; } JAWS_Strdup_String::operator const char * (void) const { return this->s_; } void JAWS_Strdup_String::operator = (const char *s) { if (this->c_ && --*(this->c_) == 0) { if (this->s_) ACE_OS::free (this->s_); delete this->c_; } this->c_ = new int (1); this->s_ = ACE_OS::strdup (s); } void JAWS_Strdup_String::operator = (const JAWS_Strdup_String &s) { if (this->c_ && --*(this->c_) == 0) { if (this->s_) ACE_OS::free (this->s_); delete this->c_; } this->c_ = s.c_; this->s_ = s.s_; ++*(this->c_); } #if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) template class JAWS_Hash_Bucket_Item; template class JAWS_Hash_Bucket_DLCStack; template class JAWS_Hash_Bucket_DLCStack_Iterator; template class JAWS_Hash_Bucket_Manager; template class JAWS_Cache_Hash; template class JAWS_Cache_List_Item; template class JAWS_Cache_List; template class JAWS_Cache_Manager; template class JAWS_Cache_List_Item; template class JAWS_Cache_List; template class JAWS_Cache_Manager; template class ACE_Singleton; template class ACE_Singleton; template class ACE_Singleton; template class ACE_Singleton; #elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) #pragma instantiate JAWS_Hash_Bucket_Item #pragma instantiate JAWS_Hash_Bucket_DLCStack #pragma instantiate JAWS_Hash_Bucket_DLCStack_Iterator #pragma instantiate JAWS_Hash_Bucket_Manager #pragma instantiate JAWS_Cache_Hash #pragma instantiate JAWS_Cache_Heap_Item #pragma instantiate JAWS_Cache_Heap #pragma instantiate JAWS_Cache_Manager #pragma instantiate JAWS_Cache_Heap_Item #pragma instantiate JAWS_Cache_Heap #pragma instantiate JAWS_Cache_Manager #pragma instantiate ACE_Singleton #pragma instantiate ACE_Singleton #pragma instantiate ACE_Singleton #pragma instantiate ACE_Singleton #endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */