diff options
author | irfan <irfan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1999-06-25 00:24:49 +0000 |
---|---|---|
committer | irfan <irfan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1999-06-25 00:24:49 +0000 |
commit | 5b4b15f2f18fdd76fd22011bfa27b2f211e3119c (patch) | |
tree | ac23a7f1dab87302b7b51a64056d1bf7c4fa5055 | |
parent | fa55f6d7743f804d87c401fd91739b6111dfca50 (diff) | |
download | ATCD-5b4b15f2f18fdd76fd22011bfa27b2f211e3119c.tar.gz |
*** empty log message ***
-rw-r--r-- | README | 1 | ||||
-rw-r--r-- | TAO/tests/POA/Destruction/Destruction.dsp | 28 | ||||
-rw-r--r-- | ace/Cache_Map_Manager_T.h | 16 | ||||
-rw-r--r-- | ace/Cache_Map_Manager_T.i | 14 | ||||
-rw-r--r-- | ace/Caching_Strategies_T.cpp | 15 | ||||
-rw-r--r-- | ace/Caching_Strategies_T.h | 70 | ||||
-rw-r--r-- | ace/Caching_Strategies_T.i | 148 | ||||
-rw-r--r-- | ace/Caching_Strategy_Utility_T.cpp | 184 | ||||
-rw-r--r-- | ace/Caching_Strategy_Utility_T.h | 179 | ||||
-rw-r--r-- | ace/Caching_Utility_T.cpp | 183 | ||||
-rw-r--r-- | ace/Caching_Utility_T.h | 145 | ||||
-rw-r--r-- | ace/Caching_Utility_T.i (renamed from ace/Caching_Strategy_Utility_T.i) | 4 | ||||
-rw-r--r-- | tests/Cache_Map_Manager_Test.cpp | 889 | ||||
-rw-r--r-- | tests/tests.dsw | 152 |
14 files changed, 885 insertions, 1143 deletions
@@ -872,6 +872,7 @@ Sean Landis <seanl@rsch.comm.mot.com> Youzhong Liu <yoliu@cise.ufl.edu> John Weald <John.Weald@sylantro.com> Gilbert Roulot <gilbert.roulot@tts.thomson-csf.com> +Gildo Medeiros Junior <gildo@siemens.com.br> Brian Peterson <bpeterson@globalmt.com> I would particularly like to thank Paul Stephenson, who worked with me diff --git a/TAO/tests/POA/Destruction/Destruction.dsp b/TAO/tests/POA/Destruction/Destruction.dsp index e0940f002a3..91229796573 100644 --- a/TAO/tests/POA/Destruction/Destruction.dsp +++ b/TAO/tests/POA/Destruction/Destruction.dsp @@ -7,19 +7,19 @@ CFG=POA Destruction - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
-!MESSAGE
+!MESSAGE
!MESSAGE NMAKE /f "Destruction.mak".
-!MESSAGE
+!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
+!MESSAGE
!MESSAGE NMAKE /f "Destruction.mak" CFG="POA Destruction - Win32 Debug"
-!MESSAGE
+!MESSAGE
!MESSAGE Possible choices for configuration are:
-!MESSAGE
+!MESSAGE
!MESSAGE "POA Destruction - Win32 Release" (based on "Win32 (x86) Console Application")
!MESSAGE "POA Destruction - Win32 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE
+!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
@@ -49,7 +49,7 @@ BSC32=bscmake.exe # ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 ace.lib tao.lib /nologo /subsystem:console /machine:I386 /libpath:"..\..\..\tao" /libpath:"..\..\..\..\ace"
!ELSEIF "$(CFG)" == "POA Destruction - Win32 Debug"
@@ -65,18 +65,18 @@ LINK32=link.exe # PROP Intermediate_Dir "Debug"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\..\.." /I "..\..\.." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\..\.." /I "..\..\.." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
# ADD LINK32 aced.lib taod.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\tao" /libpath:"..\..\..\..\ace"
-!ENDIF
+!ENDIF
# Begin Target
@@ -119,7 +119,7 @@ SOURCE=.\test.idl !IF "$(CFG)" == "POA Destruction - Win32 Release"
-USERDEP__TEST_="..\..\..\..\bin\Release\tao_idl.exe"
+USERDEP__TEST_="..\..\..\..\bin\Release\tao_idl.exe"
# Begin Custom Build - Invoking TAO's IDL Compiler on $(InputPath)
InputPath=.\test.idl
InputName=test
@@ -154,7 +154,7 @@ BuildCmds= \ !ELSEIF "$(CFG)" == "POA Destruction - Win32 Debug"
-USERDEP__TEST_="..\..\..\..\bin\tao_idl.exe"
+USERDEP__TEST_="..\..\..\..\bin\tao_idl.exe"
# Begin Custom Build - Invoking TAO's IDL Compiler on $(InputPath)
InputPath=.\test.idl
InputName=test
@@ -187,7 +187,7 @@ BuildCmds= \ $(BuildCmds)
# End Custom Build
-!ENDIF
+!ENDIF
# End Source File
# End Group
diff --git a/ace/Cache_Map_Manager_T.h b/ace/Cache_Map_Manager_T.h index 6d1c29f52fd..5e22bc0271e 100644 --- a/ace/Cache_Map_Manager_T.h +++ b/ace/Cache_Map_Manager_T.h @@ -69,15 +69,15 @@ public: friend class ACE_Cache_Map_Reverse_Iterator<KEY, VALUE, REVERSE_ITERATOR_IMPLEMENTATION, CACHING_STRATEGY, ATTRIBUTES>; // = ACE-style iterator typedefs. - typedef ACE_Cache_Map_Iterator<KEY, VALUE, ITERATOR_IMPLEMENTATION, CACHING_STRATEGY, ATTRIBUTES> + typedef ACE_Cache_Map_Iterator<KEY, VALUE, ITERATOR_IMPLEMENTATION, CACHING_STRATEGY, ATTRIBUTES> ITERATOR; - typedef ACE_Cache_Map_Reverse_Iterator<KEY, VALUE, REVERSE_ITERATOR_IMPLEMENTATION, CACHING_STRATEGY, ATTRIBUTES> + typedef ACE_Cache_Map_Reverse_Iterator<KEY, VALUE, REVERSE_ITERATOR_IMPLEMENTATION, CACHING_STRATEGY, ATTRIBUTES> REVERSE_ITERATOR; // = STL-style iterator typedefs. - typedef ITERATOR + typedef ITERATOR iterator; - typedef REVERSE_ITERATOR + typedef REVERSE_ITERATOR reverse_iterator; // = Initialization and termination methods. @@ -187,7 +187,7 @@ public: MAP &map (void); // The map managed by the Cache_Map_Manager. - CACHING_STRATEGY *caching_strategy (void); + CACHING_STRATEGY &caching_strategy (void); // The caching strategy used on the cache. protected: @@ -216,9 +216,9 @@ class ACE_Cache_Map_Iterator public: // = Traits. - typedef ACE_Reference_Pair<KEY, VALUE> + typedef ACE_Reference_Pair<KEY, VALUE> value_type; - typedef ACE_Pair <VALUE, ATTRIBUTES> + typedef ACE_Pair <VALUE, ATTRIBUTES> CACHE_VALUE; // The actual value mapped to the key in the cache. The <attributes> // are used by the strategy and is transperant to the cache user. @@ -234,7 +234,7 @@ public: // = Iteration methods. - ACE_Cache_Map_Iterator <KEY, VALUE, IMPLEMENTATION, + ACE_Cache_Map_Iterator <KEY, VALUE, IMPLEMENTATION, CACHING_STRATEGY, ATTRIBUTES> &operator= (const ACE_Cache_Map_Iterator<KEY, VALUE, IMPLEMENTATION, CACHING_STRATEGY, ATTRIBUTES> &rhs); diff --git a/ace/Cache_Map_Manager_T.i b/ace/Cache_Map_Manager_T.i index 67fe9a3c19b..d40ae9dd448 100644 --- a/ace/Cache_Map_Manager_T.i +++ b/ace/Cache_Map_Manager_T.i @@ -7,7 +7,7 @@ template <T_1> ACE_INLINE int ACE_Cache_Map_Manager<T_2>::purge (void) { - return this->caching_strategy ()->clear_cache (this->map_); + return this->caching_strategy ().clear_cache (this->map_); } template <T_1> ACE_INLINE size_t @@ -28,10 +28,10 @@ ACE_Cache_Map_Manager<T_2>::map (void) return this->map_; } -template <T_1> ACE_INLINE CACHING_STRATEGY * +template <T_1> ACE_INLINE CACHING_STRATEGY & ACE_Cache_Map_Manager<T_2>::caching_strategy (void) { - return this->caching_strategy_; + return *this->caching_strategy_; } template <T_1> ACE_INLINE ACE_Cache_Map_Iterator<KEY, VALUE, ITERATOR_IMPL, CACHING_STRATEGY, ATTRIBUTES> @@ -92,13 +92,13 @@ ACE_Cache_Map_Iterator<T_2>::operator== (const ACE_Cache_Map_Iterator<T_2> &rhs) template <T_1> ACE_INLINE int ACE_Cache_Map_Iterator<T_2>::operator!= (const ACE_Cache_Map_Iterator<T_2> &rhs) const { - return this->iterator_implementation_ != rhs.iterator_implementation_; + return this->iterator_implementation_ != rhs.iterator_implementation_; } template <T_1> ACE_INLINE ACE_Reference_Pair<KEY, VALUE> ACE_Cache_Map_Iterator<T_2>::operator* (void) const { - value_type retn ((*this->iterator_implementation_).ext_id_, + value_type retn ((*this->iterator_implementation_).ext_id_, (*this->iterator_implementation_).int_id_.first ()); return retn; } @@ -151,7 +151,7 @@ ACE_Cache_Map_Iterator<T_2>::ACE_Cache_Map_Iterator (const IMPLEMENTATION &itera } template <T_1> ACE_INLINE IMPLEMENTATION & -ACE_Cache_Map_Iterator<T_2>::iterator_implementation (void) +ACE_Cache_Map_Iterator<T_2>::iterator_implementation (void) { return this->iterator_implementation_; } @@ -197,7 +197,7 @@ ACE_Cache_Map_Reverse_Iterator<T_2>::operator!= (const ACE_Cache_Map_Reverse_Ite template <T_1> ACE_INLINE ACE_Reference_Pair<KEY, VALUE> ACE_Cache_Map_Reverse_Iterator<T_2>::operator* (void) const { - value_type retv ((*this->reverse_iterator_implementation_).ext_id_, + value_type retv ((*this->reverse_iterator_implementation_).ext_id_, (*this->reverse_iterator_implementation_).int_id_.first ()); return retv; } diff --git a/ace/Caching_Strategies_T.cpp b/ace/Caching_Strategies_T.cpp index 99884316c9b..876d4c793a0 100644 --- a/ace/Caching_Strategies_T.cpp +++ b/ace/Caching_Strategies_T.cpp @@ -69,7 +69,7 @@ ACE_LRU_Caching_Strategy<KEY, VALUE, CONTAINER, ATTRIBUTES, CACHING_STRATEGY_UTI this->cleanup_strategy_ = 0; this->delete_cleanup_strategy_ = 0; } - + if (cleanup_s != 0) { this->cleanup_strategy_ = cleanup_s; @@ -95,7 +95,7 @@ ACE_LRU_Caching_Strategy<KEY, VALUE, CONTAINER, ATTRIBUTES, CACHING_STRATEGY_UTI this->caching_strategy_utility_ = 0; this->delete_caching_strategy_utility_ = 0; } - + if (utility_s != 0) { this->caching_strategy_utility_ = utility_s; @@ -118,8 +118,7 @@ ACE_LRU_Caching_Strategy<KEY, VALUE, CONTAINER, ATTRIBUTES, CACHING_STRATEGY_UTI { return this->caching_strategy_utility_->clear_cache (container, this->cleanup_strategy_, - this->purge_percent_, - this->entries_); + this->purge_percent_); } template<class KEY, class VALUE, class CONTAINER, class ATTRIBUTES, class CACHING_STRATEGY_UTILITY> int @@ -222,8 +221,7 @@ ACE_LFU_Caching_Strategy<KEY, VALUE, CONTAINER, ATTRIBUTES, CACHING_STRATEGY_UTI { return this->caching_strategy_utility_->clear_cache (container, this->cleanup_strategy_, - this->purge_percent_, - this->entries_); + this->purge_percent_); } template<class KEY, class VALUE, class CONTAINER, class ATTRIBUTES, class CACHING_STRATEGY_UTILITY> int @@ -326,8 +324,7 @@ ACE_FIFO_Caching_Strategy<KEY, VALUE, CONTAINER, ATTRIBUTES, CACHING_STRATEGY_UT { return this->caching_strategy_utility_->clear_cache (container, this->cleanup_strategy_, - this->purge_percent_, - this->entries_); + this->purge_percent_); } template<class KEY, class VALUE, class CONTAINER, class ATTRIBUTES, class CACHING_STRATEGY_UTILITY> int @@ -365,7 +362,7 @@ ACE_Null_Caching_Strategy<KEY, VALUE, CONTAINER, ATTRIBUTES, CACHING_STRATEGY_UT ACE_UNUSED_ARG (delete_cleanup_strategy); ACE_UNUSED_ARG (utility_s); ACE_UNUSED_ARG (delete_caching_strategy_utility); - + return 0; } diff --git a/ace/Caching_Strategies_T.h b/ace/Caching_Strategies_T.h index 3b219015e02..31dc5a26422 100644 --- a/ace/Caching_Strategies_T.h +++ b/ace/Caching_Strategies_T.h @@ -19,7 +19,7 @@ #include "ace/OS.h" -#include "ace/Caching_Strategy_Utility_T.h" +#include "ace/Caching_Utility_T.h" #if !defined (ACE_LACKS_PRAGMA_ONCE) #define ACE_LACKS_PRAGMA_ONCE @@ -39,7 +39,7 @@ class ACE_LRU_Caching_Strategy // is updated whenever an item is inserted or looked up in the // container. When the need of purging entries arises, the items // with the lowest timer values are removed. - // + // // Explanation of the template parameter list: // CONTAINER is any map with entries of type <KEY, VALUE>. // The ATTRIBUTES are the deciding factor for purging of entries @@ -47,14 +47,14 @@ class ACE_LRU_Caching_Strategy // doing this are: As being a member of the VALUE or VALUE being // ACE_Pair<x, ATTRIBUTES>. The CACHING_STRATEGY_UTILITY is the // class which can be plugged in and which decides the entries - // to purge. + // to purge. public: // Traits. typedef ATTRIBUTES CACHING_ATTRIBUTES; typedef CONTAINER CACHE; - + // = Initialisation and termination. ACE_LRU_Caching_Strategy (ACE_Cleanup_Strategy<KEY, VALUE, CONTAINER> *cleanup_s = 0, @@ -70,7 +70,7 @@ public: // in the cache which can be purged automagically and by default is // set to 10%. The ultility which helps the caching strategy in the // purging of entries needs to be specified. By default a new one - // will be created of type CACHING_STRATEGY_UTILITY and + // will be created of type CACHING_STRATEGY_UTILITY and // <delete_caching_strategy_utility> decides whether to destroy the // utility object or not. @@ -88,9 +88,9 @@ public: // Accessor method for the timer attributes. // = Accessor methods for the percentage of entries to purge. - unsigned int purge_percent (void); - - void purge_percent (unsigned int percentage); + double purge_percent (void); + + void purge_percent (double percentage); // = Strategy related Operations @@ -124,7 +124,7 @@ public: // This is the method which looks at each ITEM's attributes and // then decides on the one to remove. - int clear_cache (CONTAINER &container, + int clear_cache (CONTAINER &container, unsigned int &total_container_entries); // This is the method which looks at each ITEM's attributes and // then decides on the one to remove. The <total_container_entries> @@ -143,12 +143,12 @@ private: // This element is the one which is the deciding factor for purging // of an ITEM. - unsigned int purge_percent_; + double purge_percent_; // The level about which the purging will happen automagically. unsigned int entries_; // The no of entries bound in the cache. - + ACE_Cleanup_Strategy<KEY, VALUE, CONTAINER> *cleanup_strategy_; // The cleanup strategy which can be used to destroy the entries of // the container. @@ -160,7 +160,7 @@ private: CACHING_STRATEGY_UTILITY *caching_strategy_utility_; // This is the helper class which will decide and expunge entries // from the cache. - + int delete_caching_strategy_utility_; // The flag which denotes the ownership of the // caching_strategy_utility. If 1 then this class itself will @@ -190,7 +190,7 @@ class ACE_LFU_Caching_Strategy // doing this are: As being a member of the VALUE or VALUE being // ACE_Pair<x, ATTRIBUTES>. The CACHING_STRATEGY_UTILITY is the // class which can be plugged in and which decides the entries - // to purge. + // to purge. public: @@ -231,12 +231,12 @@ public: // Access the attributes. // = Accessor methods for the percentage of entries to purge. - unsigned int purge_percent (void); - - void purge_percent (unsigned int percentage); + double purge_percent (void); + + void purge_percent (double percentage); // = Strategy related Operations - + int notify_bind (int result, const ATTRIBUTES &attr); // This method acts as a notification about the CONTAINERs bind @@ -266,7 +266,7 @@ public: // This is the method which looks at each ITEM's attributes and // then decides on the one to remove. - int clear_cache (CONTAINER &container, + int clear_cache (CONTAINER &container, unsigned int &total_container_entries); // This is the method which looks at each ITEM's attributes and // then decides on the one to remove. The <total_container_entries> @@ -280,8 +280,8 @@ public: private: typedef ACE_Default_Cleanup_Strategy<KEY, VALUE, CONTAINER> CLEANUP_STRATEGY; - - unsigned int purge_percent_; + + double purge_percent_; // The level about which the purging will happen automagically. unsigned int entries_; @@ -325,7 +325,7 @@ class ACE_FIFO_Caching_Strategy // doing this are: As being a member of the VALUE or VALUE being // ACE_Pair<x, ATTRIBUTES>. The CACHING_STRATEGY_UTILITY is the // class which can be plugged in and which decides the entries - // to purge. + // to purge. public: @@ -349,8 +349,8 @@ public: // purging of entries will be default be the // ACE_Caching_Strategy_Utility and the // <delete_caching_strategy_utility> decides whether to destroy the - // utility or not. - + // utility or not. + ~ACE_FIFO_Caching_Strategy (void); int open (ACE_Cleanup_Strategy<KEY, VALUE, CONTAINER> *cleanup_s = 0, @@ -365,9 +365,9 @@ public: // Accessor method. // = Accessor methods for the percentage of entries to purge. - unsigned int purge_percent (void); - - void purge_percent (unsigned int percentage); + double purge_percent (void); + + void purge_percent (double percentage); // = Strategy related Operations @@ -398,7 +398,7 @@ public: // This is the method which looks at each ITEM's attributes and // then decides on the one to remove. - int clear_cache (CONTAINER &container, + int clear_cache (CONTAINER &container, unsigned int &total_container_entries); // This is the method which looks at each ITEM's attributes and // then decides on the one to remove. The <total_container_entries> @@ -412,17 +412,17 @@ public: private: typedef ACE_Default_Cleanup_Strategy<KEY, VALUE, CONTAINER> CLEANUP_STRATEGY; - + ATTRIBUTES order_; // The order is the deciding factor for the item to be removed from // the cache. - unsigned int purge_percent_; + double purge_percent_; // The level about which the purging will happen automagically. unsigned int entries_; // The no of entries bound in the cache. - + ACE_Cleanup_Strategy<KEY, VALUE, CONTAINER> *cleanup_strategy_; // The cleanup strategy which can be used to destroy the entries of // the container. @@ -481,9 +481,9 @@ public: // Accessor method. // = Accessor methods for the percentage of entries to purge. - unsigned int purge_percent (void); - - void purge_percent (unsigned int percentage); + double purge_percent (void); + + void purge_percent (double percentage); // = Strategy related Operations @@ -514,7 +514,7 @@ public: // This is the method which looks at each ITEM's attributes and // then decides on the one to remove. - int clear_cache (CONTAINER &container, + int clear_cache (CONTAINER &container, unsigned int &total_container_entries); // This is the method which looks at each ITEM's attributes and // then decides on the one to remove. The <total_container_entries> @@ -524,7 +524,7 @@ public: void dump (void) const; // Dumps the state of the object. - + }; #if defined (__ACE_INLINE__) diff --git a/ace/Caching_Strategies_T.i b/ace/Caching_Strategies_T.i index eacd2bfcf59..330386be754 100644 --- a/ace/Caching_Strategies_T.i +++ b/ace/Caching_Strategies_T.i @@ -5,37 +5,37 @@ template<class KEY, class VALUE, class CONTAINER, class ATTRIBUTES, class CACHIN ACE_LRU_Caching_Strategy<KEY, VALUE, CONTAINER, ATTRIBUTES, CACHING_STRATEGY_UTILITY>::attributes (void) { return this->timer_; -} +} -template<class KEY, class VALUE, class CONTAINER, class ATTRIBUTES, class CACHING_STRATEGY_UTILITY> ACE_INLINE unsigned int +template<class KEY, class VALUE, class CONTAINER, class ATTRIBUTES, class CACHING_STRATEGY_UTILITY> ACE_INLINE double ACE_LRU_Caching_Strategy<KEY, VALUE, CONTAINER, ATTRIBUTES, CACHING_STRATEGY_UTILITY>::purge_percent (void) { return this->purge_percent_; } template<class KEY, class VALUE, class CONTAINER, class ATTRIBUTES, class CACHING_STRATEGY_UTILITY> ACE_INLINE void -ACE_LRU_Caching_Strategy<KEY, VALUE, CONTAINER, ATTRIBUTES, CACHING_STRATEGY_UTILITY>::purge_percent (unsigned int percentage) +ACE_LRU_Caching_Strategy<KEY, VALUE, CONTAINER, ATTRIBUTES, CACHING_STRATEGY_UTILITY>::purge_percent (double percentage) { this->purge_percent_ = percentage; } -template<class KEY, class VALUE, class CONTAINER, class ATTRIBUTES, class CACHING_STRATEGY_UTILITY> ACE_INLINE int -ACE_LRU_Caching_Strategy<KEY, VALUE, CONTAINER, ATTRIBUTES, CACHING_STRATEGY_UTILITY>::notify_bind (int result, +template<class KEY, class VALUE, class CONTAINER, class ATTRIBUTES, class CACHING_STRATEGY_UTILITY> ACE_INLINE int +ACE_LRU_Caching_Strategy<KEY, VALUE, CONTAINER, ATTRIBUTES, CACHING_STRATEGY_UTILITY>::notify_bind (int result, const ATTRIBUTES &attr) { ACE_UNUSED_ARG (attr); - + if (result == 0) { ++this->timer_; ++this->entries_; } - + return result; } -template<class KEY, class VALUE, class CONTAINER, class ATTRIBUTES, class CACHING_STRATEGY_UTILITY> ACE_INLINE int -ACE_LRU_Caching_Strategy<KEY, VALUE, CONTAINER, ATTRIBUTES, CACHING_STRATEGY_UTILITY>::notify_find (int result, +template<class KEY, class VALUE, class CONTAINER, class ATTRIBUTES, class CACHING_STRATEGY_UTILITY> ACE_INLINE int +ACE_LRU_Caching_Strategy<KEY, VALUE, CONTAINER, ATTRIBUTES, CACHING_STRATEGY_UTILITY>::notify_find (int result, ATTRIBUTES &attr) { if (result == 0) @@ -47,29 +47,29 @@ ACE_LRU_Caching_Strategy<KEY, VALUE, CONTAINER, ATTRIBUTES, CACHING_STRATEGY_UTI return result; } -template<class KEY, class VALUE, class CONTAINER, class ATTRIBUTES, class CACHING_STRATEGY_UTILITY> ACE_INLINE int -ACE_LRU_Caching_Strategy<KEY, VALUE, CONTAINER, ATTRIBUTES, CACHING_STRATEGY_UTILITY>::notify_unbind (int result, +template<class KEY, class VALUE, class CONTAINER, class ATTRIBUTES, class CACHING_STRATEGY_UTILITY> ACE_INLINE int +ACE_LRU_Caching_Strategy<KEY, VALUE, CONTAINER, ATTRIBUTES, CACHING_STRATEGY_UTILITY>::notify_unbind (int result, const ATTRIBUTES &attr) { ACE_UNUSED_ARG (attr); return result; } -template<class KEY, class VALUE, class CONTAINER, class ATTRIBUTES, class CACHING_STRATEGY_UTILITY> ACE_INLINE int -ACE_LRU_Caching_Strategy<KEY, VALUE, CONTAINER, ATTRIBUTES, CACHING_STRATEGY_UTILITY>::notify_trybind (int result, +template<class KEY, class VALUE, class CONTAINER, class ATTRIBUTES, class CACHING_STRATEGY_UTILITY> ACE_INLINE int +ACE_LRU_Caching_Strategy<KEY, VALUE, CONTAINER, ATTRIBUTES, CACHING_STRATEGY_UTILITY>::notify_trybind (int result, ATTRIBUTES &attr) { ACE_UNUSED_ARG (attr); - + return result; } -template<class KEY, class VALUE, class CONTAINER, class ATTRIBUTES, class CACHING_STRATEGY_UTILITY> ACE_INLINE int -ACE_LRU_Caching_Strategy<KEY, VALUE, CONTAINER, ATTRIBUTES, CACHING_STRATEGY_UTILITY>::notify_rebind (int result, +template<class KEY, class VALUE, class CONTAINER, class ATTRIBUTES, class CACHING_STRATEGY_UTILITY> ACE_INLINE int +ACE_LRU_Caching_Strategy<KEY, VALUE, CONTAINER, ATTRIBUTES, CACHING_STRATEGY_UTILITY>::notify_rebind (int result, const ATTRIBUTES &attr) -{ +{ ACE_UNUSED_ARG (attr); - + if (result == 0) ++this->timer_; @@ -77,10 +77,10 @@ ACE_LRU_Caching_Strategy<KEY, VALUE, CONTAINER, ATTRIBUTES, CACHING_STRATEGY_UTI } template<class KEY, class VALUE, class CONTAINER, class ATTRIBUTES, class CACHING_STRATEGY_UTILITY> ACE_INLINE void -ACE_LRU_Caching_Strategy<KEY, VALUE, CONTAINER, ATTRIBUTES, CACHING_STRATEGY_UTILITY>::dump (void) const +ACE_LRU_Caching_Strategy<KEY, VALUE, CONTAINER, ATTRIBUTES, CACHING_STRATEGY_UTILITY>::dump (void) const { ACE_TRACE ("ACE_LRU_Caching_Strategy::dump"); - + ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); ACE_DEBUG ((LM_DEBUG, ASYS_TEXT ("timer_ = %d "), this->timer_)); ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); @@ -94,24 +94,24 @@ ACE_LFU_Caching_Strategy<KEY, VALUE, CONTAINER, ATTRIBUTES, CACHING_STRATEGY_UTI return 0; } -template<class KEY, class VALUE, class CONTAINER, class ATTRIBUTES, class CACHING_STRATEGY_UTILITY> ACE_INLINE unsigned int +template<class KEY, class VALUE, class CONTAINER, class ATTRIBUTES, class CACHING_STRATEGY_UTILITY> ACE_INLINE double ACE_LFU_Caching_Strategy<KEY, VALUE, CONTAINER, ATTRIBUTES, CACHING_STRATEGY_UTILITY>::purge_percent (void) { return this->purge_percent_; } template<class KEY, class VALUE, class CONTAINER, class ATTRIBUTES, class CACHING_STRATEGY_UTILITY> ACE_INLINE void -ACE_LFU_Caching_Strategy<KEY, VALUE, CONTAINER, ATTRIBUTES, CACHING_STRATEGY_UTILITY>::purge_percent (unsigned int percentage) +ACE_LFU_Caching_Strategy<KEY, VALUE, CONTAINER, ATTRIBUTES, CACHING_STRATEGY_UTILITY>::purge_percent (double percentage) { this->purge_percent_ = percentage; } -template<class KEY, class VALUE, class CONTAINER, class ATTRIBUTES, class CACHING_STRATEGY_UTILITY> ACE_INLINE int -ACE_LFU_Caching_Strategy<KEY, VALUE, CONTAINER, ATTRIBUTES, CACHING_STRATEGY_UTILITY>::notify_bind (int result, +template<class KEY, class VALUE, class CONTAINER, class ATTRIBUTES, class CACHING_STRATEGY_UTILITY> ACE_INLINE int +ACE_LFU_Caching_Strategy<KEY, VALUE, CONTAINER, ATTRIBUTES, CACHING_STRATEGY_UTILITY>::notify_bind (int result, const ATTRIBUTES &attr) { ACE_UNUSED_ARG (attr); - + if (result == 0) ++this->entries_; @@ -119,43 +119,43 @@ ACE_LFU_Caching_Strategy<KEY, VALUE, CONTAINER, ATTRIBUTES, CACHING_STRATEGY_UTI } template<class KEY, class VALUE, class CONTAINER, class ATTRIBUTES, class CACHING_STRATEGY_UTILITY> ACE_INLINE int -ACE_LFU_Caching_Strategy<KEY, VALUE, CONTAINER, ATTRIBUTES, CACHING_STRATEGY_UTILITY>::notify_find (int result, +ACE_LFU_Caching_Strategy<KEY, VALUE, CONTAINER, ATTRIBUTES, CACHING_STRATEGY_UTILITY>::notify_find (int result, ATTRIBUTES &attr) { ACE_UNUSED_ARG (attr); - + if (result == 0) ++attr; - return result; + return result; } -template<class KEY, class VALUE, class CONTAINER, class ATTRIBUTES, class CACHING_STRATEGY_UTILITY> ACE_INLINE int -ACE_LFU_Caching_Strategy<KEY, VALUE, CONTAINER, ATTRIBUTES, CACHING_STRATEGY_UTILITY>::notify_trybind (int result, +template<class KEY, class VALUE, class CONTAINER, class ATTRIBUTES, class CACHING_STRATEGY_UTILITY> ACE_INLINE int +ACE_LFU_Caching_Strategy<KEY, VALUE, CONTAINER, ATTRIBUTES, CACHING_STRATEGY_UTILITY>::notify_trybind (int result, ATTRIBUTES &attr) { ACE_UNUSED_ARG (attr); - + return result; } -template<class KEY, class VALUE, class CONTAINER, class ATTRIBUTES, class CACHING_STRATEGY_UTILITY> ACE_INLINE int -ACE_LFU_Caching_Strategy<KEY, VALUE, CONTAINER, ATTRIBUTES, CACHING_STRATEGY_UTILITY>::notify_rebind (int result, +template<class KEY, class VALUE, class CONTAINER, class ATTRIBUTES, class CACHING_STRATEGY_UTILITY> ACE_INLINE int +ACE_LFU_Caching_Strategy<KEY, VALUE, CONTAINER, ATTRIBUTES, CACHING_STRATEGY_UTILITY>::notify_rebind (int result, const ATTRIBUTES &attr) { ACE_UNUSED_ARG (attr); - + if (result == 0) ++this->entries_; return result; } -template<class KEY, class VALUE, class CONTAINER, class ATTRIBUTES, class CACHING_STRATEGY_UTILITY> ACE_INLINE int -ACE_LFU_Caching_Strategy<KEY, VALUE, CONTAINER, ATTRIBUTES, CACHING_STRATEGY_UTILITY>::notify_unbind (int result, +template<class KEY, class VALUE, class CONTAINER, class ATTRIBUTES, class CACHING_STRATEGY_UTILITY> ACE_INLINE int +ACE_LFU_Caching_Strategy<KEY, VALUE, CONTAINER, ATTRIBUTES, CACHING_STRATEGY_UTILITY>::notify_unbind (int result, const ATTRIBUTES &attr) { ACE_UNUSED_ARG (attr); - + return result; } @@ -163,7 +163,7 @@ template<class KEY, class VALUE, class CONTAINER, class ATTRIBUTES, class CACHIN ACE_LFU_Caching_Strategy<KEY, VALUE, CONTAINER, ATTRIBUTES, CACHING_STRATEGY_UTILITY>::dump (void) const { ACE_TRACE ("ACE_LFU_Caching_Strategy::dump"); - + ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); } @@ -175,24 +175,24 @@ ACE_FIFO_Caching_Strategy<KEY, VALUE, CONTAINER, ATTRIBUTES, CACHING_STRATEGY_UT { return this->order_; } -template<class KEY, class VALUE, class CONTAINER, class ATTRIBUTES, class CACHING_STRATEGY_UTILITY> ACE_INLINE unsigned int +template<class KEY, class VALUE, class CONTAINER, class ATTRIBUTES, class CACHING_STRATEGY_UTILITY> ACE_INLINE double ACE_FIFO_Caching_Strategy<KEY, VALUE, CONTAINER, ATTRIBUTES, CACHING_STRATEGY_UTILITY>::purge_percent (void) { return this->purge_percent_; } template<class KEY, class VALUE, class CONTAINER, class ATTRIBUTES, class CACHING_STRATEGY_UTILITY> ACE_INLINE void -ACE_FIFO_Caching_Strategy<KEY, VALUE, CONTAINER, ATTRIBUTES, CACHING_STRATEGY_UTILITY>::purge_percent (unsigned int percentage) +ACE_FIFO_Caching_Strategy<KEY, VALUE, CONTAINER, ATTRIBUTES, CACHING_STRATEGY_UTILITY>::purge_percent (double percentage) { this->purge_percent_ = percentage; } template<class KEY, class VALUE, class CONTAINER, class ATTRIBUTES, class CACHING_STRATEGY_UTILITY> ACE_INLINE int -ACE_FIFO_Caching_Strategy<KEY, VALUE, CONTAINER, ATTRIBUTES, CACHING_STRATEGY_UTILITY>::notify_bind (int result, +ACE_FIFO_Caching_Strategy<KEY, VALUE, CONTAINER, ATTRIBUTES, CACHING_STRATEGY_UTILITY>::notify_bind (int result, const ATTRIBUTES &attr) { ACE_UNUSED_ARG (attr); - + if (result == 0) { ++this->order_; @@ -203,39 +203,39 @@ ACE_FIFO_Caching_Strategy<KEY, VALUE, CONTAINER, ATTRIBUTES, CACHING_STRATEGY_UT } -template<class KEY, class VALUE, class CONTAINER, class ATTRIBUTES, class CACHING_STRATEGY_UTILITY> ACE_INLINE int -ACE_FIFO_Caching_Strategy<KEY, VALUE, CONTAINER, ATTRIBUTES, CACHING_STRATEGY_UTILITY>::notify_find (int result, +template<class KEY, class VALUE, class CONTAINER, class ATTRIBUTES, class CACHING_STRATEGY_UTILITY> ACE_INLINE int +ACE_FIFO_Caching_Strategy<KEY, VALUE, CONTAINER, ATTRIBUTES, CACHING_STRATEGY_UTILITY>::notify_find (int result, ATTRIBUTES &attr) { ACE_UNUSED_ARG (attr); - + return result; } -template<class KEY, class VALUE, class CONTAINER, class ATTRIBUTES, class CACHING_STRATEGY_UTILITY> ACE_INLINE int -ACE_FIFO_Caching_Strategy<KEY, VALUE, CONTAINER, ATTRIBUTES, CACHING_STRATEGY_UTILITY>::notify_unbind (int result, +template<class KEY, class VALUE, class CONTAINER, class ATTRIBUTES, class CACHING_STRATEGY_UTILITY> ACE_INLINE int +ACE_FIFO_Caching_Strategy<KEY, VALUE, CONTAINER, ATTRIBUTES, CACHING_STRATEGY_UTILITY>::notify_unbind (int result, const ATTRIBUTES &attr) { ACE_UNUSED_ARG (attr); - + return result; } -template<class KEY, class VALUE, class CONTAINER, class ATTRIBUTES, class CACHING_STRATEGY_UTILITY> ACE_INLINE int -ACE_FIFO_Caching_Strategy<KEY, VALUE, CONTAINER, ATTRIBUTES, CACHING_STRATEGY_UTILITY>::notify_trybind (int result, +template<class KEY, class VALUE, class CONTAINER, class ATTRIBUTES, class CACHING_STRATEGY_UTILITY> ACE_INLINE int +ACE_FIFO_Caching_Strategy<KEY, VALUE, CONTAINER, ATTRIBUTES, CACHING_STRATEGY_UTILITY>::notify_trybind (int result, ATTRIBUTES &attr) { ACE_UNUSED_ARG (attr); - + return result; } template<class KEY, class VALUE, class CONTAINER, class ATTRIBUTES, class CACHING_STRATEGY_UTILITY> ACE_INLINE int -ACE_FIFO_Caching_Strategy<KEY, VALUE, CONTAINER, ATTRIBUTES, CACHING_STRATEGY_UTILITY>::notify_rebind (int result, - const ATTRIBUTES &attr) +ACE_FIFO_Caching_Strategy<KEY, VALUE, CONTAINER, ATTRIBUTES, CACHING_STRATEGY_UTILITY>::notify_rebind (int result, + const ATTRIBUTES &attr) { ACE_UNUSED_ARG (attr); - + if (result == 0) { ++this->order_; @@ -243,14 +243,14 @@ ACE_FIFO_Caching_Strategy<KEY, VALUE, CONTAINER, ATTRIBUTES, CACHING_STRATEGY_UT } return result; -} +} template<class KEY, class VALUE, class CONTAINER, class ATTRIBUTES, class CACHING_STRATEGY_UTILITY> ACE_INLINE void ACE_FIFO_Caching_Strategy<KEY, VALUE, CONTAINER, ATTRIBUTES, CACHING_STRATEGY_UTILITY>::dump (void) const { ACE_TRACE ("ACE_FIFO_Caching_Strategy::dump"); - + ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); ACE_DEBUG ((LM_DEBUG, ASYS_TEXT ("order_ = %d "), this->order_)); ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); @@ -264,68 +264,68 @@ ACE_Null_Caching_Strategy<KEY, VALUE, CONTAINER, ATTRIBUTES, CACHING_STRATEGY_UT return 0; } -template<class KEY, class VALUE, class CONTAINER, class ATTRIBUTES, class CACHING_STRATEGY_UTILITY> ACE_INLINE unsigned int +template<class KEY, class VALUE, class CONTAINER, class ATTRIBUTES, class CACHING_STRATEGY_UTILITY> ACE_INLINE double ACE_Null_Caching_Strategy<KEY, VALUE, CONTAINER, ATTRIBUTES, CACHING_STRATEGY_UTILITY>::purge_percent (void) { return 0; } template<class KEY, class VALUE, class CONTAINER, class ATTRIBUTES, class CACHING_STRATEGY_UTILITY> ACE_INLINE void -ACE_Null_Caching_Strategy<KEY, VALUE, CONTAINER, ATTRIBUTES, CACHING_STRATEGY_UTILITY>::purge_percent (unsigned int percentage) +ACE_Null_Caching_Strategy<KEY, VALUE, CONTAINER, ATTRIBUTES, CACHING_STRATEGY_UTILITY>::purge_percent (double percentage) { ACE_UNUSED_ARG (percentage); } template<class KEY, class VALUE, class CONTAINER, class ATTRIBUTES, class CACHING_STRATEGY_UTILITY> ACE_INLINE int -ACE_Null_Caching_Strategy<KEY, VALUE, CONTAINER, ATTRIBUTES, CACHING_STRATEGY_UTILITY>::notify_bind (int result, +ACE_Null_Caching_Strategy<KEY, VALUE, CONTAINER, ATTRIBUTES, CACHING_STRATEGY_UTILITY>::notify_bind (int result, const ATTRIBUTES &attr) { ACE_UNUSED_ARG (attr); - + return result; } -template<class KEY, class VALUE, class CONTAINER, class ATTRIBUTES, class CACHING_STRATEGY_UTILITY> ACE_INLINE int -ACE_Null_Caching_Strategy<KEY, VALUE, CONTAINER, ATTRIBUTES, CACHING_STRATEGY_UTILITY>::notify_find (int result, +template<class KEY, class VALUE, class CONTAINER, class ATTRIBUTES, class CACHING_STRATEGY_UTILITY> ACE_INLINE int +ACE_Null_Caching_Strategy<KEY, VALUE, CONTAINER, ATTRIBUTES, CACHING_STRATEGY_UTILITY>::notify_find (int result, ATTRIBUTES &attr) { ACE_UNUSED_ARG (attr); - + return result; } -template<class KEY, class VALUE, class CONTAINER, class ATTRIBUTES, class CACHING_STRATEGY_UTILITY> ACE_INLINE int -ACE_Null_Caching_Strategy<KEY, VALUE, CONTAINER, ATTRIBUTES, CACHING_STRATEGY_UTILITY>::notify_unbind (int result, +template<class KEY, class VALUE, class CONTAINER, class ATTRIBUTES, class CACHING_STRATEGY_UTILITY> ACE_INLINE int +ACE_Null_Caching_Strategy<KEY, VALUE, CONTAINER, ATTRIBUTES, CACHING_STRATEGY_UTILITY>::notify_unbind (int result, const ATTRIBUTES &attr) { ACE_UNUSED_ARG (attr); - + return result; } -template<class KEY, class VALUE, class CONTAINER, class ATTRIBUTES, class CACHING_STRATEGY_UTILITY> ACE_INLINE int -ACE_Null_Caching_Strategy<KEY, VALUE, CONTAINER, ATTRIBUTES, CACHING_STRATEGY_UTILITY>::notify_trybind (int result, +template<class KEY, class VALUE, class CONTAINER, class ATTRIBUTES, class CACHING_STRATEGY_UTILITY> ACE_INLINE int +ACE_Null_Caching_Strategy<KEY, VALUE, CONTAINER, ATTRIBUTES, CACHING_STRATEGY_UTILITY>::notify_trybind (int result, ATTRIBUTES &attr) { ACE_UNUSED_ARG (attr); - + return result; } template<class KEY, class VALUE, class CONTAINER, class ATTRIBUTES, class CACHING_STRATEGY_UTILITY> ACE_INLINE int -ACE_Null_Caching_Strategy<KEY, VALUE, CONTAINER, ATTRIBUTES, CACHING_STRATEGY_UTILITY>::notify_rebind (int result, - const ATTRIBUTES &attr) +ACE_Null_Caching_Strategy<KEY, VALUE, CONTAINER, ATTRIBUTES, CACHING_STRATEGY_UTILITY>::notify_rebind (int result, + const ATTRIBUTES &attr) { ACE_UNUSED_ARG (attr); - + return result; -} +} template<class KEY, class VALUE, class CONTAINER, class ATTRIBUTES, class CACHING_STRATEGY_UTILITY> ACE_INLINE void ACE_Null_Caching_Strategy<KEY, VALUE, CONTAINER, ATTRIBUTES, CACHING_STRATEGY_UTILITY>::dump (void) const { ACE_TRACE ("ACE_Null_Caching_Strategy::dump"); - + ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); } diff --git a/ace/Caching_Strategy_Utility_T.cpp b/ace/Caching_Strategy_Utility_T.cpp deleted file mode 100644 index 8ebea0f13b1..00000000000 --- a/ace/Caching_Strategy_Utility_T.cpp +++ /dev/null @@ -1,184 +0,0 @@ -//$Id$ - -#ifndef CACHING_STRATEGY_UTILITY_T_C -#define CACHING_STRATEGY_UTILITY_T_C - -#include "ace/Caching_Strategy_Utility_T.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -#define ACE_LACKS_PRAGMA_ONCE -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "ace/Cleanup_Strategies_T.h" - -#if !defined (__ACE_INLINE__) -#include "ace/Caching_Strategy_Utility_T.i" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(ace, Caching_Strategy_Utility_T, "$Id$") - -template <class KEY, class VALUE, class CONTAINER, class ATTRIBUTES> -ACE_Caching_Strategy_Utility<KEY, VALUE, CONTAINER, ATTRIBUTES>::~ACE_Caching_Strategy_Utility (void) -{ -} - -///////////////////////////////////////////////////////////////////////////////////////////////////// - -template <class KEY, class VALUE, class CONTAINER, class ITERATOR, class ATTRIBUTES> int -ACE_Svc_Caching_Strategy_Utility<KEY, VALUE, CONTAINER, ITERATOR, ATTRIBUTES>::clear_cache (CONTAINER &container, - ACE_Cleanup_Strategy<KEY, VALUE, CONTAINER> *cleanup_s, - const unsigned int purge_percent, - unsigned int &entries) -{ - // Check that the purge_percent is non-zero. - if (purge_percent == 0) - return 0; - - // Also whether the number of entries in the cache is just one! - // Oops! then thers no way out but exiting. So return an error. - if (entries == 1) - return -1; - - // Calculate the no of entries to remove from the cache depending - // upon the <purge_percent>. - double val = (double) purge_percent / 100; - int no_of_entries = (int) (val * entries + 0.5); - - KEY *key_to_remove = 0; - VALUE *value_to_remove = 0; - - for (int i = 0; i < no_of_entries ; ++i) - { - this->minimum (container, - key_to_remove, - value_to_remove); - - if (cleanup_s->cleanup (container, key_to_remove, value_to_remove) == -1) - return -1; - - --entries; - - } - - return 0; -} - -template <class KEY, class VALUE, class CONTAINER, class ITERATOR, class ATTRIBUTES> void -ACE_Svc_Caching_Strategy_Utility<KEY, VALUE, CONTAINER, ITERATOR, ATTRIBUTES>::minimum (CONTAINER &container, - KEY *&key, - VALUE *&value) -{ - ITERATOR iter (container); - ATTRIBUTES min = 0; - - ITERATOR end = container.end (); - // The iterator moves thru the container searching for the entry with the - // lowest ATTRIBUTES. - for (min = (*iter).int_id_.second (), key = &(*iter).ext_id_, value = &(*iter).int_id_; - iter != end; - ++iter) - { - // Ah! an item with lower ATTTRIBUTES... - if (min > (*iter).int_id_.second ()) - { - min = (*iter).int_id_.second (); - key = &(*iter).ext_id_; - value = &(*iter).int_id_; - - } - } -} - -//////////////////////////////////////////////////////////////////////////////////////////////////////// - -template <class KEY, class VALUE, class CONTAINER, class ITERATOR, class ATTRIBUTES> int -ACE_Handler_Caching_Strategy_Utility<KEY, VALUE, CONTAINER, ITERATOR, ATTRIBUTES>::clear_cache (CONTAINER &container, - ACE_Cleanup_Strategy<KEY, VALUE, CONTAINER> *cleanup_s, - const unsigned int purge_percent, - unsigned int &entries) -{ - // Check that the purge_percent is non-zero. - if (purge_percent == 0) - return 0; - - // Also whether the number of entries in the cache is just one! - // Oops! then thers no way out but exiting. So return an error. - if (entries == 1) - return -1; - - // Calculate the no of entries to remove from the cache depending - // upon the <purge_percent>. - double val = (double) purge_percent / 100; - int no_of_entries = (int) (val * entries + 0.5); - - KEY *key_to_remove = 0; - VALUE *value_to_remove = 0; - - for (int i = 0; i < no_of_entries ; ++i) - { - this->minimum (container, - key_to_remove, - value_to_remove); - - if (cleanup_s->cleanup (container, key_to_remove, value_to_remove) == -1) - return -1; - - --entries; - } - - return 0; -} - -template <class KEY, class VALUE, class CONTAINER, class ITERATOR, class ATTRIBUTES> void -ACE_Handler_Caching_Strategy_Utility<KEY, VALUE, CONTAINER, ITERATOR, ATTRIBUTES>::minimum (CONTAINER &container, - KEY *&key, - VALUE *&value) -{ - ITERATOR iter (container); - ATTRIBUTES min = 0; - - ITERATOR end = container.end (); - for (min = (*iter).int_id_->caching_attributes (), key = &(*iter).ext_id_, value = &(*iter).int_id_; - iter != end; - ++iter) - { - // Ah! an item with lower ATTTRIBUTES... - if ((min.attributes () > (*iter).int_id_->caching_attributes ().attributes ()) && ((*iter).int_id_->active () != 1)) - { - min = (*iter).int_id_->caching_attributes (); - - key = &(*iter).ext_id_; - - value = &(*iter).int_id_; - } - } - -} - -//////////////////////////////////////////////////////////////////////////////////////////////////////// - -template <class KEY, class VALUE, class CONTAINER, class ITERATOR, class ATTRIBUTES> int -ACE_Null_Caching_Strategy_Utility<KEY, VALUE, CONTAINER, ITERATOR, ATTRIBUTES>::clear_cache (CONTAINER &container, - ACE_Cleanup_Strategy<KEY, VALUE, CONTAINER> *cleanup_s, - const unsigned int purge_percent, - unsigned int &entries) -{ - ACE_UNUSED_ARG (container); - ACE_UNUSED_ARG (cleanup_s); - ACE_UNUSED_ARG (purge_percent); - ACE_UNUSED_ARG (entries); - - return 0; -} - -template <class KEY, class VALUE, class CONTAINER, class ITERATOR, class ATTRIBUTES> void -ACE_Null_Caching_Strategy_Utility<KEY, VALUE, CONTAINER, ITERATOR, ATTRIBUTES>::minimum (CONTAINER &container, - KEY *&key, - VALUE *&value) -{ - ACE_UNUSED_ARG (container); - ACE_UNUSED_ARG (key); - ACE_UNUSED_ARG (value); -} - -#endif /* CACHING_STRATEGY_UTILITY_T_C */ diff --git a/ace/Caching_Strategy_Utility_T.h b/ace/Caching_Strategy_Utility_T.h deleted file mode 100644 index 77347d085da..00000000000 --- a/ace/Caching_Strategy_Utility_T.h +++ /dev/null @@ -1,179 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// ace -// -// = FILENAME -// Caching_Strategy_Utility_T.h -// -// = AUTHOR -// Kirthika Parameswaran <kirthika@cs.wustl.edu> -// -// ============================================================================ - -#ifndef CACHING_STRATEGY_UTILITY_H -#define CACHING_STRATEGY_UTILITY_H - -#include "ace/OS.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -#define ACE_LACKS_PRAGMA_ONCE -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -// Forward declaration -template <class KEY, class VALUE, class CONTAINER> -class ACE_Cleanup_Strategy; -template <class KEY, class VALUE, class CONTAINER, class ATTRIBUTES> -class ACE_Caching_Strategy_Utility -{ - // = TITLE - // Defines a abstract helper class for the Caching Strategies. - // - // = DESCRIPTION - // This class defines the methods commonly used by the - // different caching strategies. For instance: clear_cache () - // method which decides and purges the entry from the container. - - public: - - virtual ~ACE_Caching_Strategy_Utility (void); - // Destructor. - - virtual int clear_cache (CONTAINER &container, - ACE_Cleanup_Strategy<KEY, VALUE, CONTAINER> *cleanup_s, - const unsigned int purge_percent, - unsigned int &entries) = 0; - // This method will remove the entries from the cache. - - virtual void minimum (CONTAINER &container, - KEY *&key, - VALUE *&value) = 0; - // Find the entry with minimum caching attributes. - -}; - - -//////////////////////////////////////////////////////////////////////////////////// - -template <class KEY, class VALUE, class CONTAINER, class ITERATOR, class ATTRIBUTES> -class ACE_Svc_Caching_Strategy_Utility : public ACE_Caching_Strategy_Utility<KEY, VALUE, CONTAINER, ATTRIBUTES> -{ - // = TITLE - // Defines a helper class for the Caching Strategies. - // - // = DESCRIPTION - // This class defines the methods commonly used by the - // different caching strategies. For instance: clear_cache () - // method which decides and purges the entry from the container. - // Note: This class helps in the caching_strategies using a - // container containing entries of <KEY, ACE_Pair<VALUE, - // attributes>> kind. The attributes helps in deciding the - // entries to be purged. - - public: - - virtual int clear_cache (CONTAINER &container, - ACE_Cleanup_Strategy<KEY, VALUE, CONTAINER> *cleanup_s, - const unsigned int purge_percent, - unsigned int &entries); - // Purge entries from the <container>. The Cleanup_Strategy will do - // the actual job of cleanup once the entries to be cleaned up are - // decided. - - virtual void minimum (CONTAINER &container, - KEY *&key, - VALUE *&value); - // Find the entry with minimum caching attributes. - -}; - - -//////////////////////////////////////////////////////////////////////////////////////// - -template <class KEY, class VALUE, class CONTAINER, class ITERATOR, class ATTRIBUTES> -class ACE_Handler_Caching_Strategy_Utility : public ACE_Caching_Strategy_Utility <KEY, VALUE, CONTAINER, ATTRIBUTES> -{ - // = TITLE - // Defines a helper class for the Caching Strategies. - // - // = DESCRIPTION - // This class defines the methods commonly used by the - // different caching strategies. For instance: clear_cache () - // method which decides and purges the entry from the container. - // Note: This class helps in the caching_strategies using a - // container containing entries of <KEY, HANDLER> kind where the - // HANDLER contains the caching attributes which help in deciding - // the entries to be purged. - -public: - - virtual int clear_cache (CONTAINER &container, - ACE_Cleanup_Strategy<KEY, VALUE, CONTAINER> *cleanup_s, - const unsigned int purge_percent, - unsigned int &entries); - // Purge entries from the <container>. The Cleanup_Strategy will do - // the actual job of cleanup once the entries to be cleaned up are - // decided. - - virtual void minimum (CONTAINER &container, - KEY *&key, - VALUE *&value); - // Find the entry with minimum caching attributes. - // This is handler specific since this utility is to be used very - // specifically for handler who have caching_attributes for server - // side acched connection management. - -}; - -/////////////////////////////////////////////////////////////////////////// - -template <class KEY, class VALUE, class CONTAINER, class ITERATOR, class ATTRIBUTES> -class ACE_Null_Caching_Strategy_Utility : public ACE_Caching_Strategy_Utility <KEY, VALUE, CONTAINER, ATTRIBUTES> -{ - // = TITLE - // Defines a dummy helper class for the Caching Strategies. - // - // = DESCRIPTION - // This class defines the methods commonly used by the - // different caching strategies. For instance: clear_cache () - // method which decides and purges the entry from the container. - // Note: This class is be used with the Null_Caching_Strategy. - -public: - - virtual int clear_cache (CONTAINER &container, - ACE_Cleanup_Strategy<KEY, VALUE, CONTAINER> *cleanup_s, - const unsigned int purge_percent, - unsigned int &entries); - // Purge entries from the <container>. The Cleanup_Strategy will do - // the actual job of cleanup once the entries to be cleaned up are - // decided. NOte: Here it is a no-op. - - virtual void minimum (CONTAINER &container, - KEY *&key, - VALUE *&value); - // Find the entry with minimum caching attributes. - // This is handler specific since this utility is to be used very - // specifically for handler who have caching_attributes for server - // side acched connection management.Note: Here it is a no-op. - -}; - -/////////////////////////////////////////////////////////////////////////// - -#if defined (__ACE_INLINE__) -#include "ace/Caching_Strategy_Utility_T.i" -#endif /* __ACE_INLINE__ */ - -#if defined (ACE_TEMPLATES_REQUIRE_SOURCE) -#include "ace/Caching_Strategy_Utility_T.cpp" -#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ - -#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) -#pragma implementation ("ace/Caching_Strategy_Utility_T.cpp") -#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */ - -#endif /* CACHING_STRATEGY_UTILITY_H */ diff --git a/ace/Caching_Utility_T.cpp b/ace/Caching_Utility_T.cpp new file mode 100644 index 00000000000..7fd761b12a8 --- /dev/null +++ b/ace/Caching_Utility_T.cpp @@ -0,0 +1,183 @@ +//$Id$ + +#ifndef CACHING_UTILITY_T_C +#define CACHING_UTILITY_T_C + +#include "ace/Caching_Utility_T.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +#define ACE_LACKS_PRAGMA_ONCE +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "ace/Cleanup_Strategies_T.h" + +#if !defined (__ACE_INLINE__) +#include "ace/Caching_Utility_T.i" +#endif /* __ACE_INLINE__ */ + +ACE_RCSID(ace, Caching_Utility_T, "$Id$") + +///////////////////////////////////////////////////////////////////////////////////////////////////// + +template <class KEY, class VALUE, class CONTAINER, class ITERATOR, class ATTRIBUTES> int +ACE_Pair_Caching_Utility<KEY, VALUE, CONTAINER, ITERATOR, ATTRIBUTES>::clear_cache (CONTAINER &container, + ACE_Cleanup_Strategy<KEY, VALUE, CONTAINER> *cleanup_s, + double purge_percent) +{ + // Check that the purge_percent is non-zero. + if (purge_percent == 0) + return 0; + + // Get the number of entries in the container. + size_t current_map_size = container.current_size (); + + // Also whether the number of entries in the cache is just one! + // Oops! then there is no way out but exiting. So return an error. + if (current_map_size <= 1) + return 0; + + // Calculate the no of entries to remove from the cache depending + // upon the <purge_percent>. + size_t entries_to_remove = (purge_percent / 100 * current_map_size) + 0.5; + + KEY *key_to_remove = 0; + VALUE *value_to_remove = 0; + + for (size_t i = 0; i < entries_to_remove ; ++i) + { + this->minimum (container, + key_to_remove, + value_to_remove); + + if (cleanup_s->cleanup (container, + key_to_remove, + value_to_remove) == -1) + return -1; + } + + return 0; +} + +template <class KEY, class VALUE, class CONTAINER, class ITERATOR, class ATTRIBUTES> void +ACE_Pair_Caching_Utility<KEY, VALUE, CONTAINER, ITERATOR, ATTRIBUTES>::minimum (CONTAINER &container, + KEY *&key_to_remove, + VALUE *&value_to_remove) +{ + // Starting values. + ITERATOR iter = container.begin (); + ITERATOR end = container.end (); + ATTRIBUTES min = (*iter).int_id_.second (); + key_to_remove = &(*iter).ext_id_; + value_to_remove = &(*iter).int_id_; + + // The iterator moves thru the container searching for the entry + // with the lowest ATTRIBUTES. + for (++iter; + iter != end; + ++iter) + { + if (min > (*iter).int_id_.second ()) + { + // Ah! an item with lower ATTTRIBUTES... + min = (*iter).int_id_.second (); + key_to_remove = &(*iter).ext_id_; + value_to_remove = &(*iter).int_id_; + } + } +} + +//////////////////////////////////////////////////////////////////////////////////////////////////////// + +template <class KEY, class VALUE, class CONTAINER, class ITERATOR, class ATTRIBUTES> int +ACE_Handler_Caching_Utility<KEY, VALUE, CONTAINER, ITERATOR, ATTRIBUTES>::clear_cache (CONTAINER &container, + ACE_Cleanup_Strategy<KEY, VALUE, CONTAINER> *cleanup_s, + double purge_percent) +{ + // Check that the purge_percent is non-zero. + if (purge_percent == 0) + return 0; + + // Get the number of entries in the container. + size_t current_map_size = container.current_size (); + + // Also whether the number of entries in the cache is just one! + // Oops! then there is no way out but exiting. So return an error. + if (current_map_size <= 1) + return 0; + + // Calculate the no of entries to remove from the cache depending + // upon the <purge_percent>. + size_t entries_to_remove = (purge_percent / 100 * current_map_size) + 0.5; + + KEY *key_to_remove = 0; + VALUE *value_to_remove = 0; + + for (size_t i = 0; i < entries_to_remove ; ++i) + { + this->minimum (container, + key_to_remove, + value_to_remove); + + if (cleanup_s->cleanup (container, + key_to_remove, + value_to_remove) == -1) + return -1; + } + + return 0; +} + +template <class KEY, class VALUE, class CONTAINER, class ITERATOR, class ATTRIBUTES> void +ACE_Handler_Caching_Utility<KEY, VALUE, CONTAINER, ITERATOR, ATTRIBUTES>::minimum (CONTAINER &container, + KEY *&key_to_remove, + VALUE *&value_to_remove) +{ + // Starting values. + ITERATOR iter = container.begin (); + ITERATOR end = container.end (); + ATTRIBUTES min = (*iter).int_id_->caching_attributes (); + key_to_remove = &(*iter).ext_id_; + value_to_remove = &(*iter).int_id_; + + // The iterator moves thru the container searching for the entry + // with the lowest ATTRIBUTES. + for (++iter; + iter != end; + ++iter) + { + if (min > (*iter).int_id_->caching_attributes () && + (*iter).int_id_->active () != 1) + { + // Ah! an item with lower ATTTRIBUTES... + min = (*iter).int_id_->caching_attributes (); + key_to_remove = &(*iter).ext_id_; + value_to_remove = &(*iter).int_id_; + } + } +} + +//////////////////////////////////////////////////////////////////////////////////////////////////////// + +template <class KEY, class VALUE, class CONTAINER, class ITERATOR, class ATTRIBUTES> int +ACE_Null_Caching_Utility<KEY, VALUE, CONTAINER, ITERATOR, ATTRIBUTES>::clear_cache (CONTAINER &container, + ACE_Cleanup_Strategy<KEY, VALUE, CONTAINER> *cleanup_s, + double purge_percent) +{ + ACE_UNUSED_ARG (container); + ACE_UNUSED_ARG (cleanup_s); + ACE_UNUSED_ARG (purge_percent); + + return 0; +} + +template <class KEY, class VALUE, class CONTAINER, class ITERATOR, class ATTRIBUTES> void +ACE_Null_Caching_Utility<KEY, VALUE, CONTAINER, ITERATOR, ATTRIBUTES>::minimum (CONTAINER &container, + KEY *&key_to_remove, + VALUE *&value_to_remove) +{ + ACE_UNUSED_ARG (container); + ACE_UNUSED_ARG (key_to_remove); + ACE_UNUSED_ARG (value_to_remove); +} + +#endif /* CACHING_UTILITY_T_C */ diff --git a/ace/Caching_Utility_T.h b/ace/Caching_Utility_T.h new file mode 100644 index 00000000000..b3264f8841c --- /dev/null +++ b/ace/Caching_Utility_T.h @@ -0,0 +1,145 @@ +/* -*- C++ -*- */ +// $Id$ + +// ============================================================================ +// +// = LIBRARY +// ace +// +// = FILENAME +// Caching_Utility_T.h +// +// = AUTHOR +// Kirthika Parameswaran <kirthika@cs.wustl.edu> +// +// ============================================================================ + +#ifndef CACHING_UTILITY_H +#define CACHING_UTILITY_H + +#include "ace/OS.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +#define ACE_LACKS_PRAGMA_ONCE +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +// Forward declaration +template <class KEY, class VALUE, class CONTAINER> +class ACE_Cleanup_Strategy; + +template <class KEY, class VALUE, class CONTAINER, class ITERATOR, class ATTRIBUTES> +class ACE_Pair_Caching_Utility +{ + // = TITLE + // Defines a helper class for the Caching Strategies. + // + // = DESCRIPTION + // This class defines the methods commonly used by the + // different caching strategies. For instance: clear_cache () + // method which decides and purges the entry from the container. + // Note: This class helps in the caching_strategies using a + // container containing entries of <KEY, ACE_Pair<VALUE, + // attributes>> kind. The attributes helps in deciding the + // entries to be purged. +public: + + int clear_cache (CONTAINER &container, + ACE_Cleanup_Strategy<KEY, VALUE, CONTAINER> *cleanup_s, + double purge_percent); + // Purge entries from the <container>. The Cleanup_Strategy will do + // the actual job of cleanup once the entries to be cleaned up are + // decided. + +protected: + + void minimum (CONTAINER &container, + KEY *&key_to_remove, + VALUE *&value_to_remove); + // Find the entry with minimum caching attributes. +}; + + +//////////////////////////////////////////////////////////////////////////////////////// + +template <class KEY, class VALUE, class CONTAINER, class ITERATOR, class ATTRIBUTES> +class ACE_Handler_Caching_Utility +{ + // = TITLE + // Defines a helper class for the Caching Strategies. + // + // = DESCRIPTION + // This class defines the methods commonly used by the + // different caching strategies. For instance: clear_cache () + // method which decides and purges the entry from the container. + // Note: This class helps in the caching_strategies using a + // container containing entries of <KEY, HANDLER> kind where the + // HANDLER contains the caching attributes which help in deciding + // the entries to be purged. +public: + + int clear_cache (CONTAINER &container, + ACE_Cleanup_Strategy<KEY, VALUE, CONTAINER> *cleanup_s, + double purge_percent); + // Purge entries from the <container>. The Cleanup_Strategy will do + // the actual job of cleanup once the entries to be cleaned up are + // decided. + +protected: + + void minimum (CONTAINER &container, + KEY *&key_to_remove, + VALUE *&value_to_remove); + // Find the entry with minimum caching attributes. This is handler + // specific since this utility is to be used very specifically for + // handler who have caching_attributes for server side acched + // connection management. +}; + +/////////////////////////////////////////////////////////////////////////// + +template <class KEY, class VALUE, class CONTAINER, class ITERATOR, class ATTRIBUTES> +class ACE_Null_Caching_Utility +{ + // = TITLE + // Defines a dummy helper class for the Caching Strategies. + // + // = DESCRIPTION + // This class defines the methods commonly used by the + // different caching strategies. For instance: clear_cache () + // method which decides and purges the entry from the container. + // Note: This class is be used with the Null_Caching_Strategy. +public: + + int clear_cache (CONTAINER &container, + ACE_Cleanup_Strategy<KEY, VALUE, CONTAINER> *cleanup_s, + double purge_percent); + // Purge entries from the <container>. The Cleanup_Strategy will do + // the actual job of cleanup once the entries to be cleaned up are + // decided. NOte: Here it is a no-op. + +protected: + + void minimum (CONTAINER &container, + KEY *&key_to_remove, + VALUE *&value_to_remove); + // Find the entry with minimum caching attributes. This is handler + // specific since this utility is to be used very specifically for + // handler who have caching_attributes for server side acched + // connection management.Note: Here it is a no-op. +}; + +/////////////////////////////////////////////////////////////////////////// + +#if defined (__ACE_INLINE__) +#include "ace/Caching_Utility_T.i" +#endif /* __ACE_INLINE__ */ + +#if defined (ACE_TEMPLATES_REQUIRE_SOURCE) +#include "ace/Caching_Utility_T.cpp" +#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ + +#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) +#pragma implementation ("Caching_Utility_T.cpp") +#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */ + +#endif /* CACHING_UTILITY_H */ diff --git a/ace/Caching_Strategy_Utility_T.i b/ace/Caching_Utility_T.i index 0b4fb4c956b..acecbfb986d 100644 --- a/ace/Caching_Strategy_Utility_T.i +++ b/ace/Caching_Utility_T.i @@ -1,4 +1,2 @@ /* -*-C++-*- */ -//$Id$ - - +// $Id$ diff --git a/tests/Cache_Map_Manager_Test.cpp b/tests/Cache_Map_Manager_Test.cpp index d5aeb031ab7..5faa51f756d 100644 --- a/tests/Cache_Map_Manager_Test.cpp +++ b/tests/Cache_Map_Manager_Test.cpp @@ -30,13 +30,13 @@ #include "ace/Functor.h" #include "ace/Pair_T.h" #include "ace/Synch.h" +#include "ace/Get_Opt.h" #if defined(__BORLANDC__) && __BORLANDC__ >= 0x0530 USELIB("..\ace\aced.lib"); //--------------------------------------------------------------------------- #endif /* defined(__BORLANDC__) && __BORLANDC__ >= 0x0530 */ - typedef size_t KEY; typedef size_t VALUE; typedef int ATTR; @@ -44,584 +44,350 @@ typedef ACE_Pair<VALUE, ATTR> CACHE_VALUE; typedef ACE_Hash<KEY> HASH_KEY; typedef ACE_Equal_To<KEY> COMPARE_KEYS; -typedef ACE_Hash_Map_Manager_Ex<KEY, CACHE_VALUE, ACE_Hash<KEY>,ACE_Equal_To<KEY>, ACE_Null_Mutex> +typedef ACE_Hash_Map_Manager_Ex<KEY, CACHE_VALUE, ACE_Hash<KEY>, ACE_Equal_To<KEY>, ACE_Null_Mutex> HASH_MAP_MANAGER; -typedef ACE_Hash_Map_Iterator_Ex<KEY, CACHE_VALUE, ACE_Hash<KEY>, ACE_Equal_To<KEY>, ACE_Null_Mutex> - HASH_MAP_ITER; -typedef ACE_Hash_Map_Reverse_Iterator_Ex<KEY, CACHE_VALUE, ACE_Hash<KEY>, ACE_Equal_To<KEY>, ACE_Null_Mutex> - HASH_MAP_REV_ITER; - -typedef ACE_Svc_Caching_Strategy_Utility<KEY, CACHE_VALUE,HASH_MAP_MANAGER, HASH_MAP_ITER, ATTR> - HASH_CACHING_STRATEGY_UTILITY; -typedef ACE_LRU_Caching_Strategy <KEY, CACHE_VALUE,HASH_MAP_MANAGER,ATTR, HASH_CACHING_STRATEGY_UTILITY> - LRU_HASH_MAP; +typedef ACE_Map_Manager<KEY, CACHE_VALUE, ACE_Null_Mutex> + MAP_MANAGER; + +typedef ACE_Pair_Caching_Utility<KEY, CACHE_VALUE, HASH_MAP_MANAGER, HASH_MAP_MANAGER::iterator, ATTR> + HASH_MAP_CACHING_UTILITY; + +typedef ACE_Pair_Caching_Utility<KEY, CACHE_VALUE, MAP_MANAGER, MAP_MANAGER::iterator, ATTR> + MAP_CACHING_UTILITY; + +typedef ACE_LRU_Caching_Strategy<KEY, CACHE_VALUE, HASH_MAP_MANAGER, ATTR, HASH_MAP_CACHING_UTILITY> + HASH_MAP_LRU; + +typedef ACE_LRU_Caching_Strategy<KEY, CACHE_VALUE, MAP_MANAGER, ATTR, MAP_CACHING_UTILITY> + MAP_LRU; -// Using the Hash_Map. -typedef ACE_Cache_Map_Manager<KEY, VALUE, HASH_MAP_MANAGER,HASH_MAP_ITER, HASH_MAP_REV_ITER, LRU_HASH_MAP, ATTR> - CACHE_1; +typedef ACE_Hash_Cache_Map_Manager<KEY, VALUE, HASH_KEY, COMPARE_KEYS, HASH_MAP_LRU, ATTR> + HASH_MAP_CACHE; -// Test out the special Hash_Map version of the Cache_Map_Manager, -// i.e. the Hash_Cache_Map_Manager -typedef ACE_Hash_Cache_Map_Manager<KEY, VALUE, HASH_KEY, COMPARE_KEYS, LRU_HASH_MAP, ATTR> - HASH_CACHE_1; +typedef ACE_Cache_Map_Manager<KEY, VALUE, MAP_MANAGER, MAP_MANAGER::iterator, MAP_MANAGER::reverse_iterator, MAP_LRU, ATTR> + MAP_CACHE; +static size_t iterations = ACE_MAX_ITERATIONS; +static size_t no_of_lookups = iterations / 2; +static int randomize_lookups = 1; +static int purge_percent = 10; -void run_iterator_cache1 (CACHE_1 &cache, - size_t iterations) +void +run_iterator_cache (MAP_CACHE &cache) { - ACE_UNUSED_ARG (cache); - ACE_UNUSED_ARG (iterations); + size_t iterations = cache.current_size (); size_t counter = 0; - - // Forward iteration...trying prefix ++ - { - counter = 0; - CACHE_1::iterator end = cache.end (); - - for (CACHE_1::iterator iter = cache.begin (); - iter != end; - ++iter) - { - // Debugging info. - ACE_DEBUG ((LM_DEBUG, - ASYS_TEXT ("(%d|%d|%d)"), - counter, - (*iter).first (), - (*iter).second ())); - - ACE_ASSERT ((*iter).first () == (*iter).second ()); - ++counter; - } - - ACE_DEBUG ((LM_DEBUG, - ASYS_TEXT ("\n"))); - ACE_ASSERT (counter == iterations); - - } + MAP_CACHE::iterator end = cache.end (); + + for (MAP_CACHE::iterator iter = cache.begin (); + iter != end; + ++iter) + { + // Debugging info. + ACE_DEBUG ((LM_DEBUG, + ASYS_TEXT ("(%d|%d)"), + (*iter).first (), + (*iter).second ())); + + ACE_ASSERT ((*iter).first () == (*iter).second ()); + ++counter; + } + + ACE_DEBUG ((LM_DEBUG, + ASYS_TEXT ("\n"))); + + ACE_UNUSED_ARG (iterations); + ACE_ASSERT (counter == iterations); } -void run_iterator_hash_cache1 (HASH_CACHE_1 &cache, - size_t iterations) +void +run_iterator_hash_cache (HASH_MAP_CACHE &cache) { - ACE_UNUSED_ARG (iterations); + size_t iterations = cache.current_size (); size_t counter = 0; - - // Forward iteration...trying prefix ++ - { - counter = 0; - HASH_CACHE_1::iterator end = cache.end (); - - for (HASH_CACHE_1::iterator iter = cache.begin (); - iter != end; - ++iter) - { - // Debugging info. - ACE_DEBUG ((LM_DEBUG, - ASYS_TEXT ("(%d|%d|%d)"), - counter, - (*iter).first (), - (*iter).second ())); - - ACE_ASSERT ((*iter).first () == (*iter).second ()); - ++counter; - } - - ACE_DEBUG ((LM_DEBUG, - ASYS_TEXT ("\n"))); - ACE_ASSERT (counter == iterations); - - } + HASH_MAP_CACHE::iterator end = cache.end (); + + for (HASH_MAP_CACHE::iterator iter = cache.begin (); + iter != end; + ++iter) + { + // Debugging info. + ACE_DEBUG ((LM_DEBUG, + ASYS_TEXT ("(%d|%d)"), + (*iter).first (), + (*iter).second ())); + + ACE_ASSERT ((*iter).first () == (*iter).second ()); + ++counter; + } + + ACE_DEBUG ((LM_DEBUG, + ASYS_TEXT ("\n"))); + + ACE_UNUSED_ARG (iterations); + ACE_ASSERT (counter == iterations); } -void run_reverse_iterator_cache1 (CACHE_1 &cache, - size_t iterations) +void +run_reverse_iterator_cache (MAP_CACHE &cache) { - ACE_UNUSED_ARG (cache); - size_t counter = 0; - - // Reverse iteration...trying prefix ++ - { - counter = iterations; - CACHE_1::reverse_iterator rend = cache.rend (); - - for (CACHE_1::reverse_iterator iter = cache.rbegin (); - iter != rend; - ++iter) - { - ACE_ASSERT ((*iter).first () == (*iter).second ()); - - // Debugging info. - ACE_DEBUG ((LM_DEBUG, - ASYS_TEXT ("(%d|%d|%d)"), - counter, - (*iter).first (), - (*iter).second ())); - --counter; - } - - ACE_DEBUG ((LM_DEBUG, - ASYS_TEXT ("\n"))); - ACE_ASSERT (counter == 0); - - } + size_t counter = cache.current_size (); + MAP_CACHE::reverse_iterator rend = cache.rend (); + + for (MAP_CACHE::reverse_iterator iter = cache.rbegin (); + iter != rend; + ++iter) + { + ACE_ASSERT ((*iter).first () == (*iter).second ()); + + // Debugging info. + ACE_DEBUG ((LM_DEBUG, + ASYS_TEXT ("(%d|%d)"), + (*iter).first (), + (*iter).second ())); + --counter; + } + + ACE_DEBUG ((LM_DEBUG, + ASYS_TEXT ("\n"))); + ACE_ASSERT (counter == 0); } -void run_reverse_iterator_hash_cache1 (HASH_CACHE_1 &cache, - size_t iterations) +void +run_reverse_iterator_hash_cache (HASH_MAP_CACHE &cache) { - ACE_UNUSED_ARG (cache); - size_t counter = 0; - - // Reverse iteration...trying prefix ++ - { - counter = iterations; - HASH_CACHE_1::reverse_iterator rend = cache.rend (); - - for (HASH_CACHE_1::reverse_iterator iter = cache.rbegin (); - iter != rend; - ++iter) - { - ACE_ASSERT ((*iter).first () == (*iter).second ()); - - // Debugging info. - ACE_DEBUG ((LM_DEBUG, - ASYS_TEXT ("(%d|%d|%d)"), - counter, - (*iter).first (), - (*iter).second ())); - --counter; - } - - ACE_DEBUG ((LM_DEBUG, - ASYS_TEXT ("\n"))); - ACE_ASSERT (counter == 0); - - } + size_t counter = cache.current_size (); + HASH_MAP_CACHE::reverse_iterator rend = cache.rend (); + + for (HASH_MAP_CACHE::reverse_iterator iter = cache.rbegin (); + iter != rend; + ++iter) + { + ACE_ASSERT ((*iter).first () == (*iter).second ()); + + // Debugging info. + ACE_DEBUG ((LM_DEBUG, + ASYS_TEXT ("(%d|%d)"), + (*iter).first (), + (*iter).second ())); + --counter; + } + + ACE_DEBUG ((LM_DEBUG, + ASYS_TEXT ("\n"))); + ACE_ASSERT (counter == 0); } -void find_test_cache1 (CACHE_1 &cache, - KEY *verify_keys, - size_t total_entries, - size_t times, - size_t random_seed) +void +find_test_cache (MAP_CACHE &cache) { - ACE_UNUSED_ARG (cache); - ACE_UNUSED_ARG (verify_keys); - ACE_DEBUG ((LM_DEBUG, "find\n")); - ACE_OS::srand (random_seed); - - size_t order = 0; - for (VALUE i = 0; i < times; ++i) + + size_t total_entries = cache.current_size (); + + for (size_t i = 0; i < no_of_lookups; ++i) { - if (random_seed != 0) - order = (int) (ACE_OS::rand () % total_entries); - else - order = i; - - VALUE j = 0; - - ACE_ASSERT (cache.find (verify_keys [order], j) != -1); - ACE_ASSERT (j == verify_keys [order]); - + KEY key = i; + if (randomize_lookups != 0) + key = ACE_OS::rand () % total_entries; + + VALUE j; + int result = cache.find (key, j); + + ACE_ASSERT (result != -1); + ACE_ASSERT (j == key); + ACE_DEBUG ((LM_DEBUG, - "%d|%d ", - verify_keys [order], + "%d ", j)); - ACE_UNUSED_ARG (j); } - + ACE_DEBUG ((LM_DEBUG, "\n")); } -void find_test_hash_cache1 (HASH_CACHE_1 &cache, - KEY *verify_keys, - size_t total_entries, - size_t times, - size_t random_seed) +void find_test_hash_cache (HASH_MAP_CACHE &cache) { - ACE_UNUSED_ARG (cache); - ACE_UNUSED_ARG (verify_keys); - ACE_DEBUG ((LM_DEBUG, "find\n")); - ACE_OS::srand (random_seed); - - size_t order = 0; - for (VALUE i = 0; i < times; ++i) + + size_t total_entries = cache.current_size (); + int order = 0; + + for (size_t i = 0; i < no_of_lookups; ++i) { - if (random_seed != 0) - order = (int) (ACE_OS::rand () % total_entries); - else - order = i; - - VALUE j = 0; - - ACE_ASSERT (cache.find (verify_keys [order], j) != -1); - ACE_ASSERT (j == verify_keys [order]); - + KEY key = i; + if (randomize_lookups != 0) + key = ACE_OS::rand () % total_entries; + + VALUE j; + int result = cache.find (key, j); + + ACE_ASSERT (result != -1); + ACE_ASSERT (j == key); + ACE_DEBUG ((LM_DEBUG, - "%d|%d ", - verify_keys [order], + "%d ", j)); - ACE_UNUSED_ARG (j); } - + ACE_DEBUG ((LM_DEBUG, "\n")); } -void purge_test_cache1 (CACHE_1 &cache, - HASH_MAP_MANAGER &map, - KEY *verify_keys, - size_t iterations) +void purge_test_cache (MAP_CACHE &cache) { - ACE_UNUSED_ARG (cache); - ACE_UNUSED_ARG (map); - ACE_UNUSED_ARG (verify_keys); - - size_t purge_percent = 10; - - // Find the numeber of entries whihc will get purged. - double val = (double) purge_percent / 100; - size_t no_of_entries = (size_t) (val * iterations + 0.5); - - // Verify whether the purging happens properly. For that we will - // first sort all the entries by their attributes and store them. - // Then we purge and check that the top <no_of_entries> have - // disappeared from the map or not! - - ATTR *attr = new ATTR[iterations]; - - ACE_UNUSED_ARG (attr); - - HASH_MAP_MANAGER::iterator end = map.end (); - - size_t counter = 0; - for (HASH_MAP_MANAGER::iterator iter = map.begin (); - iter != end; - ++iter) - { - verify_keys[counter] = (*iter).ext_id_; - attr[counter] = (*iter).int_id_.second (); - - ACE_DEBUG ((LM_DEBUG, - "key=%d, attr=%d, index=%d\n", - verify_keys[counter], - attr[counter], - counter)); - ++counter; - } - - // Sort in ascending order on the attributes. - VALUE i; - for (i = 0; i < (iterations - 1); ++i) - { - for (VALUE j = (i + 1); j < iterations; ++j) - { - KEY tmp; ATTR tmp1; - if (attr[i] > attr[j]) - { - tmp = verify_keys[i]; - tmp1 = attr[i]; - verify_keys[i] = verify_keys[j]; - attr[i] = attr[j]; - verify_keys[j] = tmp; - attr[j] = tmp1; - } - } - } - - ACE_DEBUG ((LM_DEBUG, "In attr sorted order \n")); - for (i = 0; i < iterations; ++i) - { - ACE_DEBUG ((LM_DEBUG, - "key=%d ", verify_keys[i])); - } - ACE_DEBUG ((LM_DEBUG, " \n")); - ACE_ASSERT (cache.purge () != -1); - - // Check that the top no_of_entries in the verify_keys array - // are missing from the cache denoting successfull purging. - for (i = 0; i < no_of_entries; ++i) - { - - VALUE j; - ACE_ASSERT (cache.find (verify_keys [i], j) == -1); - ACE_UNUSED_ARG (j); - } - - delete[] attr; + // Get the number of entries in the container. + size_t current_map_size = cache.current_size (); + + // Find the number of entries which will get purged. + size_t entries_to_remove = (double (purge_percent) / 100 * current_map_size) + 0.5; + + // Tell the caching strategy how much to purge. + cache.caching_strategy ().purge_percent (purge_percent); + + // Purge from cache. + int result = cache.purge (); + ACE_ASSERT (result != -1); + + // Make sure the purge took out the appropriate number of entries. + ACE_ASSERT (cache.current_size () == + current_map_size - entries_to_remove); } -void purge_test_hash_cache1 (HASH_CACHE_1 &cache, - HASH_MAP_MANAGER &map, - KEY *verify_keys, - size_t iterations) +void purge_test_hash_cache (HASH_MAP_CACHE &cache) { - ACE_UNUSED_ARG (cache); - ACE_UNUSED_ARG (map); - ACE_UNUSED_ARG (verify_keys); - - unsigned int purge_percent = 10; - - // Find the numeber of entries whihc will get purged. - double val = (double) purge_percent / 100; - size_t no_of_entries = (size_t) (val * iterations + 0.5); - - // Verify whether the purging happens properly. For that we will - // first sort all the entries by their attributes and store them. - // Then we purge and check that the top <no_of_entries> have - // disappeared from the map or not! - - ATTR *attr = new ATTR[iterations]; - - ACE_UNUSED_ARG (attr); - - HASH_MAP_MANAGER::iterator end = map.end (); - - size_t counter = 0; - for (HASH_MAP_MANAGER::iterator iter = map.begin (); - iter != end; - ++iter) - { - verify_keys[counter] = (*iter).ext_id_; - attr[counter] = (*iter).int_id_.second (); - - ACE_DEBUG ((LM_DEBUG, - "key=%d, attr=%d, index=%d\n", - verify_keys[counter], - attr[counter], - counter)); - ++counter; - } - - // Sort in ascending order on the attributes. - VALUE i; - for (i = 0; i < (iterations - 1); ++i) - { - for (VALUE j = (i + 1); j < iterations; ++j) - { - KEY tmp; ATTR tmp1; - if (attr[i] > attr[j]) - { - tmp = verify_keys[i]; - tmp1 = attr[i]; - verify_keys[i] = verify_keys[j]; - attr[i] = attr[j]; - verify_keys[j] = tmp; - attr[j] = tmp1; - } - } - } - - ACE_DEBUG ((LM_DEBUG, "In attr sorted order \n")); - for (i = 0; i < iterations; ++i) - { - ACE_DEBUG ((LM_DEBUG, - "key=%d ", verify_keys[i])); - } - ACE_DEBUG ((LM_DEBUG, " \n")); - ACE_ASSERT (cache.purge () != -1); - - // Check that the top no_of_entries in the verify_keys array - // are missing from the cache denoting successfull purging. - for (i = 0; i < no_of_entries; ++i) - { - - VALUE j; - ACE_ASSERT (cache.find (verify_keys [i], j) == -1); - ACE_UNUSED_ARG (j); - } - - delete[] attr; + // Get the number of entries in the container. + size_t current_map_size = cache.current_size (); + + // Find the number of entries which will get purged. + size_t entries_to_remove = (double (purge_percent) / 100 * current_map_size) + 0.5; + + // Tell the caching strategy how much to purge. + cache.caching_strategy ().purge_percent (purge_percent); + + // Purge from cache. + int result = cache.purge (); + ACE_ASSERT (result != -1); + + // Make sure the purge took out the appropriate number of entries. + ACE_ASSERT (cache.current_size () == + current_map_size - entries_to_remove); } -// All the combinations of the Maps, caching_startegies, utilities and -// cleanup strategies can be tested to the hilt using this method. The -// <randomize> option allows the user to decide whether the searches -// on the map should be done with a different seed per iteration. -void functionality_test_cache1 (size_t table_size, - size_t iterations, - size_t no_of_lookups, - size_t randomize) +void +functionality_test_cache (void) { - CACHE_1 cache(table_size); - - VALUE i; - KEY *keys = new KEY[iterations]; - KEY *verify_keys = new KEY[iterations]; - - ACE_UNUSED_ARG (keys); - ACE_UNUSED_ARG (verify_keys); - // Fill some values into the keys. - for (i = 0; i < iterations; ++i) - { - keys[i] = i; - verify_keys[i] = keys [i]; - } - + MAP_CACHE cache; + KEY i = 0; + VALUE j = 0; + // Add it to the map now. - size_t counter = 0; - for (i = 0; i < iterations; ++i) + size_t counter = 0; + for (; + i < iterations; + ++i, ++j) { - ACE_ASSERT (cache.bind (keys[i], i) == 0); - ACE_DEBUG ((LM_DEBUG, "keys[i]=%d verify_keys[i]=%d\n", keys[i],verify_keys[i])); + int result = cache.bind (i, j); + ACE_ASSERT (result != -1); + ACE_DEBUG ((LM_DEBUG, "keys[%d]=%d value=[%d]=%d\n", + i, i, j, j)); ++counter; ACE_ASSERT (cache.current_size () == counter); } - - // Lets check out the iterators - forward and reverse. - run_iterator_cache1 (cache, - iterations); - - run_reverse_iterator_cache1 (cache, - iterations); - - // Let search now, this will affect the attributes of the entries, - // thereby affecting the purging of the entries. - size_t random_seed = 0; - for (i = 0; i < no_of_lookups; ++i) - { - size_t total_entries = iterations; - int times = iterations / 2; - - if (randomize != 0) - random_seed = (unsigned int) ACE_OS::time (0); - - find_test_cache1 (cache, - verify_keys, - total_entries, - times, - random_seed); - } - - // Now we clear the cache. Heres where the strategy somes into play. - // The utiltity helps in actually performing the purging and the - // cleanup strategy will remove the entries. - ACE_DEBUG ((LM_DEBUG, "cache size before purging %d\n", - cache.current_size ())); - purge_test_cache1 (cache, - cache.map (), - verify_keys, - iterations); - ACE_DEBUG ((LM_DEBUG, "cache size after purging %d\n", - cache.current_size ())); - delete[] keys; - delete[] verify_keys; + run_iterator_cache (cache); + run_reverse_iterator_cache (cache); + + find_test_cache (cache); + purge_test_cache (cache); + + run_iterator_cache (cache); + run_reverse_iterator_cache (cache); } -void functionality_test_hash_cache1 (size_t table_size, - size_t iterations, - size_t no_of_lookups, - size_t randomize) +void +functionality_test_hash_cache (void) { - HASH_CACHE_1 cache(table_size); - - VALUE i; - KEY *keys = new KEY[iterations]; - KEY *verify_keys = new KEY[iterations]; - - ACE_UNUSED_ARG (keys); - ACE_UNUSED_ARG (verify_keys); - // Fill some values into the keys. - for (i = 0; i < iterations; ++i) - { - keys[i] = i; - verify_keys[i] = keys [i]; - } - + HASH_MAP_CACHE cache; + KEY i = 0; + VALUE j = 0; + // Add it to the map now. size_t counter = 0; - for (i = 0; i < iterations; ++i) + for (; + i < iterations; + ++i, ++j) { - ACE_ASSERT (cache.bind (keys[i], i) == 0); - ACE_DEBUG ((LM_DEBUG, "keys[i]=%d verify_keys[i]=%d\n", keys[i],verify_keys[i])); + int result = cache.bind (i, j); + ACE_ASSERT (result != -1); + ACE_DEBUG ((LM_DEBUG, "keys[%d]=%d value=[%d]=%d\n", + i, i, j, j)); ++counter; ACE_ASSERT (cache.current_size () == counter); } - - // Lets check out the iterators - forward and reverse. - run_iterator_hash_cache1 (cache, - iterations); - - run_reverse_iterator_hash_cache1 (cache, - iterations); - - // Let search now, this will affect the attributes of the entries, - // thereby affecting the purging of the entries. - size_t random_seed = 0; - for (i = 0; i < no_of_lookups; ++i) - { - size_t total_entries = iterations; - int times = iterations / 2; - - if (randomize != 0) - random_seed = (unsigned int) ACE_OS::time (0); - - find_test_hash_cache1 (cache, - verify_keys, - total_entries, - times, - random_seed); - } - - // Now we clear the cache. Heres where the strategy somes into play. - // The utiltity helps in actually performing the purging and the - // cleanup strategy will remove the entries. - ACE_DEBUG ((LM_DEBUG, "cache size before purging %d\n", - cache.current_size ())); - purge_test_hash_cache1 (cache, - cache.map (), - verify_keys, - iterations); - ACE_DEBUG ((LM_DEBUG, "cache size after purging %d\n", - cache.current_size ())); - delete[] keys; - delete[] verify_keys; - + + run_iterator_hash_cache (cache); + run_reverse_iterator_hash_cache (cache); + + find_test_hash_cache (cache); + purge_test_hash_cache (cache); + + run_iterator_hash_cache (cache); + run_reverse_iterator_hash_cache (cache); } +static int +parse_args (int argc, char *argv[]) +{ + ACE_Get_Opt get_opt (argc, argv, "r:i:f:p:"); + + int c; -//===================START OF TEST=================================== + while ((c = get_opt ()) != -1) + switch (c) + { + case 'i': + iterations = atoi (get_opt.optarg); + break; + case 'f': + no_of_lookups = atoi (get_opt.optarg); + break; + case 'r': + randomize_lookups = atoi (get_opt.optarg); + break; + case 'p': + purge_percent = atoi (get_opt.optarg); + break; + case '?': + case 'h': + default: + ACE_ERROR ((LM_ERROR, + "usage: %s " + "[-r (randomize lookups)] " + "[-i (iterations)] " + "[-p (purge percent)] " + "[-f (number of lookups)] \n", + argv[0])); + return -1; + } + + return 0; +} int main (int argc, ASYS_TCHAR *argv[]) { + int result = parse_args (argc, argv); + if (result != 0) + return result; + ACE_START_TEST (ASYS_TEXT ("Cache_Map_Manager_Test")); ACE_LOG_MSG->clr_flags (ACE_Log_Msg::VERBOSE_LITE); - size_t table_size = ACE_MAX_ITERATIONS / 2; - int iterations = ACE_MAX_ITERATIONS; - int no_of_lookups = 3; - unsigned int randomize = 1; - - if (argc > 1) - no_of_lookups = ACE_OS::atoi (argv[1]); - - if (argc > 2) - table_size = ACE_OS::atoi (argv[2]); - - if (argc > 3) - iterations = ACE_OS::atoi (argv[3]); - - if (argc > 4) - randomize = ACE_OS::atoi (argv[4]); - - - functionality_test_cache1(table_size, - iterations, - no_of_lookups, - randomize); - - ACE_DEBUG ((LM_DEBUG, "Success cache_1!\n")); - - functionality_test_hash_cache1(table_size, - iterations, - no_of_lookups, - randomize); - - ACE_DEBUG ((LM_DEBUG, "Success hash_cache_1!\n")); + ACE_OS::srand (ACE_static_cast (size_t, ACE_OS::time (0))); + + functionality_test_cache (); + functionality_test_hash_cache (); + ACE_LOG_MSG->set_flags (ACE_Log_Msg::VERBOSE_LITE); ACE_END_TEST; @@ -635,67 +401,70 @@ template class ACE_Pair<VALUE, ATTR>; template class ACE_Reference_Pair<KEY, VALUE>; template class ACE_Equal_To<KEY>; -template class ACE_Hash_Map_Manager_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>,ACE_Equal_To<KEY>, ACE_Null_Mutex>; -template class ACE_Hash_Map_Iterator_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>, ACE_Equal_To<KEY>, ACE_Null_Mutex>; -template class ACE_Hash_Map_Reverse_Iterator_Ex<KEY, ACE_Pair<VALUE,ATTR>, ACE_Hash<KEY>, ACE_Equal_To<KEY>, ACE_Null_Mutex>; -template class ACE_Hash_Map_Iterator_Base_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>, ACE_Equal_To<KEY>, ACE_Null_Mutex>; -template class ACE_Hash_Map_Manager<KEY, ACE_Pair<VALUE, ATTR>, ACE_Null_Mutex>; -template class ACE_Hash_Map_Iterator<KEY, ACE_Pair<VALUE, ATTR>, ACE_Null_Mutex>; -template class ACE_Hash_Map_Reverse_Iterator<KEY, ACE_Pair<VALUE, ATTR>, ACE_Null_Mutex>; -template class ACE_Hash_Map_Entry<KEY, ACE_Pair<VALUE, ATTR> >; -template class ACE_Caching_Strategy_Utility<KEY, ACE_Pair<VALUE, ATTR>,ACE_Hash_Map_Manager_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>,ACE_Equal_To<KEY>, ACE_Null_Mutex>, ATTR>; -template class ACE_Svc_Caching_Strategy_Utility<KEY, ACE_Pair<VALUE, ATTR>,ACE_Hash_Map_Manager_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>,ACE_Equal_To<KEY>, ACE_Null_Mutex>, ACE_Hash_Map_Iterator_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>, ACE_Equal_To<KEY>, ACE_Null_Mutex>,ATTR>; -template class ACE_LRU_Caching_Strategy <KEY, ACE_Pair<VALUE, ATTR>,ACE_Hash_Map_Manager_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>,ACE_Equal_To<KEY>, ACE_Null_Mutex>,ATTR, ACE_Svc_Caching_Strategy_Utility<KEY, ACE_Pair<VALUE, ATTR>,ACE_Hash_Map_Manager_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>,ACE_Equal_To<KEY>, ACE_Null_Mutex>, ACE_Hash_Map_Iterator_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>, ACE_Equal_To<KEY>, ACE_Null_Mutex>,ATTR> >; -template class ACE_FIFO_Caching_Strategy <KEY, ACE_Pair<VALUE, ATTR>,ACE_Hash_Map_Manager_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>,ACE_Equal_To<KEY>, ACE_Null_Mutex>,ATTR, ACE_Svc_Caching_Strategy_Utility<KEY, ACE_Pair<VALUE, ATTR>,ACE_Hash_Map_Manager_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>,ACE_Equal_To<KEY>, ACE_Null_Mutex>, ACE_Hash_Map_Iterator_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>, ACE_Equal_To<KEY>, ACE_Null_Mutex>,ATTR> >; -template class ACE_LFU_Caching_Strategy <KEY, ACE_Pair<VALUE,ATTR>,ACE_Hash_Map_Manager_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>,ACE_Equal_To<KEY>, ACE_Null_Mutex>,ATTR, ACE_Svc_Caching_Strategy_Utility<KEY, ACE_Pair<VALUE, ATTR>,ACE_Hash_Map_Manager_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>,ACE_Equal_To<KEY>, ACE_Null_Mutex>, ACE_Hash_Map_Iterator_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>, ACE_Equal_To<KEY>, ACE_Null_Mutex>, ATTR> >; +template class ACE_Hash_Map_Manager_Ex<KEY, CACHE_VALUE, ACE_Hash<KEY>, ACE_Equal_To<KEY>, ACE_Null_Mutex>; +template class ACE_Hash_Map_Iterator_Ex<KEY, CACHE_VALUE, ACE_Hash<KEY>, ACE_Equal_To<KEY>, ACE_Null_Mutex>; +template class ACE_Hash_Map_Reverse_Iterator_Ex<KEY, CACHE_VALUE, ACE_Hash<KEY>, ACE_Equal_To<KEY>, ACE_Null_Mutex>; +template class ACE_Hash_Map_Iterator_Base_Ex<KEY, CACHE_VALUE, ACE_Hash<KEY>, ACE_Equal_To<KEY>, ACE_Null_Mutex>; +template class ACE_Hash_Map_Entry<KEY, CACHE_VALUE>; + +template class ACE_Map_Manager<KEY, CACHE_VALUE, ACE_Null_Mutex>; +template class ACE_Map_Iterator_Base<KEY, CACHE_VALUE, ACE_Null_Mutex>; +template class ACE_Map_Iterator<KEY, CACHE_VALUE, ACE_Null_Mutex>; +template class ACE_Map_Reverse_Iterator<KEY, CACHE_VALUE, ACE_Null_Mutex>; +template class ACE_Map_Entry<KEY, CACHE_VALUE>; + +template class ACE_Pair_Caching_Utility<KEY, CACHE_VALUE, HASH_MAP_MANAGER, HASH_MAP_MANAGER::iterator, ATTR>; +template class ACE_Pair_Caching_Utility<KEY, CACHE_VALUE, MAP_MANAGER, MAP_MANAGER::iterator, ATTR>; -template class ACE_Default_Cleanup_Strategy<KEY, ACE_Pair<KEY, ATTR>, ACE_Hash_Map_Manager_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>, ACE_Equal_To<KEY>, ACE_Null_Mutex> >; -template class ACE_Cleanup_Strategy<KEY, ACE_Pair<KEY, ATTR>, ACE_Hash_Map_Manager_Ex<KEY, ACE_Pair<KEY, ATTR>, ACE_Hash<KEY>, ACE_Equal_To<KEY>, ACE_Null_Mutex> >; +template class ACE_LRU_Caching_Strategy<KEY, CACHE_VALUE, HASH_MAP_MANAGER, ATTR, HASH_MAP_CACHING_UTILITY>; +template class ACE_LRU_Caching_Strategy<KEY, CACHE_VALUE, MAP_MANAGER, ATTR, MAP_CACHING_UTILITY>; -template class ACE_Hash_Cache_Map_Manager<KEY, VALUE, ACE_Hash<KEY>, ACE_Equal_To<KEY>, ACE_LRU_Caching_Strategy <KEY, ACE_Pair<VALUE, ATTR>,ACE_Hash_Map_Manager_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>,ACE_Equal_To<KEY>, ACE_Null_Mutex>,ATTR, ACE_Svc_Caching_Strategy_Utility<KEY, ACE_Pair<VALUE, ATTR>,ACE_Hash_Map_Manager_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>,ACE_Equal_To<KEY>, ACE_Null_Mutex>, ACE_Hash_Map_Iterator_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>, ACE_Equal_To<KEY>, ACE_Null_Mutex>,ATTR> >, ATTR>; -template class ACE_Hash_Cache_Map_Manager<KEY, VALUE, ACE_Hash<KEY>, ACE_Equal_To<KEY>, ACE_LFU_Caching_Strategy <KEY, ACE_Pair<VALUE, ATTR>,ACE_Hash_Map_Manager_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>,ACE_Equal_To<KEY>, ACE_Null_Mutex>,ATTR, ACE_Svc_Caching_Strategy_Utility<KEY, ACE_Pair<VALUE, ATTR>,ACE_Hash_Map_Manager_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>,ACE_Equal_To<KEY>, ACE_Null_Mutex>, ACE_Hash_Map_Iterator_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>, ACE_Equal_To<KEY>, ACE_Null_Mutex>,ATTR> >, ATTR>; +template class ACE_Default_Cleanup_Strategy<KEY, ACE_Pair<KEY, ATTR>, HASH_MAP_MANAGER>; +template class ACE_Default_Cleanup_Strategy<KEY, ACE_Pair<KEY, ATTR>, MAP_MANAGER>; -template class ACE_Cache_Map_Manager<KEY, VALUE, ACE_Hash_Map_Manager_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>,ACE_Equal_To<KEY>, ACE_Null_Mutex>,ACE_Hash_Map_Iterator_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>, ACE_Equal_To<KEY>, ACE_Null_Mutex>,ACE_Hash_Map_Reverse_Iterator_Ex<KEY, ACE_Pair<VALUE,ATTR>, ACE_Hash<KEY>, ACE_Equal_To<KEY>, ACE_Null_Mutex>,ACE_LRU_Caching_Strategy <KEY, ACE_Pair<VALUE, ATTR>,ACE_Hash_Map_Manager_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>,ACE_Equal_To<KEY>, ACE_Null_Mutex>,ATTR, ACE_Svc_Caching_Strategy_Utility<KEY, ACE_Pair<VALUE, ATTR>,ACE_Hash_Map_Manager_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>,ACE_Equal_To<KEY>, ACE_Null_Mutex>, ACE_Hash_Map_Iterator_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>, ACE_Equal_To<KEY>, ACE_Null_Mutex>,ATTR> >,ATTR>; -template class ACE_Cache_Map_Manager<KEY, VALUE, ACE_Hash_Map_Manager_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>,ACE_Equal_To<KEY>, ACE_Null_Mutex>,ACE_Hash_Map_Iterator_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>, ACE_Equal_To<KEY>, ACE_Null_Mutex>,ACE_Hash_Map_Reverse_Iterator_Ex<KEY, ACE_Pair<VALUE,ATTR>, ACE_Hash<KEY>, ACE_Equal_To<KEY>, ACE_Null_Mutex>,ACE_LFU_Caching_Strategy <KEY, ACE_Pair<VALUE, ATTR>,ACE_Hash_Map_Manager_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>,ACE_Equal_To<KEY>, ACE_Null_Mutex>,ATTR, ACE_Svc_Caching_Strategy_Utility<KEY, ACE_Pair<VALUE, ATTR>,ACE_Hash_Map_Manager_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>,ACE_Equal_To<KEY>, ACE_Null_Mutex>, ACE_Hash_Map_Iterator_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>, ACE_Equal_To<KEY>, ACE_Null_Mutex>,ATTR> >,ATTR>; +template class ACE_Cleanup_Strategy<KEY, ACE_Pair<KEY, ATTR>, HASH_MAP_MANAGER>; +template class ACE_Cleanup_Strategy<KEY, ACE_Pair<KEY, ATTR>, MAP_MANAGER>; -template class ACE_Cache_Map_Iterator<KEY, VALUE, ACE_Hash_Map_Iterator_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>, ACE_Equal_To<KEY>, ACE_Null_Mutex>,ACE_LRU_Caching_Strategy <KEY, ACE_Pair<VALUE, ATTR>,ACE_Hash_Map_Manager_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>,ACE_Equal_To<KEY>, ACE_Null_Mutex>,ATTR, ACE_Svc_Caching_Strategy_Utility<KEY, ACE_Pair<VALUE, ATTR>,ACE_Hash_Map_Manager_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>,ACE_Equal_To<KEY>, ACE_Null_Mutex>, ACE_Hash_Map_Iterator_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>, ACE_Equal_To<KEY>, ACE_Null_Mutex>,ATTR> >,ATTR>; -template class ACE_Cache_Map_Iterator<KEY, VALUE, ACE_Hash_Map_Iterator_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>, ACE_Equal_To<KEY>, ACE_Null_Mutex>,ACE_LFU_Caching_Strategy <KEY, ACE_Pair<VALUE, ATTR>,ACE_Hash_Map_Manager_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>,ACE_Equal_To<KEY>, ACE_Null_Mutex>,ATTR, ACE_Svc_Caching_Strategy_Utility<KEY, ACE_Pair<VALUE, ATTR>,ACE_Hash_Map_Manager_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>,ACE_Equal_To<KEY>, ACE_Null_Mutex>, ACE_Hash_Map_Iterator_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>, ACE_Equal_To<KEY>, ACE_Null_Mutex>,ATTR> >,ATTR>; +template class ACE_Cache_Map_Manager<KEY, VALUE, MAP_MANAGER, MAP_MANAGER::iterator, MAP_MANAGER::reverse_iterator, MAP_LRU, ATTR>; +template class ACE_Cache_Map_Iterator<KEY, VALUE, MAP_MANAGER::iterator, MAP_LRU, ATTR>; +template class ACE_Cache_Map_Reverse_Iterator<KEY, VALUE, MAP_MANAGER::reverse_iterator, MAP_LRU, ATTR>; -template class ACE_Cache_Map_Reverse_Iterator<KEY, VALUE, ACE_Hash_Map_Reverse_Iterator_Ex<KEY, ACE_Pair<VALUE,ATTR>, ACE_Hash<KEY>, ACE_Equal_To<KEY>, ACE_Null_Mutex>,ACE_LRU_Caching_Strategy <KEY, ACE_Pair<VALUE, ATTR>,ACE_Hash_Map_Manager_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>,ACE_Equal_To<KEY>, ACE_Null_Mutex>,ATTR, ACE_Svc_Caching_Strategy_Utility<KEY, ACE_Pair<VALUE, ATTR>,ACE_Hash_Map_Manager_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>,ACE_Equal_To<KEY>, ACE_Null_Mutex>, ACE_Hash_Map_Iterator_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>, ACE_Equal_To<KEY>, ACE_Null_Mutex>,ATTR> >,ATTR>; -template class ACE_Cache_Map_Reverse_Iterator<KEY, VALUE, ACE_Hash_Map_Reverse_Iterator_Ex<KEY, ACE_Pair<VALUE,ATTR>, ACE_Hash<KEY>, ACE_Equal_To<KEY>, ACE_Null_Mutex>,ACE_LFU_Caching_Strategy <KEY, ACE_Pair<VALUE, ATTR>,ACE_Hash_Map_Manager_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>,ACE_Equal_To<KEY>, ACE_Null_Mutex>,ATTR, ACE_Svc_Caching_Strategy_Utility<KEY, ACE_Pair<VALUE, ATTR>,ACE_Hash_Map_Manager_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>,ACE_Equal_To<KEY>, ACE_Null_Mutex>, ACE_Hash_Map_Iterator_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>, ACE_Equal_To<KEY>, ACE_Null_Mutex>,ATTR> >,ATTR>; +template class ACE_Hash_Cache_Map_Manager<KEY, VALUE, ACE_Hash<KEY>, ACE_Equal_To<KEY>, HASH_MAP_LRU, ATTR>; #elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) + #pragma instantiate ACE_Pair<VALUE, ATTR> #pragma instantiate ACE_Reference_Pair<KEY, VALUE> #pragma instantiate ACE_Equal_To<KEY> -#pragma instantiate ACE_Hash_Map_Manager_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>,ACE_Equal_To<KEY>, ACE_Null_Mutex> -#pragma instantiate ACE_Hash_Map_Iterator_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>, ACE_Equal_To<KEY>, ACE_Null_Mutex> -#pragma instantiate ACE_Hash_Map_Reverse_Iterator_Ex<KEY, ACE_Pair<VALUE,ATTR>, ACE_Hash<KEY>, ACE_Equal_To<KEY>, ACE_Null_Mutex> -#pragma instantiate ACE_Hash_Map_Iterator_Base_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>, ACE_Equal_To<KEY>, ACE_Null_Mutex> -#pragma instantiate ACE_Hash_Map_Manager<KEY, ACE_Pair<VALUE, ATTR>, ACE_Null_Mutex> -#pragma instantiate ACE_Hash_Map_Iterator<KEY, ACE_Pair<VALUE, ATTR>, ACE_Null_Mutex> -#pragma instantiate ACE_Hash_Map_Reverse_Iterator<KEY, ACE_Pair<VALUE, ATTR>, ACE_Null_Mutex> -#pragma instantiate ACE_Hash_Map_Entry<KEY, ACE_Pair<VALUE, ATTR> > -#pragma instantiate ACE_Caching_Strategy_Utility<KEY, ACE_Pair<VALUE, ATTR>,ACE_Hash_Map_Manager_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>,ACE_Equal_To<KEY>, ACE_Null_Mutex>, ATTR> -#pragma instantiate ACE_Svc_Caching_Strategy_Utility<KEY, ACE_Pair<VALUE, ATTR>,ACE_Hash_Map_Manager_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>,ACE_Equal_To<KEY>, ACE_Null_Mutex>, ACE_Hash_Map_Iterator_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>, ACE_Equal_To<KEY>, ACE_Null_Mutex>,ATTR> -#pragma instantiate ACE_LRU_Caching_Strategy <KEY, ACE_Pair<VALUE, ATTR>,ACE_Hash_Map_Manager_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>,ACE_Equal_To<KEY>, ACE_Null_Mutex>,ATTR, ACE_Svc_Caching_Strategy_Utility<KEY, ACE_Pair<VALUE, ATTR>,ACE_Hash_Map_Manager_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>,ACE_Equal_To<KEY>, ACE_Null_Mutex>, ACE_Hash_Map_Iterator_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>, ACE_Equal_To<KEY>, ACE_Null_Mutex>,ATTR> > -#pragma instantiate ACE_FIFO_Caching_Strategy <KEY, ACE_Pair<VALUE, ATTR>,ACE_Hash_Map_Manager_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>,ACE_Equal_To<KEY>, ACE_Null_Mutex>,ATTR, ACE_Svc_Caching_Strategy_Utility<KEY, ACE_Pair<VALUE, ATTR>,ACE_Hash_Map_Manager_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>,ACE_Equal_To<KEY>, ACE_Null_Mutex>, ACE_Hash_Map_Iterator_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>, ACE_Equal_To<KEY>, ACE_Null_Mutex>,ATTR> > -#pragma instantiate ACE_LFU_Caching_Strategy <KEY, ACE_Pair<VALUE,ATTR>,ACE_Hash_Map_Manager_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>,ACE_Equal_To<KEY>, ACE_Null_Mutex>,ATTR, ACE_Svc_Caching_Strategy_Utility<KEY, ACE_Pair<VALUE, ATTR>,ACE_Hash_Map_Manager_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>,ACE_Equal_To<KEY>, ACE_Null_Mutex>, ACE_Hash_Map_Iterator_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>, ACE_Equal_To<KEY>, ACE_Null_Mutex>, ATTR> > - -#pragma instantiate ACE_Default_Cleanup_Strategy<KEY, ACE_Pair<KEY, ATTR>, ACE_Hash_Map_Manager_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>, ACE_Equal_To<KEY>, ACE_Null_Mutex> > -#pragma instantiate ACE_Cleanup_Strategy<KEY, ACE_Pair<KEY, ATTR>, ACE_Hash_Map_Manager_Ex<KEY, ACE_Pair<KEY, ATTR>, ACE_Hash<KEY>, ACE_Equal_To<KEY>, ACE_Null_Mutex> > - -#pragma instantiate ACE_Hash_Cache_Map_Manager<KEY, VALUE, ACE_Hash<KEY>, ACE_Equal_To<KEY>, ACE_LRU_Caching_Strategy <KEY, ACE_Pair<VALUE, ATTR>,ACE_Hash_Map_Manager_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>,ACE_Equal_To<KEY>, ACE_Null_Mutex>,ATTR, ACE_Svc_Caching_Strategy_Utility<KEY, ACE_Pair<VALUE, ATTR>,ACE_Hash_Map_Manager_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>,ACE_Equal_To<KEY>, ACE_Null_Mutex>, ACE_Hash_Map_Iterator_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>, ACE_Equal_To<KEY>, ACE_Null_Mutex>,ATTR> >, ATTR> -#pragma instantiate ACE_Hash_Cache_Map_Manager<KEY, VALUE, ACE_Hash<KEY>, ACE_Equal_To<KEY>, ACE_LFU_Caching_Strategy <KEY, ACE_Pair<VALUE, ATTR>,ACE_Hash_Map_Manager_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>,ACE_Equal_To<KEY>, ACE_Null_Mutex>,ATTR, ACE_Svc_Caching_Strategy_Utility<KEY, ACE_Pair<VALUE, ATTR>,ACE_Hash_Map_Manager_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>,ACE_Equal_To<KEY>, ACE_Null_Mutex>, ACE_Hash_Map_Iterator_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>, ACE_Equal_To<KEY>, ACE_Null_Mutex>,ATTR> >, ATTR> - -#pragma instantiate ACE_Cache_Map_Manager<KEY, VALUE, ACE_Hash_Map_Manager_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>,ACE_Equal_To<KEY>, ACE_Null_Mutex>,ACE_Hash_Map_Iterator_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>, ACE_Equal_To<KEY>, ACE_Null_Mutex>,ACE_Hash_Map_Reverse_Iterator_Ex<KEY, ACE_Pair<VALUE,ATTR>, ACE_Hash<KEY>, ACE_Equal_To<KEY>, ACE_Null_Mutex>,ACE_LRU_Caching_Strategy <KEY, ACE_Pair<VALUE, ATTR>,ACE_Hash_Map_Manager_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>,ACE_Equal_To<KEY>, ACE_Null_Mutex>,ATTR, ACE_Svc_Caching_Strategy_Utility<KEY, ACE_Pair<VALUE, ATTR>,ACE_Hash_Map_Manager_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>,ACE_Equal_To<KEY>, ACE_Null_Mutex>, ACE_Hash_Map_Iterator_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>, ACE_Equal_To<KEY>, ACE_Null_Mutex>,ATTR> >,ATTR> -#pragma instantiate ACE_Cache_Map_Manager<KEY, VALUE, ACE_Hash_Map_Manager_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>,ACE_Equal_To<KEY>, ACE_Null_Mutex>,ACE_Hash_Map_Iterator_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>, ACE_Equal_To<KEY>, ACE_Null_Mutex>,ACE_Hash_Map_Reverse_Iterator_Ex<KEY, ACE_Pair<VALUE,ATTR>, ACE_Hash<KEY>, ACE_Equal_To<KEY>, ACE_Null_Mutex>,ACE_LFU_Caching_Strategy <KEY, ACE_Pair<VALUE, ATTR>,ACE_Hash_Map_Manager_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>,ACE_Equal_To<KEY>, ACE_Null_Mutex>,ATTR, ACE_Svc_Caching_Strategy_Utility<KEY, ACE_Pair<VALUE, ATTR>,ACE_Hash_Map_Manager_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>,ACE_Equal_To<KEY>, ACE_Null_Mutex>, ACE_Hash_Map_Iterator_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>, ACE_Equal_To<KEY>, ACE_Null_Mutex>,ATTR> >,ATTR> - -#pragma instantiate ACE_Cache_Map_Iterator<KEY, VALUE, ACE_Hash_Map_Iterator_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>, ACE_Equal_To<KEY>, ACE_Null_Mutex>,ACE_LRU_Caching_Strategy <KEY, ACE_Pair<VALUE, ATTR>,ACE_Hash_Map_Manager_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>,ACE_Equal_To<KEY>, ACE_Null_Mutex>,ATTR, ACE_Svc_Caching_Strategy_Utility<KEY, ACE_Pair<VALUE, ATTR>,ACE_Hash_Map_Manager_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>,ACE_Equal_To<KEY>, ACE_Null_Mutex>, ACE_Hash_Map_Iterator_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>, ACE_Equal_To<KEY>, ACE_Null_Mutex>,ATTR> >,ATTR> -#pragma instantiate ACE_Cache_Map_Iterator<KEY, VALUE, ACE_Hash_Map_Iterator_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>, ACE_Equal_To<KEY>, ACE_Null_Mutex>,ACE_LFU_Caching_Strategy <KEY, ACE_Pair<VALUE, ATTR>,ACE_Hash_Map_Manager_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>,ACE_Equal_To<KEY>, ACE_Null_Mutex>,ATTR, ACE_Svc_Caching_Strategy_Utility<KEY, ACE_Pair<VALUE, ATTR>,ACE_Hash_Map_Manager_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>,ACE_Equal_To<KEY>, ACE_Null_Mutex>, ACE_Hash_Map_Iterator_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>, ACE_Equal_To<KEY>, ACE_Null_Mutex>,ATTR> >,ATTR> - -#pragma instantiate ACE_Cache_Map_Reverse_Iterator<KEY, VALUE, ACE_Hash_Map_Reverse_Iterator_Ex<KEY, ACE_Pair<VALUE,ATTR>, ACE_Hash<KEY>, ACE_Equal_To<KEY>, ACE_Null_Mutex>,ACE_LRU_Caching_Strategy <KEY, ACE_Pair<VALUE, ATTR>,ACE_Hash_Map_Manager_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>,ACE_Equal_To<KEY>, ACE_Null_Mutex>,ATTR, ACE_Svc_Caching_Strategy_Utility<KEY, ACE_Pair<VALUE, ATTR>,ACE_Hash_Map_Manager_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>,ACE_Equal_To<KEY>, ACE_Null_Mutex>, ACE_Hash_Map_Iterator_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>, ACE_Equal_To<KEY>, ACE_Null_Mutex>,ATTR> >,ATTR> -#pragma instantiate ACE_Cache_Map_Reverse_Iterator<KEY, VALUE, ACE_Hash_Map_Reverse_Iterator_Ex<KEY, ACE_Pair<VALUE,ATTR>, ACE_Hash<KEY>, ACE_Equal_To<KEY>, ACE_Null_Mutex>,ACE_LFU_Caching_Strategy <KEY, ACE_Pair<VALUE, ATTR>,ACE_Hash_Map_Manager_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>,ACE_Equal_To<KEY>, ACE_Null_Mutex>,ATTR, ACE_Svc_Caching_Strategy_Utility<KEY, ACE_Pair<VALUE, ATTR>,ACE_Hash_Map_Manager_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>,ACE_Equal_To<KEY>, ACE_Null_Mutex>, ACE_Hash_Map_Iterator_Ex<KEY, ACE_Pair<VALUE, ATTR>, ACE_Hash<KEY>, ACE_Equal_To<KEY>, ACE_Null_Mutex>,ATTR> >,ATTR> +#pragma instantiate ACE_Hash_Map_Manager_Ex<KEY, CACHE_VALUE, ACE_Hash<KEY>, ACE_Equal_To<KEY>, ACE_Null_Mutex> +#pragma instantiate ACE_Hash_Map_Iterator_Ex<KEY, CACHE_VALUE, ACE_Hash<KEY>, ACE_Equal_To<KEY>, ACE_Null_Mutex> +#pragma instantiate ACE_Hash_Map_Reverse_Iterator_Ex<KEY, CACHE_VALUE, ACE_Hash<KEY>, ACE_Equal_To<KEY>, ACE_Null_Mutex> +#pragma instantiate ACE_Hash_Map_Iterator_Base_Ex<KEY, CACHE_VALUE, ACE_Hash<KEY>, ACE_Equal_To<KEY>, ACE_Null_Mutex> +#pragma instantiate ACE_Hash_Map_Entry<KEY, CACHE_VALUE> + +#pragma instantiate ACE_Map_Manager<KEY, CACHE_VALUE, ACE_Null_Mutex> +#pragma instantiate ACE_Map_Iterator_Base<KEY, CACHE_VALUE, ACE_Null_Mutex> +#pragma instantiate ACE_Map_Iterator<KEY, CACHE_VALUE, ACE_Null_Mutex> +#pragma instantiate ACE_Map_Reverse_Iterator<KEY, CACHE_VALUE, ACE_Null_Mutex> +#pragma instantiate ACE_Map_Entry<KEY, CACHE_VALUE> + +#pragma instantiate ACE_Pair_Caching_Utility<KEY, CACHE_VALUE, HASH_MAP_MANAGER, HASH_MAP_MANAGER::iterator, ATTR> +#pragma instantiate ACE_Pair_Caching_Utility<KEY, CACHE_VALUE, MAP_MANAGER, MAP_MANAGER::iterator, ATTR> + +#pragma instantiate ACE_LRU_Caching_Strategy<KEY, CACHE_VALUE, HASH_MAP_MANAGER, ATTR, HASH_MAP_CACHING_UTILITY> +#pragma instantiate ACE_LRU_Caching_Strategy<KEY, CACHE_VALUE, MAP_MANAGER, ATTR, MAP_CACHING_UTILITY> + +#pragma instantiate ACE_Default_Cleanup_Strategy<KEY, ACE_Pair<KEY, ATTR>, HASH_MAP_MANAGER> +#pragma instantiate ACE_Default_Cleanup_Strategy<KEY, ACE_Pair<KEY, ATTR>, MAP_MANAGER> + +#pragma instantiate ACE_Cleanup_Strategy<KEY, ACE_Pair<KEY, ATTR>, HASH_MAP_MANAGER> +#pragma instantiate ACE_Cleanup_Strategy<KEY, ACE_Pair<KEY, ATTR>, MAP_MANAGER> + +#pragma instantiate ACE_Cache_Map_Manager<KEY, VALUE, MAP_MANAGER, MAP_MANAGER::iterator, MAP_MANAGER::reverse_iterator, MAP_LRU, ATTR> +#pragma instantiate ACE_Cache_Map_Iterator<KEY, VALUE, MAP_MANAGER::iterator, MAP_LRU, ATTR> +#pragma instantiate ACE_Cache_Map_Reverse_Iterator<KEY, VALUE, MAP_MANAGER::reverse_iterator, MAP_LRU, ATTR> + +#pragma instantiate ACE_Hash_Cache_Map_Manager<KEY, VALUE, ACE_Hash<KEY>, ACE_Equal_To<KEY>, HASH_MAP_LRU, ATTR> #endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/tests/tests.dsw b/tests/tests.dsw index 48f082785e8..f2cf4c7b1b6 100644 --- a/tests/tests.dsw +++ b/tests/tests.dsw @@ -3,7 +3,7 @@ Microsoft Developer Studio Workspace File, Format Version 6.00 ###############################################################################
-Project: "ACE_Init_Test"=".\ACE_Init_Test.dsp" - Package Owner=<4>
+Project: "ACE_Init_Test"=.\ACE_Init_Test.dsp - Package Owner=<4>
Package=<5>
{{{
@@ -15,7 +15,7 @@ Package=<4> ###############################################################################
-Project: "Atomic_Op_Test"=".\Atomic_Op_Test.dsp" - Package Owner=<4>
+Project: "Atomic_Op_Test"=.\Atomic_Op_Test.dsp - Package Owner=<4>
Package=<5>
{{{
@@ -27,7 +27,7 @@ Package=<4> ###############################################################################
-Project: "Barrier_Test"=".\Barrier_Test.dsp" - Package Owner=<4>
+Project: "Barrier_Test"=.\Barrier_Test.dsp - Package Owner=<4>
Package=<5>
{{{
@@ -39,7 +39,7 @@ Package=<4> ###############################################################################
-Project: "Basic_Types_Test"=".\Basic_Types_Test.dsp" - Package Owner=<4>
+Project: "Basic_Types_Test"=.\Basic_Types_Test.dsp - Package Owner=<4>
Package=<5>
{{{
@@ -51,7 +51,7 @@ Package=<4> ###############################################################################
-Project: "Buffer_Stream_Test"=".\Buffer_Stream_Test.dsp" - Package Owner=<4>
+Project: "Buffer_Stream_Test"=.\Buffer_Stream_Test.dsp - Package Owner=<4>
Package=<5>
{{{
@@ -63,7 +63,7 @@ Package=<4> ###############################################################################
-Project: "CDR_Test"=".\CDR_Test.dsp" - Package Owner=<4>
+Project: "CDR_Test"=.\CDR_Test.dsp - Package Owner=<4>
Package=<5>
{{{
@@ -75,7 +75,7 @@ Package=<4> ###############################################################################
-Project: "Collection_Test"=".\Collection_Test.dsp" - Package Owner=<4>
+Project: "Cache_Map_Manager_Test"=.\Cache_Map_Manager_Test.dsp - Package Owner=<4>
Package=<5>
{{{
@@ -87,7 +87,7 @@ Package=<4> ###############################################################################
-Project: "Conn_Test"=".\Conn_Test.dsp" - Package Owner=<4>
+Project: "Collection_Test"=.\Collection_Test.dsp - Package Owner=<4>
Package=<5>
{{{
@@ -99,7 +99,7 @@ Package=<4> ###############################################################################
-Project: "DLL_Test"=".\DLL_Test.dsp" - Package Owner=<4>
+Project: "Conn_Test"=.\Conn_Test.dsp - Package Owner=<4>
Package=<5>
{{{
@@ -111,7 +111,7 @@ Package=<4> ###############################################################################
-Project: "DLList_Test"=".\DLList_Test.dsp" - Package Owner=<4>
+Project: "DLL_Test"=.\DLL_Test.dsp - Package Owner=<4>
Package=<5>
{{{
@@ -123,7 +123,7 @@ Package=<4> ###############################################################################
-Project: "Dynamic_Priority_Test"=".\Dynamic_Priority_Test.dsp" - Package Owner=<4>
+Project: "DLList_Test"=.\DLList_Test.dsp - Package Owner=<4>
Package=<5>
{{{
@@ -135,7 +135,7 @@ Package=<4> ###############################################################################
-Project: "Enum_Interfaces_Test"=".\Enum_Interfaces_Test.dsp" - Package Owner=<4>
+Project: "Dynamic_Priority_Test"=.\Dynamic_Priority_Test.dsp - Package Owner=<4>
Package=<5>
{{{
@@ -147,7 +147,7 @@ Package=<4> ###############################################################################
-Project: "Env_Value_Test"=".\Env_Value_Test.dsp" - Package Owner=<4>
+Project: "Enum_Interfaces_Test"=.\Enum_Interfaces_Test.dsp - Package Owner=<4>
Package=<5>
{{{
@@ -159,7 +159,7 @@ Package=<4> ###############################################################################
-Project: "Future_Test"=".\Future_Test.dsp" - Package Owner=<4>
+Project: "Env_Value_Test"=.\Env_Value_Test.dsp - Package Owner=<4>
Package=<5>
{{{
@@ -171,7 +171,7 @@ Package=<4> ###############################################################################
-Project: "Handle_Set_Test"=".\Handle_Set_Test.dsp" - Package Owner=<4>
+Project: "Future_Test"=.\Future_Test.dsp - Package Owner=<4>
Package=<5>
{{{
@@ -183,7 +183,7 @@ Package=<4> ###############################################################################
-Project: "Hash_Map_Manager_Test"=".\Hash_Map_Manager_Test.dsp" - Package Owner=<4>
+Project: "Handle_Set_Test"=.\Handle_Set_Test.dsp - Package Owner=<4>
Package=<5>
{{{
@@ -195,7 +195,7 @@ Package=<4> ###############################################################################
-Project: "High_Res_Timer_Test"=".\High_Res_Timer_Test.dsp" - Package Owner=<4>
+Project: "Hash_Map_Manager_Test"=.\Hash_Map_Manager_Test.dsp - Package Owner=<4>
Package=<5>
{{{
@@ -207,7 +207,7 @@ Package=<4> ###############################################################################
-Project: "IOStream_Test"=".\IOStream_Test.dsp" - Package Owner=<4>
+Project: "High_Res_Timer_Test"=.\High_Res_Timer_Test.dsp - Package Owner=<4>
Package=<5>
{{{
@@ -219,7 +219,7 @@ Package=<4> ###############################################################################
-Project: "MM_Shared_Memory_Test"=".\MM_Shared_Memory_Test.dsp" - Package Owner=<4>
+Project: "IOStream_Test"=.\IOStream_Test.dsp - Package Owner=<4>
Package=<5>
{{{
@@ -231,7 +231,7 @@ Package=<4> ###############################################################################
-Project: "MT_Reactor_Timer_Test"=".\MT_Reactor_Timer_Test.dsp" - Package Owner=<4>
+Project: "MM_Shared_Memory_Test"=.\MM_Shared_Memory_Test.dsp - Package Owner=<4>
Package=<5>
{{{
@@ -243,7 +243,7 @@ Package=<4> ###############################################################################
-Project: "MT_SOCK_Test"=".\MT_SOCK_Test.dsp" - Package Owner=<4>
+Project: "MT_Reactor_Timer_Test"=.\MT_Reactor_Timer_Test.dsp - Package Owner=<4>
Package=<5>
{{{
@@ -255,7 +255,7 @@ Package=<4> ###############################################################################
-Project: "Map_Manager_Test"=".\Map_Manager_Test.dsp" - Package Owner=<4>
+Project: "MT_SOCK_Test"=.\MT_SOCK_Test.dsp - Package Owner=<4>
Package=<5>
{{{
@@ -267,7 +267,7 @@ Package=<4> ###############################################################################
-Project: "Map_Test"=".\Map_Test.dsp" - Package Owner=<4>
+Project: "Map_Manager_Test"=.\Map_Manager_Test.dsp - Package Owner=<4>
Package=<5>
{{{
@@ -279,7 +279,7 @@ Package=<4> ###############################################################################
-Project: "Mem_Map_Test"=".\Mem_Map_Test.dsp" - Package Owner=<4>
+Project: "Map_Test"=.\Map_Test.dsp - Package Owner=<4>
Package=<5>
{{{
@@ -291,7 +291,7 @@ Package=<4> ###############################################################################
-Project: "Message_Block_Test"=".\Message_Block_Test.dsp" - Package Owner=<4>
+Project: "Mem_Map_Test"=.\Mem_Map_Test.dsp - Package Owner=<4>
Package=<5>
{{{
@@ -303,7 +303,7 @@ Package=<4> ###############################################################################
-Project: "Message_Queue_Notifications_Test"=".\Message_Queue_Notifications_Test.dsp" - Package Owner=<4>
+Project: "Message_Block_Test"=.\Message_Block_Test.dsp - Package Owner=<4>
Package=<5>
{{{
@@ -315,7 +315,7 @@ Package=<4> ###############################################################################
-Project: "Message_Queue_Test"=".\Message_Queue_Test.dsp" - Package Owner=<4>
+Project: "Message_Queue_Notifications_Test"=.\Message_Queue_Notifications_Test.dsp - Package Owner=<4>
Package=<5>
{{{
@@ -327,7 +327,7 @@ Package=<4> ###############################################################################
-Project: "Naming_Test"=".\Naming_Test.dsp" - Package Owner=<4>
+Project: "Message_Queue_Test"=.\Message_Queue_Test.dsp - Package Owner=<4>
Package=<5>
{{{
@@ -339,7 +339,7 @@ Package=<4> ###############################################################################
-Project: "New_Fail_Test"=".\New_Fail_Test.dsp" - Package Owner=<4>
+Project: "Naming_Test"=.\Naming_Test.dsp - Package Owner=<4>
Package=<5>
{{{
@@ -351,7 +351,7 @@ Package=<4> ###############################################################################
-Project: "Notify_Performance_Test"=".\Notify_Performance_Test.dsp" - Package Owner=<4>
+Project: "New_Fail_Test"=.\New_Fail_Test.dsp - Package Owner=<4>
Package=<5>
{{{
@@ -363,7 +363,7 @@ Package=<4> ###############################################################################
-Project: "OrdMultiSet_Test"=".\OrdMultiSet_Test.dsp" - Package Owner=<4>
+Project: "Notify_Performance_Test"=.\Notify_Performance_Test.dsp - Package Owner=<4>
Package=<5>
{{{
@@ -375,7 +375,7 @@ Package=<4> ###############################################################################
-Project: "Pipe_Test"=".\Pipe_Test.dsp" - Package Owner=<4>
+Project: "OrdMultiSet_Test"=.\OrdMultiSet_Test.dsp - Package Owner=<4>
Package=<5>
{{{
@@ -387,7 +387,7 @@ Package=<4> ###############################################################################
-Project: "Priority_Buffer_Test"=".\Priority_Buffer_Test.dsp" - Package Owner=<4>
+Project: "Pipe_Test"=.\Pipe_Test.dsp - Package Owner=<4>
Package=<5>
{{{
@@ -399,7 +399,7 @@ Package=<4> ###############################################################################
-Project: "Priority_Reactor_Test"=".\Priority_Reactor_Test.dsp" - Package Owner=<4>
+Project: "Priority_Buffer_Test"=.\Priority_Buffer_Test.dsp - Package Owner=<4>
Package=<5>
{{{
@@ -411,7 +411,7 @@ Package=<4> ###############################################################################
-Project: "Priority_Task_Test"=".\Priority_Task_Test.dsp" - Package Owner=<4>
+Project: "Priority_Reactor_Test"=.\Priority_Reactor_Test.dsp - Package Owner=<4>
Package=<5>
{{{
@@ -423,7 +423,7 @@ Package=<4> ###############################################################################
-Project: "Process_Mutex_Test"=".\Process_Mutex_Test.dsp" - Package Owner=<4>
+Project: "Priority_Task_Test"=.\Priority_Task_Test.dsp - Package Owner=<4>
Package=<5>
{{{
@@ -435,7 +435,7 @@ Package=<4> ###############################################################################
-Project: "Process_Strategy_Test"=".\Process_Strategy_Test.dsp" - Package Owner=<4>
+Project: "Process_Mutex_Test"=.\Process_Mutex_Test.dsp - Package Owner=<4>
Package=<5>
{{{
@@ -447,7 +447,7 @@ Package=<4> ###############################################################################
-Project: "RB_Tree_Test"=".\RB_Tree_Test.dsp" - Package Owner=<4>
+Project: "Process_Strategy_Test"=.\Process_Strategy_Test.dsp - Package Owner=<4>
Package=<5>
{{{
@@ -459,7 +459,7 @@ Package=<4> ###############################################################################
-Project: "Reactor_Exceptions_Test"=".\Reactor_Exceptions_Test.dsp" - Package Owner=<4>
+Project: "RB_Tree_Test"=.\RB_Tree_Test.dsp - Package Owner=<4>
Package=<5>
{{{
@@ -471,7 +471,7 @@ Package=<4> ###############################################################################
-Project: "Reactor_Notify_Test"=".\Reactor_Notify_Test.dsp" - Package Owner=<4>
+Project: "Reactor_Exceptions_Test"=.\Reactor_Exceptions_Test.dsp - Package Owner=<4>
Package=<5>
{{{
@@ -483,7 +483,7 @@ Package=<4> ###############################################################################
-Project: "Reactor_Performance_Test"=".\Reactor_Performance_Test.dsp" - Package Owner=<4>
+Project: "Reactor_Notify_Test"=.\Reactor_Notify_Test.dsp - Package Owner=<4>
Package=<5>
{{{
@@ -495,7 +495,7 @@ Package=<4> ###############################################################################
-Project: "Reactor_Timer_Test"=".\Reactor_Timer_Test.dsp" - Package Owner=<4>
+Project: "Reactor_Performance_Test"=.\Reactor_Performance_Test.dsp - Package Owner=<4>
Package=<5>
{{{
@@ -507,7 +507,7 @@ Package=<4> ###############################################################################
-Project: "Reactors_Test"=".\Reactors_Test.dsp" - Package Owner=<4>
+Project: "Reactor_Timer_Test"=.\Reactor_Timer_Test.dsp - Package Owner=<4>
Package=<5>
{{{
@@ -519,7 +519,7 @@ Package=<4> ###############################################################################
-Project: "Reader_Writer_Test"=".\Reader_Writer_Test.dsp" - Package Owner=<4>
+Project: "Reactors_Test"=.\Reactors_Test.dsp - Package Owner=<4>
Package=<5>
{{{
@@ -531,7 +531,7 @@ Package=<4> ###############################################################################
-Project: "Recursive_Mutex_Test"=".\Recursive_Mutex_Test.dsp" - Package Owner=<4>
+Project: "Reader_Writer_Test"=.\Reader_Writer_Test.dsp - Package Owner=<4>
Package=<5>
{{{
@@ -543,7 +543,7 @@ Package=<4> ###############################################################################
-Project: "Reverse_Lock_Test"=".\Reverse_Lock_Test.dsp" - Package Owner=<4>
+Project: "Recursive_Mutex_Test"=.\Recursive_Mutex_Test.dsp - Package Owner=<4>
Package=<5>
{{{
@@ -555,7 +555,7 @@ Package=<4> ###############################################################################
-Project: "SOCK_Connector_Test"=".\SOCK_Connector_Test.dsp" - Package Owner=<4>
+Project: "Reverse_Lock_Test"=.\Reverse_Lock_Test.dsp - Package Owner=<4>
Package=<5>
{{{
@@ -567,7 +567,7 @@ Package=<4> ###############################################################################
-Project: "SOCK_Send_Recv_Test"=".\SOCK_Send_Recv_Test.dsp" - Package Owner=<4>
+Project: "SOCK_Connector_Test"=.\SOCK_Connector_Test.dsp - Package Owner=<4>
Package=<5>
{{{
@@ -579,7 +579,7 @@ Package=<4> ###############################################################################
-Project: "SOCK_Test"=".\SOCK_Test.dsp" - Package Owner=<4>
+Project: "SOCK_Send_Recv_Test"=.\SOCK_Send_Recv_Test.dsp - Package Owner=<4>
Package=<5>
{{{
@@ -591,7 +591,7 @@ Package=<4> ###############################################################################
-Project: "SPIPE_Test"=".\SPIPE_Test.dsp" - Package Owner=<4>
+Project: "SOCK_Test"=.\SOCK_Test.dsp - Package Owner=<4>
Package=<5>
{{{
@@ -603,7 +603,7 @@ Package=<4> ###############################################################################
-Project: "SString_Test"=".\SString_Test.dsp" - Package Owner=<4>
+Project: "SPIPE_Test"=.\SPIPE_Test.dsp - Package Owner=<4>
Package=<5>
{{{
@@ -615,7 +615,7 @@ Package=<4> ###############################################################################
-Project: "SV_Shared_Memory_Test"=".\SV_Shared_Memory_Test.dsp" - Package Owner=<4>
+Project: "SString_Test"=.\SString_Test.dsp - Package Owner=<4>
Package=<5>
{{{
@@ -627,7 +627,7 @@ Package=<4> ###############################################################################
-Project: "Semaphore_Test"=".\Semaphore_Test.dsp" - Package Owner=<4>
+Project: "SV_Shared_Memory_Test"=.\SV_Shared_Memory_Test.dsp - Package Owner=<4>
Package=<5>
{{{
@@ -639,7 +639,7 @@ Package=<4> ###############################################################################
-Project: "Service_Config_Test"=".\Service_Config_Test.dsp" - Package Owner=<4>
+Project: "Semaphore_Test"=.\Semaphore_Test.dsp - Package Owner=<4>
Package=<5>
{{{
@@ -651,7 +651,7 @@ Package=<4> ###############################################################################
-Project: "Sigset_Ops_Test"=".\Sigset_Ops_Test.dsp" - Package Owner=<4>
+Project: "Service_Config_Test"=.\Service_Config_Test.dsp - Package Owner=<4>
Package=<5>
{{{
@@ -663,7 +663,7 @@ Package=<4> ###############################################################################
-Project: "Simple_Message_Block_Test"=".\Simple_Message_Block_Test.dsp" - Package Owner=<4>
+Project: "Sigset_Ops_Test"=.\Sigset_Ops_Test.dsp - Package Owner=<4>
Package=<5>
{{{
@@ -675,7 +675,7 @@ Package=<4> ###############################################################################
-Project: "Svc_Handler_Test"=".\Svc_Handler_Test.dsp" - Package Owner=<4>
+Project: "Simple_Message_Block_Test"=.\Simple_Message_Block_Test.dsp - Package Owner=<4>
Package=<5>
{{{
@@ -687,7 +687,7 @@ Package=<4> ###############################################################################
-Project: "TSS_Test"=".\TSS_Test.dsp" - Package Owner=<4>
+Project: "Svc_Handler_Test"=.\Svc_Handler_Test.dsp - Package Owner=<4>
Package=<5>
{{{
@@ -699,7 +699,7 @@ Package=<4> ###############################################################################
-Project: "Task_Test"=".\Task_Test.dsp" - Package Owner=<4>
+Project: "TSS_Test"=.\TSS_Test.dsp - Package Owner=<4>
Package=<5>
{{{
@@ -711,7 +711,7 @@ Package=<4> ###############################################################################
-Project: "Thread_Manager_Test"=".\Thread_Manager_Test.dsp" - Package Owner=<4>
+Project: "Task_Test"=.\Task_Test.dsp - Package Owner=<4>
Package=<5>
{{{
@@ -723,7 +723,7 @@ Package=<4> ###############################################################################
-Project: "Thread_Mutex_Test"=".\Thread_Mutex_Test.dsp" - Package Owner=<4>
+Project: "Thread_Manager_Test"=.\Thread_Manager_Test.dsp - Package Owner=<4>
Package=<5>
{{{
@@ -735,7 +735,7 @@ Package=<4> ###############################################################################
-Project: "Thread_Pool_Reactor_Test"=".\Thread_Pool_Reactor_Test.dsp" - Package Owner=<4>
+Project: "Thread_Mutex_Test"=.\Thread_Mutex_Test.dsp - Package Owner=<4>
Package=<5>
{{{
@@ -747,7 +747,7 @@ Package=<4> ###############################################################################
-Project: "Thread_Pool_Test"=".\Thread_Pool_Test.dsp" - Package Owner=<4>
+Project: "Thread_Pool_Reactor_Test"=.\Thread_Pool_Reactor_Test.dsp - Package Owner=<4>
Package=<5>
{{{
@@ -759,7 +759,7 @@ Package=<4> ###############################################################################
-Project: "Time_Service_Test"=".\Time_Service_Test.dsp" - Package Owner=<4>
+Project: "Thread_Pool_Test"=.\Thread_Pool_Test.dsp - Package Owner=<4>
Package=<5>
{{{
@@ -771,7 +771,7 @@ Package=<4> ###############################################################################
-Project: "Time_Value_Test"=".\Time_Value_Test.dsp" - Package Owner=<4>
+Project: "Time_Service_Test"=.\Time_Service_Test.dsp - Package Owner=<4>
Package=<5>
{{{
@@ -783,7 +783,7 @@ Package=<4> ###############################################################################
-Project: "Timeprobe_Test"=".\Timeprobe_Test.dsp" - Package Owner=<4>
+Project: "Time_Value_Test"=.\Time_Value_Test.dsp - Package Owner=<4>
Package=<5>
{{{
@@ -795,7 +795,7 @@ Package=<4> ###############################################################################
-Project: "Timer_Queue_Test"=".\Timer_Queue_Test.dsp" - Package Owner=<4>
+Project: "Timeprobe_Test"=.\Timeprobe_Test.dsp - Package Owner=<4>
Package=<5>
{{{
@@ -807,7 +807,7 @@ Package=<4> ###############################################################################
-Project: "Tokens_Test"=".\Tokens_Test.dsp" - Package Owner=<4>
+Project: "Timer_Queue_Test"=.\Timer_Queue_Test.dsp - Package Owner=<4>
Package=<5>
{{{
@@ -819,7 +819,7 @@ Package=<4> ###############################################################################
-Project: "UPIPE_SAP_Test"=".\UPIPE_SAP_Test.dsp" - Package Owner=<4>
+Project: "Tokens_Test"=.\Tokens_Test.dsp - Package Owner=<4>
Package=<5>
{{{
@@ -831,7 +831,19 @@ Package=<4> ###############################################################################
-Project: "Upgradable_RW_Test"=".\Upgradable_RW_Test.dsp" - Package Owner=<4>
+Project: "UPIPE_SAP_Test"=.\UPIPE_SAP_Test.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Project: "Upgradable_RW_Test"=.\Upgradable_RW_Test.dsp - Package Owner=<4>
Package=<5>
{{{
|