diff options
Diffstat (limited to 'examples/Web_Crawler/Caching_Strategies_T.cpp')
-rw-r--r-- | examples/Web_Crawler/Caching_Strategies_T.cpp | 80 |
1 files changed, 34 insertions, 46 deletions
diff --git a/examples/Web_Crawler/Caching_Strategies_T.cpp b/examples/Web_Crawler/Caching_Strategies_T.cpp index 8bb86f1f730..9ae98e798b7 100644 --- a/examples/Web_Crawler/Caching_Strategies_T.cpp +++ b/examples/Web_Crawler/Caching_Strategies_T.cpp @@ -6,7 +6,7 @@ #include "Caching_Strategies_T.h" #if !defined (ACE_LACKS_PRAGMA_ONCE) -#define ACE_LACKS_PRAGMA_ONCE +#define ACE_LACKS_PRAGMA_ONCE #endif /* ACE_LACKS_PRAGMA_ONCE */ #if !defined (__ACE_INLINE__) @@ -16,10 +16,10 @@ ACE_RCSID(Web_Crawler, Caching_Strategies_T, "$Id$") template<class CONTAINER> int -ACE_LRU_Caching_Strategy<CONTAINER>::clear_cache (CONTAINER &container) +ACE_LRU_Caching_Strategy<CONTAINER>::clear_cache (CONTAINER &container) { // Check that the purge_percent is non-zero. - if (this->purge_percent_ == 0) + if (purge_percent_ == 0) return 0; // Also whether the number of entries in the cache is just one! @@ -29,22 +29,17 @@ ACE_LRU_Caching_Strategy<CONTAINER>::clear_cache (CONTAINER &container) KEY key_to_remove; VALUE value_to_remove; - + ITEM *item = 0; - + ATTRIBUTES min = 0; // Return value. int result = 0; - // Calculate the no of entries to remove form the cache depending - // upon the <purge_percent>. - int no_of_entries = (this->purge_percent_ / 100) * this->entries_; - - // @@ Don't do this stuff below. Simply take the ceiling of the - // above <no_of_entries>. - - // If the number of entries is less than 10 with the default percent + // Calculate the no of entries to remove form the cache depending upon the <purge_percent>. + int no_of_entries = (this->purge_percent_/100) * this->entries_; + // If the number of entries is less than 10 with the default percent // being 10, the calculated no_pf_entries equals 0. So increment it // so that atleast one entry gets purged. if (no_of_entries == 0) @@ -59,9 +54,9 @@ ACE_LRU_Caching_Strategy<CONTAINER>::clear_cache (CONTAINER &container) // The iterator moves thru the container searching for the entry with the // lowest ATTRIBUTES. - + for (min = (*iter).int_id_.second (), key_to_remove = (*iter).ext_id_, value_to_remove = (*iter).int_id_; - iter.next (item) != 0; + iter.next (item) != 0 ; ++iter) { // Ah! an item with lower ATTTRIBUTES... @@ -72,31 +67,23 @@ ACE_LRU_Caching_Strategy<CONTAINER>::clear_cache (CONTAINER &container) value_to_remove = (*iter).int_id_; } } - - // @@ Remove this ACE_DEBUG ((LM_DEBUG, "AUTO_PURGE\nLRU: before unbind: current_size %d\n", container.current_size ())); - - // @@ Remove this svc_handler specific code!! - + // Delete the dynamically allocated value object. if (value_to_remove.first () != 0) { (value_to_remove.first ())->recycler (0, 0); - + result = (value_to_remove.first ())->close(); if (result == -1) return result; } - // Remove the item from cache. - - // @@ What happens to this result? You should stop on failure. + // Remove the item from cache. result = container.unbind (key_to_remove); --this->entries_; - - // @@ Remove this ACE_DEBUG ((LM_DEBUG, "LRU:after unbind: result %d current_size %d\n", result, container.current_size ())); } - return result; + return result; } //////////////////////////////////////////////////////////////////////////////////////////////// @@ -114,17 +101,17 @@ ACE_LFU_Caching_Strategy<CONTAINER>::clear_cache (CONTAINER &container) KEY key_to_remove; VALUE value_to_remove; - + ITEM *item = 0; - + ATTRIBUTES min = 0; - + // Return value. int result = 0; - + // Calculate the no of entries to remove form the cache depending upon the <purge_percent>. int no_of_entries = (this->purge_percent_/100) * this->entries_; - // If the number of entries is less than 10 with the default percent + // If the number of entries is less than 10 with the default percent // being 10, the calculated no_pf_entries equals 0. So increment it // so that atleast one entry gets purged. if (no_of_entries == 0) @@ -132,13 +119,13 @@ ACE_LFU_Caching_Strategy<CONTAINER>::clear_cache (CONTAINER &container) if (container.current_size () >= 1) no_of_entries = 1; } - + for (int i = 0; i < no_of_entries ; ++i) { ITERATOR iter (container); // The iterator moves thru the container searching for the entry with the // lowest ATTRIBUTES. - + for (min = (*iter).int_id_.second (), key_to_remove = (*iter).ext_id_, value_to_remove = (*iter).int_id_; iter.next (item) != 0 ; ++iter) @@ -152,22 +139,22 @@ ACE_LFU_Caching_Strategy<CONTAINER>::clear_cache (CONTAINER &container) } } ACE_DEBUG ((LM_DEBUG, "AUTO_PURGE\nLFU: before unbind: current_size %d\n", container.current_size ())); - + // Delete the dynamically allocated value object. if (value_to_remove.first () != 0) { (value_to_remove.first ())->recycler (0, 0); - + result = (value_to_remove.first ())->close(); if (result == -1) return result; } - // Remove the item from cache. + // Remove the item from cache. result = container.unbind (key_to_remove); --this->entries_; ACE_DEBUG ((LM_DEBUG, "LFU:after unbind: result %d current_size %d\n", result, container.current_size ())); } - return result; + return result; } @@ -186,9 +173,9 @@ ACE_FIFO_Caching_Strategy<CONTAINER>::clear_cache (CONTAINER &container) KEY key_to_remove; VALUE value_to_remove; - + ITEM *item = 0; - + ATTRIBUTES min = 0; // Return value. @@ -196,7 +183,7 @@ ACE_FIFO_Caching_Strategy<CONTAINER>::clear_cache (CONTAINER &container) // Calculate the no of entries to remove form the cache depending upon the <purge_percent>. int no_of_entries = (this->purge_percent_/100) * this->entries_; - // If the number of entries is less than 10 with the default percent + // If the number of entries is less than 10 with the default percent // being 10, the calculated no_pf_entries equals 0. So increment it // so that atleast one entry gets purged. if (no_of_entries == 0) @@ -223,23 +210,23 @@ ACE_FIFO_Caching_Strategy<CONTAINER>::clear_cache (CONTAINER &container) } } ACE_DEBUG ((LM_DEBUG, "AUTO_PURGE\nFIFO: before unbind: current_size %d\n", container.current_size ())); - + // Delete the dynamically allocated value object. if (value_to_remove.first () != 0) { (value_to_remove.first ())->recycler (0, 0); - + result = (value_to_remove.first ())->close(); if (result == -1) return result; } - // Remove the item from cache. + // Remove the item from cache. result = container.unbind (key_to_remove); --this->entries_; ACE_DEBUG ((LM_DEBUG, "FIFO:after unbind: result %d current_size %d\n", result, container.current_size ())); } - return result; - + return result; + } //////////////////////////////////////////////////////////////////////////////////////////////// @@ -257,3 +244,4 @@ ACE_ALLOC_HOOK_DEFINE(ACE_LFU_Caching_Strategy) ACE_ALLOC_HOOK_DEFINE(ACE_FIFO_Caching_Strategy) ACE_ALLOC_HOOK_DEFINE(ACE_Null_Caching_Strategy) #endif /* CACHING_STRATEGIES_T_C */ + |