#include <Cache_Map_Manager_T.h>
Collaboration diagram for ACE_Cache_Map_Manager< KEY, VALUE, CMAP_TYPE, ITERATOR_IMPL, REVERSE_ITERATOR_IMPL, CACHING_STRATEGY, ATTRIBUTES >:

| Public Types | |
| typedef KEY | key_type | 
| typedef VALUE | mapped_type | 
| typedef CMAP_TYPE | map_type | 
| typedef CACHING_STRATEGY | caching_strategy_type | 
| typedef ITERATOR_IMPL | ITERATOR_IMPLEMENTATION | 
| typedef REVERSE_ITERATOR_IMPL | REVERSE_ITERATOR_IMPLEMENTATION | 
| 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 > | REVERSE_ITERATOR | 
| typedef ITERATOR | iterator | 
| typedef REVERSE_ITERATOR | reverse_iterator | 
| typedef ACE_Pair< VALUE, ATTRIBUTES > | CACHE_VALUE | 
| Public Member Functions | |
| ACE_Cache_Map_Manager (CACHING_STRATEGY &caching_strategy, size_t size=ACE_DEFAULT_MAP_SIZE, ACE_Allocator *alloc=0) | |
| virtual | ~ACE_Cache_Map_Manager (void) | 
| int | open (size_t length=ACE_DEFAULT_MAP_SIZE, ACE_Allocator *alloc=0) | 
| Initialize a cache with size length. | |
| int | close (void) | 
| Close down a cache and release dynamically allocated resources. | |
| int | bind (const KEY &key, const VALUE &value) | 
| int | find (const KEY &key, VALUE &value) | 
| int | find (const KEY &key) | 
| int | rebind (const KEY &key, const VALUE &value) | 
| int | rebind (const KEY &key, const VALUE &value, VALUE &old_value) | 
| int | rebind (const KEY &key, const VALUE &value, KEY &old_key, VALUE &old_value) | 
| int | trybind (const KEY &key, VALUE &value) | 
| int | unbind (const KEY &key) | 
| Remove key from the cache. | |
| int | unbind (const KEY &key, VALUE &value) | 
| int | purge (void) | 
| Remove entries from the cache depending upon the strategy. | |
| size_t | current_size (void) const | 
| Return the current size of the cache. | |
| size_t | total_size (void) const | 
| Return the total size of the cache. | |
| void | dump (void) const | 
| Dumps the state of the object. | |
| ITERATOR | begin (void) | 
| Return forward iterator. | |
| ITERATOR | end (void) | 
| REVERSE_ITERATOR | rbegin (void) | 
| Return reverse iterator. | |
| REVERSE_ITERATOR | rend (void) | 
| CMAP_TYPE & | map (void) | 
| The map managed by the Cache_Map_Manager. | |
| CACHING_STRATEGY & | caching_strategy (void) | 
| The caching strategy used on the cache. | |
| Protected Attributes | |
| CMAP_TYPE | map_ | 
| The underlying map which needs to be cached. | |
| CACHING_STRATEGY & | caching_strategy_ | 
| The strategy to be followed for caching entries in the map. | |
| Private Member Functions | |
| void | operator= (const ACMM< KEY, VALUE, CMAP_TYPE, ITERATOR_IMPL, REVERSE_ITERATOR_IMPL, CACHING_STRATEGY, ATTRIBUTES > &) | 
| ACMM (const ACMM< KEY, VALUE, CMAP_TYPE, ITERATOR_IMPL, REVERSE_ITERATOR_IMPL, CACHING_STRATEGY, ATTRIBUTES > &) | |
| Friends | |
| class | ACE_Cache_Map_Iterator< KEY, VALUE, ITERATOR_IMPLEMENTATION, CACHING_STRATEGY, ATTRIBUTES > | 
| class | ACE_Cache_Map_Reverse_Iterator< KEY, VALUE, REVERSE_ITERATOR_IMPLEMENTATION, CACHING_STRATEGY, ATTRIBUTES > | 
The will manage the map it contains and provide purging on demand from the map. The strategy for caching is decided by the user and provided to the Cache Manager. The Cache Manager acts as a agent and communicates between the Map and the Strategy for purging entries from the map. No locking mechanism provided since locking at this level isn't efficient. Locking has to be provided by the application.
Definition at line 61 of file Cache_Map_Manager_T.h.
| 
 | |||||
| The actual value mapped to the key in the map. The are used by the strategy and is transparent to the user of this class. Definition at line 94 of file Cache_Map_Manager_T.h. Referenced by ACE_Cache_Map_Manager< KEY, VALUE, CMAP_TYPE, ITERATOR_IMPL, REVERSE_ITERATOR_IMPL, CACHING_STRATEGY, ATTRIBUTES >::bind(), ACE_Cache_Map_Manager< KEY, VALUE, CMAP_TYPE, ITERATOR_IMPL, REVERSE_ITERATOR_IMPL, CACHING_STRATEGY, ATTRIBUTES >::find(), ACE_Cache_Map_Manager< KEY, VALUE, CMAP_TYPE, ITERATOR_IMPL, REVERSE_ITERATOR_IMPL, CACHING_STRATEGY, ATTRIBUTES >::rebind(), ACE_Cache_Map_Manager< KEY, VALUE, CMAP_TYPE, ITERATOR_IMPL, REVERSE_ITERATOR_IMPL, CACHING_STRATEGY, ATTRIBUTES >::trybind(), and ACE_Cache_Map_Manager< KEY, VALUE, CMAP_TYPE, ITERATOR_IMPL, REVERSE_ITERATOR_IMPL, CACHING_STRATEGY, ATTRIBUTES >::unbind(). | 
| 
 | |||||
| 
 Definition at line 69 of file Cache_Map_Manager_T.h. | 
| 
 | |||||
| 
 Definition at line 85 of file Cache_Map_Manager_T.h. | 
| 
 | |||||
| 
 | |||||
| 
 Definition at line 71 of file Cache_Map_Manager_T.h. | 
| 
 | |||||
| 
 Definition at line 66 of file Cache_Map_Manager_T.h. | 
| 
 | |||||
| 
 Definition at line 68 of file Cache_Map_Manager_T.h. | 
| 
 | |||||
| 
 Definition at line 67 of file Cache_Map_Manager_T.h. | 
| 
 | |||||
| 
 Definition at line 87 of file Cache_Map_Manager_T.h. | 
| 
 | |||||
| 
 | |||||
| 
 Definition at line 72 of file Cache_Map_Manager_T.h. | 
| 
 | ||||||||||||||||||||
| Initialize a with and size entries. Definition at line 31 of file Cache_Map_Manager_T.cpp. References ACE_Cache_Map_Manager, ACE_ERROR, ACE_T2, ACE_TEXT, LM_ERROR, and ACE_Cache_Map_Manager< KEY, VALUE, CMAP_TYPE, ITERATOR_IMPL, REVERSE_ITERATOR_IMPL, CACHING_STRATEGY, ATTRIBUTES >::open(). 
 00034 : caching_strategy_ (caching_s) 00035 { 00036 if (this->open (size, alloc) == -1) 00037 ACE_ERROR ((LM_ERROR, 00038 ACE_TEXT ("%p\n"), 00039 ACE_TEXT ("ACE_Cache_Map_Manager::ACE_Cache_Map_Manager"))); 00040 00041 } | 
| 
 | ||||||||||
| Close down a and release dynamically allocated resources. Definition at line 44 of file Cache_Map_Manager_T.cpp. 
 00045 {
00046   this->close ();
00047 }
 | 
| 
 | ||||||||||
| 
 | 
| 
 | ||||||||||
| Return forward iterator. 
 Definition at line 39 of file Cache_Map_Manager_T.inl. 
 00040 {
00041   return ITERATOR (this->map_.begin ());
00042 }
 | 
| 
 | ||||||||||||||||
| Associate key with value. If key is already in the CMAP_TYPE then the ENTRY is not changed. Returns 0 if a new entry is bound successfully, returns 1 if an attempt is made to bind an existing entry, and returns -1 if failures occur. Definition at line 64 of file Cache_Map_Manager_T.cpp. References ACE_Cache_Map_Manager< KEY, VALUE, CMAP_TYPE, ITERATOR_IMPL, REVERSE_ITERATOR_IMPL, CACHING_STRATEGY, ATTRIBUTES >::CACHE_VALUE, ACE_Cache_Map_Manager< KEY, VALUE, CMAP_TYPE, ITERATOR_IMPL, REVERSE_ITERATOR_IMPL, CACHING_STRATEGY, ATTRIBUTES >::caching_strategy_, ACE_Cache_Map_Manager< KEY, VALUE, CMAP_TYPE, ITERATOR_IMPL, REVERSE_ITERATOR_IMPL, CACHING_STRATEGY, ATTRIBUTES >::map_, and ACE_Pair< T1, T2 >::second(). 
 00066 {
00067   // Insert an entry which has the <key> and the <cache_value> which
00068   // is the combination of the <value> and the attributes of the
00069   // caching strategy.
00070   CACHE_VALUE cache_value (value,
00071                            this->caching_strategy_.attributes ());
00072 
00073   int bind_result = this->map_.bind (key,
00074                                      cache_value);
00075 
00076   if (bind_result != -1)
00077     {
00078 
00079       int result = this->caching_strategy_.notify_bind (bind_result,
00080                                                         cache_value.second ());
00081 
00082       if (result == -1)
00083         {
00084 
00085           this->map_.unbind (key);
00086 
00087           // Unless the notification goes thru the bind operation is
00088           // not complete.
00089           bind_result = -1;
00090 
00091         }
00092 
00093     }
00094 
00095   return bind_result;
00096 }
 | 
| 
 | ||||||||||
| The caching strategy used on the cache. 
 Definition at line 33 of file Cache_Map_Manager_T.inl. Referenced by ACE_Cache_Map_Manager< KEY, VALUE, CMAP_TYPE, ITERATOR_IMPL, REVERSE_ITERATOR_IMPL, CACHING_STRATEGY, ATTRIBUTES >::purge(). 
 00034 {
00035   return this->caching_strategy_;
00036 }
 | 
| 
 | ||||||||||
| Close down a cache and release dynamically allocated resources. 
 Definition at line 58 of file Cache_Map_Manager_T.cpp. 
 00059 {
00060   return this->map_.close ();
00061 }
 | 
| 
 | ||||||||||
| Return the current size of the cache. 
 Definition at line 15 of file Cache_Map_Manager_T.inl. 
 00016 {
00017   return this->map_.current_size ();
00018 }
 | 
| 
 | ||||||||||
| Dumps the state of the object. 
 Definition at line 401 of file Cache_Map_Manager_T.cpp. References ACE_Cache_Map_Manager< KEY, VALUE, CMAP_TYPE, ITERATOR_IMPL, REVERSE_ITERATOR_IMPL, CACHING_STRATEGY, ATTRIBUTES >::caching_strategy_, and ACE_Cache_Map_Manager< KEY, VALUE, CMAP_TYPE, ITERATOR_IMPL, REVERSE_ITERATOR_IMPL, CACHING_STRATEGY, ATTRIBUTES >::map_. 
 00402 {
00403 #if defined (ACE_HAS_DUMP)
00404   this->map_.dump ();
00405 
00406   this->caching_strategy_.dump ();
00407 #endif /* ACE_HAS_DUMP */
00408 }
 | 
| 
 | ||||||||||
| 
 Definition at line 45 of file Cache_Map_Manager_T.inl. 
 00046 {
00047   return ITERATOR (this->map_.end ());
00048 }
 | 
| 
 | ||||||||||
| Lookup entry<key,value> in the cache. If it is not found, returns -1. If the key is located in the CMAP_TYPE object, the CACHING_STRATEGY is notified of it via notify_find (int result, ATTRIBUTES &attribute). If notify_find also returns 0 (success), then this function returns 0 (success). Definition at line 314 of file Cache_Map_Manager_T.cpp. References ACE_Cache_Map_Manager< KEY, VALUE, CMAP_TYPE, ITERATOR_IMPL, REVERSE_ITERATOR_IMPL, CACHING_STRATEGY, ATTRIBUTES >::CACHE_VALUE, ACE_Cache_Map_Manager< KEY, VALUE, CMAP_TYPE, ITERATOR_IMPL, REVERSE_ITERATOR_IMPL, CACHING_STRATEGY, ATTRIBUTES >::caching_strategy_, ACE_Cache_Map_Manager< KEY, VALUE, CMAP_TYPE, ITERATOR_IMPL, REVERSE_ITERATOR_IMPL, CACHING_STRATEGY, ATTRIBUTES >::map_, and ACE_Pair< T1, T2 >::second(). 
 00315 {
00316   // Lookup the key and populate the <value>.
00317   CACHE_VALUE cache_value;
00318 
00319   int find_result = this->map_.find (key,
00320                                      cache_value);
00321 
00322   if (find_result != -1)
00323     {
00324 
00325       int result = this->caching_strategy_.notify_find (find_result,
00326                                                         cache_value.second ());
00327 
00328       // Unless the find and notification operations go thru, this
00329       // method is not successful.
00330       if (result == -1)
00331         find_result = -1;
00332       else
00333         {
00334 
00335           // Since the <cache_value> has now changed after the
00336           // notification, we need to bind to the map again.
00337           int rebind_result = this->map_.rebind (key,
00338                                                  cache_value);
00339 
00340           if (rebind_result == -1)
00341             find_result = -1;
00342 
00343         }
00344 
00345     }
00346 
00347   return find_result;
00348 }
 | 
| 
 | ||||||||||||||||
| Lookup entry<key,value> in the cache. If it is not found, returns -1. If the key is located in the CMAP_TYPE object, the CACHING_STRATEGY is notified of it via notify_find (int result, ATTRIBUTES &attribute). If notify_find also returns 0 (success), then this function returns 0 (success) and sets the cached value in value. Definition at line 275 of file Cache_Map_Manager_T.cpp. References ACE_Cache_Map_Manager< KEY, VALUE, CMAP_TYPE, ITERATOR_IMPL, REVERSE_ITERATOR_IMPL, CACHING_STRATEGY, ATTRIBUTES >::CACHE_VALUE, ACE_Cache_Map_Manager< KEY, VALUE, CMAP_TYPE, ITERATOR_IMPL, REVERSE_ITERATOR_IMPL, CACHING_STRATEGY, ATTRIBUTES >::caching_strategy_, ACE_Pair< T1, T2 >::first(), ACE_Cache_Map_Manager< KEY, VALUE, CMAP_TYPE, ITERATOR_IMPL, REVERSE_ITERATOR_IMPL, CACHING_STRATEGY, ATTRIBUTES >::map_, and ACE_Pair< T1, T2 >::second(). 
 00277 {
00278   // Lookup the key and populate the <value>.
00279   CACHE_VALUE cache_value;
00280 
00281   int find_result = this->map_.find (key,
00282                                      cache_value);
00283 
00284   if (find_result != -1)
00285     {
00286 
00287       int result = this->caching_strategy_.notify_find (find_result,
00288                                                         cache_value.second ());
00289 
00290       // Unless the find and notification operations go thru, this
00291       // method is not successful.
00292       if (result == -1)
00293         find_result = -1;
00294       else
00295         {
00296 
00297           // Since the <cache_value> has now changed after the
00298           // notification, we need to bind to the map again.
00299           int rebind_result = this->map_.rebind (key,
00300                                                  cache_value);
00301           if (rebind_result == -1)
00302             find_result = -1;
00303           else
00304             value = cache_value.first ();
00305 
00306         }
00307 
00308     }
00309 
00310   return find_result;
00311 }
 | 
| 
 | ||||||||||
| The map managed by the Cache_Map_Manager. 
 Definition at line 27 of file Cache_Map_Manager_T.inl. 
 00028 {
00029   return this->map_;
00030 }
 | 
| 
 | ||||||||||||||||
| Initialize a cache with size length. 
 Definition at line 50 of file Cache_Map_Manager_T.cpp. 
 00052 {
00053   return this->map_.open (length,
00054                           alloc);
00055 }
 | 
| 
 | ||||||||||
| 
 | 
| 
 | ||||||||||
| Remove entries from the cache depending upon the strategy. 
 Definition at line 8 of file Cache_Map_Manager_T.inl. 
 00009 {
00010   return this->caching_strategy ().caching_utility ().clear_cache (this->map_,
00011                                                                    this->caching_strategy ().purge_percent ());
00012 }
 | 
| 
 | ||||||||||
| Return reverse iterator. 
 Definition at line 51 of file Cache_Map_Manager_T.inl. 
 00052 {
00053   return REVERSE_ITERATOR (this->map_.rbegin ());
00054 }
 | 
| 
 | ||||||||||||||||||||||||
| Reassociate key with value, storing the old key and value into the "out" parameters old_key and old_value. The function fails if key is not in the cache for caches that do not allow user specified keys. However, for caches that allow user specified keys, if the key is not in the cache, a new key / value association is created. Definition at line 184 of file Cache_Map_Manager_T.cpp. References ACE_Cache_Map_Manager< KEY, VALUE, CMAP_TYPE, ITERATOR_IMPL, REVERSE_ITERATOR_IMPL, CACHING_STRATEGY, ATTRIBUTES >::CACHE_VALUE, ACE_Cache_Map_Manager< KEY, VALUE, CMAP_TYPE, ITERATOR_IMPL, REVERSE_ITERATOR_IMPL, CACHING_STRATEGY, ATTRIBUTES >::caching_strategy_, ACE_Pair< T1, T2 >::first(), ACE_Cache_Map_Manager< KEY, VALUE, CMAP_TYPE, ITERATOR_IMPL, REVERSE_ITERATOR_IMPL, CACHING_STRATEGY, ATTRIBUTES >::map_, and ACE_Pair< T1, T2 >::second(). 
 00188 {
00189   CACHE_VALUE cache_value (value,
00190                            this->caching_strategy_.attributes ());
00191 
00192   CACHE_VALUE old_cache_value (old_value,
00193                                this->caching_strategy_.attributes ());
00194 
00195   int rebind_result = this->map_.rebind (key,
00196                                          cache_value,
00197                                          old_key,
00198                                          old_cache_value);
00199 
00200   if (rebind_result != -1)
00201     {
00202 
00203       int result = this->caching_strategy_.notify_rebind (rebind_result,
00204                                                           cache_value.second ());
00205 
00206       if (result == -1)
00207         {
00208 
00209           // Make sure the unbind operation is done only when the
00210           // notification fails after a bind which is denoted by
00211           // rebind_result = 0
00212           if (rebind_result == 0)
00213             this->map_.unbind (key);
00214 
00215           // Unless the notification goes thru the rebind operation is
00216           // not complete.
00217           rebind_result = -1;
00218 
00219         }
00220       else
00221         {
00222 
00223           old_value = old_cache_value.first ();
00224 
00225         }
00226 
00227     }
00228 
00229   return rebind_result;
00230 }
 | 
| 
 | ||||||||||||||||||||
| Reassociate key with value, storing the old value into the "out" parameter old_value. The function fails if key is not in the cache for caches that do not allow user specified keys. However, for caches that allow user specified keys, if the key is not in the cache, a new key / value association is created. Definition at line 137 of file Cache_Map_Manager_T.cpp. References ACE_Cache_Map_Manager< KEY, VALUE, CMAP_TYPE, ITERATOR_IMPL, REVERSE_ITERATOR_IMPL, CACHING_STRATEGY, ATTRIBUTES >::CACHE_VALUE, ACE_Cache_Map_Manager< KEY, VALUE, CMAP_TYPE, ITERATOR_IMPL, REVERSE_ITERATOR_IMPL, CACHING_STRATEGY, ATTRIBUTES >::caching_strategy_, ACE_Pair< T1, T2 >::first(), ACE_Cache_Map_Manager< KEY, VALUE, CMAP_TYPE, ITERATOR_IMPL, REVERSE_ITERATOR_IMPL, CACHING_STRATEGY, ATTRIBUTES >::map_, and ACE_Pair< T1, T2 >::second(). 
 00140 {
00141   CACHE_VALUE cache_value (value,
00142                            this->caching_strategy_.attributes ());
00143 
00144   CACHE_VALUE old_cache_value (old_value,
00145                                this->caching_strategy_.attributes ());
00146 
00147   int rebind_result = this->map_.rebind (key,
00148                                          cache_value,
00149                                          old_cache_value);
00150 
00151   if (rebind_result != -1)
00152     {
00153 
00154       int result = this->caching_strategy_.notify_rebind (rebind_result,
00155                                                           cache_value.second ());
00156 
00157       if (result == -1)
00158         {
00159 
00160           // Make sure the unbind operation is done only when the
00161           // notification fails after a bind which is denoted by
00162           // rebind_result = 0
00163           if (rebind_result == 0)
00164             this->map_.unbind (key);
00165 
00166           // Unless the notification goes thru the rebind operation is
00167           // not complete.
00168           rebind_result = -1;
00169 
00170         }
00171       else
00172         {
00173 
00174           old_value = old_cache_value.first ();
00175 
00176         }
00177 
00178     }
00179 
00180   return rebind_result;
00181 }
 | 
| 
 | ||||||||||||||||
| Reassociate the key with value. If the key already exists in the cache then returns 1, on a new bind returns 0 and returns -1 in case of any failures. Definition at line 100 of file Cache_Map_Manager_T.cpp. References ACE_Cache_Map_Manager< KEY, VALUE, CMAP_TYPE, ITERATOR_IMPL, REVERSE_ITERATOR_IMPL, CACHING_STRATEGY, ATTRIBUTES >::CACHE_VALUE, ACE_Cache_Map_Manager< KEY, VALUE, CMAP_TYPE, ITERATOR_IMPL, REVERSE_ITERATOR_IMPL, CACHING_STRATEGY, ATTRIBUTES >::caching_strategy_, ACE_Cache_Map_Manager< KEY, VALUE, CMAP_TYPE, ITERATOR_IMPL, REVERSE_ITERATOR_IMPL, CACHING_STRATEGY, ATTRIBUTES >::map_, and ACE_Pair< T1, T2 >::second(). 
 00102 {
00103   CACHE_VALUE cache_value (value,
00104                            this->caching_strategy_.attributes ());
00105 
00106   int rebind_result = this->map_.rebind (key,
00107                                          cache_value);
00108 
00109   if (rebind_result != -1)
00110     {
00111 
00112       int result = this->caching_strategy_.notify_rebind (rebind_result,
00113                                                           cache_value.second ());
00114 
00115       if (result == -1)
00116         {
00117 
00118           // Make sure the unbind operation is done only when the
00119           // notification fails after a bind which is denoted by
00120           // rebind_result = 0
00121           if (rebind_result == 0)
00122             this->map_.unbind (key);
00123 
00124           // Unless the notification goes thru the rebind operation is
00125           // not complete.
00126           rebind_result = -1;
00127 
00128         }
00129 
00130     }
00131 
00132   return rebind_result;
00133 }
 | 
| 
 | ||||||||||
| 
 Definition at line 56 of file Cache_Map_Manager_T.inl. 
 00057 {
00058   return REVERSE_ITERATOR (this->map_.rend ());
00059 }
 | 
| 
 | ||||||||||
| Return the total size of the cache. 
 Definition at line 21 of file Cache_Map_Manager_T.inl. 
 00022 {
00023   return this->map_.total_size ();
00024 }
 | 
| 
 | ||||||||||||||||
| Associate key with value if and only if key is not in the cache. If key is already in the cache, then the value parameter is overwritten with the existing value in the cache. Returns 0 if a new key / value association is created. Returns 1 if an attempt is made to bind an existing entry. This function fails for maps that do not allow user specified keys. Definition at line 233 of file Cache_Map_Manager_T.cpp. References ACE_Cache_Map_Manager< KEY, VALUE, CMAP_TYPE, ITERATOR_IMPL, REVERSE_ITERATOR_IMPL, CACHING_STRATEGY, ATTRIBUTES >::CACHE_VALUE, ACE_Cache_Map_Manager< KEY, VALUE, CMAP_TYPE, ITERATOR_IMPL, REVERSE_ITERATOR_IMPL, CACHING_STRATEGY, ATTRIBUTES >::caching_strategy_, ACE_Pair< T1, T2 >::first(), ACE_Cache_Map_Manager< KEY, VALUE, CMAP_TYPE, ITERATOR_IMPL, REVERSE_ITERATOR_IMPL, CACHING_STRATEGY, ATTRIBUTES >::map_, and ACE_Pair< T1, T2 >::second(). 
 00235 {
00236   CACHE_VALUE cache_value (value,
00237                            this->caching_strategy_.attributes ());
00238 
00239   int trybind_result = this->map_.trybind (key,
00240                                            cache_value);
00241 
00242   if (trybind_result != -1)
00243     {
00244 
00245       int result = this->caching_strategy_.notify_trybind (trybind_result,
00246                                                            cache_value.second ());
00247 
00248       if (result == -1)
00249         {
00250 
00251           // If the entry has got inserted into the map, it is removed
00252           // due to failure.
00253           if (trybind_result == 0)
00254             this->map_.unbind (key);
00255 
00256           trybind_result = -1;
00257 
00258         }
00259       else
00260         {
00261 
00262           // If an attempt is made to bind an existing entry the value
00263           // is overwritten with the value from the map.
00264           if (trybind_result == 1)
00265             value = cache_value.first ();
00266 
00267         }
00268 
00269     }
00270 
00271   return trybind_result;
00272 }
 | 
| 
 | ||||||||||||||||
| Remove key from the cache, and return the value associated with key. Definition at line 375 of file Cache_Map_Manager_T.cpp. References ACE_Cache_Map_Manager< KEY, VALUE, CMAP_TYPE, ITERATOR_IMPL, REVERSE_ITERATOR_IMPL, CACHING_STRATEGY, ATTRIBUTES >::CACHE_VALUE, ACE_Cache_Map_Manager< KEY, VALUE, CMAP_TYPE, ITERATOR_IMPL, REVERSE_ITERATOR_IMPL, CACHING_STRATEGY, ATTRIBUTES >::caching_strategy_, ACE_Pair< T1, T2 >::first(), ACE_Cache_Map_Manager< KEY, VALUE, CMAP_TYPE, ITERATOR_IMPL, REVERSE_ITERATOR_IMPL, CACHING_STRATEGY, ATTRIBUTES >::map_, and ACE_Pair< T1, T2 >::second(). 
 00377 {
00378   // Remove the entry from the cache.
00379   CACHE_VALUE cache_value;
00380 
00381   int unbind_result = this->map_.unbind (key,
00382                                          cache_value);
00383 
00384   if (unbind_result != -1)
00385     {
00386 
00387       int result = this->caching_strategy_.notify_unbind (unbind_result,
00388                                                           cache_value.second ());
00389 
00390       if (result == -1)
00391         unbind_result = -1;
00392       else
00393         value = cache_value.first ();
00394 
00395     }
00396 
00397   return unbind_result;
00398 }
 | 
| 
 | ||||||||||
| Remove key from the cache. 
 Definition at line 352 of file Cache_Map_Manager_T.cpp. References ACE_Cache_Map_Manager< KEY, VALUE, CMAP_TYPE, ITERATOR_IMPL, REVERSE_ITERATOR_IMPL, CACHING_STRATEGY, ATTRIBUTES >::CACHE_VALUE, ACE_Cache_Map_Manager< KEY, VALUE, CMAP_TYPE, ITERATOR_IMPL, REVERSE_ITERATOR_IMPL, CACHING_STRATEGY, ATTRIBUTES >::caching_strategy_, ACE_Cache_Map_Manager< KEY, VALUE, CMAP_TYPE, ITERATOR_IMPL, REVERSE_ITERATOR_IMPL, CACHING_STRATEGY, ATTRIBUTES >::map_, and ACE_Pair< T1, T2 >::second(). 
 00353 {
00354   // Remove the entry from the cache.
00355   CACHE_VALUE cache_value;
00356 
00357   int unbind_result = this->map_.unbind (key,
00358                                          cache_value);
00359 
00360   if (unbind_result != -1)
00361     {
00362 
00363       int result = this->caching_strategy_.notify_unbind (unbind_result,
00364                                                           cache_value.second ());
00365 
00366       if (result == -1)
00367         unbind_result = -1;
00368 
00369     }
00370 
00371   return unbind_result;
00372 }
 | 
| 
 | |||||
| 
 Definition at line 74 of file Cache_Map_Manager_T.h. | 
| 
 | |||||
| 
 Definition at line 75 of file Cache_Map_Manager_T.h. | 
| 
 | |||||
| 
 | |||||
 1.3.6
 
1.3.6