summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorirfan <irfan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1999-06-25 00:24:49 +0000
committerirfan <irfan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1999-06-25 00:24:49 +0000
commit5b4b15f2f18fdd76fd22011bfa27b2f211e3119c (patch)
treeac23a7f1dab87302b7b51a64056d1bf7c4fa5055
parentfa55f6d7743f804d87c401fd91739b6111dfca50 (diff)
downloadATCD-5b4b15f2f18fdd76fd22011bfa27b2f211e3119c.tar.gz
*** empty log message ***
-rw-r--r--README1
-rw-r--r--TAO/tests/POA/Destruction/Destruction.dsp28
-rw-r--r--ace/Cache_Map_Manager_T.h16
-rw-r--r--ace/Cache_Map_Manager_T.i14
-rw-r--r--ace/Caching_Strategies_T.cpp15
-rw-r--r--ace/Caching_Strategies_T.h70
-rw-r--r--ace/Caching_Strategies_T.i148
-rw-r--r--ace/Caching_Strategy_Utility_T.cpp184
-rw-r--r--ace/Caching_Strategy_Utility_T.h179
-rw-r--r--ace/Caching_Utility_T.cpp183
-rw-r--r--ace/Caching_Utility_T.h145
-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.cpp889
-rw-r--r--tests/tests.dsw152
14 files changed, 885 insertions, 1143 deletions
diff --git a/README b/README
index 11d0fbf9553..b7a49c259e8 100644
--- a/README
+++ b/README
@@ -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>
{{{