summaryrefslogtreecommitdiff
path: root/cpp/src/IceGrid/Cache.h
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/IceGrid/Cache.h')
-rw-r--r--cpp/src/IceGrid/Cache.h12
1 files changed, 9 insertions, 3 deletions
diff --git a/cpp/src/IceGrid/Cache.h b/cpp/src/IceGrid/Cache.h
index d68b3b4d363..0a4e0684c58 100644
--- a/cpp/src/IceGrid/Cache.h
+++ b/cpp/src/IceGrid/Cache.h
@@ -79,9 +79,7 @@ protected:
{
if(create)
{
- ValuePtr entry = createEntry(key);
- _entriesHint = _entries.insert(_entriesHint, make_pair(key, entry));
- return entry;
+ return addImpl(key);
}
else
{
@@ -91,6 +89,14 @@ protected:
}
virtual ValuePtr
+ addImpl(const Key& key)
+ {
+ ValuePtr entry = createEntry(key);
+ _entriesHint = _entries.insert(_entriesHint, make_pair(key, entry));
+ return entry;
+ }
+
+ virtual ValuePtr
removeImpl(const Key& key)
{
typename std::map<Key, ValuePtr>::iterator p = _entries.end();