Index: chrome/common/extensions/docs/server2/in_memory_object_store.py |
diff --git a/chrome/common/extensions/docs/server2/in_memory_object_store.py b/chrome/common/extensions/docs/server2/in_memory_object_store.py |
index 15a37780532d2969496a810a98f42f567e763c17..2dd2a7c6e1666bee57907418a7d00c5d42f08989 100644 |
--- a/chrome/common/extensions/docs/server2/in_memory_object_store.py |
+++ b/chrome/common/extensions/docs/server2/in_memory_object_store.py |
@@ -7,7 +7,6 @@ import time |
from appengine_wrappers import CACHE_TIMEOUT |
from future import Future |
from object_store import ObjectStore |
-from memcache_object_store import MemcacheObjectStore |
class _CacheEntry(object): |
def __init__(self, value, expire_time): |
@@ -26,67 +25,53 @@ class _AsyncGetFuture(object): |
Properties: |
- |cache| the in-memory cache used by InMemoryObjectStore |
- |time| the cache timeout |
- - |namespace| the namespace of the cache items |
- |future| the |Future| from the backing |ObjectStore| |
- |initial_mapping| a mapping of cache items already in memory |
""" |
- def __init__(self, cache, time, namespace, future, initial_mapping): |
+ def __init__(self, cache, time, future, initial_mapping): |
self._cache = cache |
self._time = time |
- self._namespace = namespace |
self._future = future |
self._mapping = initial_mapping |
def Get(self): |
if self._future is not None: |
result = self._future.Get() |
- self._cache[self._namespace].update( |
+ self._cache.update( |
dict((k, _CacheEntry(v, self._time)) for k, v in result.iteritems())) |
self._mapping.update(result) |
return self._mapping |
class InMemoryObjectStore(ObjectStore): |
- def __init__(self, branch): |
- self._branch = branch |
+ def __init__(self, object_store): |
+ self._object_store = object_store |
self._cache = {} |
- self._object_store = MemcacheObjectStore() |
- def _MakeNamespace(self, namespace): |
- return 'ObjectStore.%s.%s' % (self._branch, namespace) |
- |
- def SetMulti(self, mapping, namespace, time=CACHE_TIMEOUT): |
- namespace = self._MakeNamespace(namespace) |
+ def SetMulti(self, mapping, time=CACHE_TIMEOUT): |
for k, v in mapping.iteritems(): |
- if namespace not in self._cache: |
- self._cache[namespace] = {} |
- self._cache[namespace][k] = _CacheEntry(v, time) |
+ self._cache[k] = _CacheEntry(v, time) |
# TODO(cduvall): Use a batch set? App Engine kept throwing: |
# ValueError: Values may not be more than 1000000 bytes in length |
# for the batch set. |
- self._object_store.Set(k, v, namespace, time=time) |
+ self._object_store.Set(k, v, time=time) |
- def GetMulti(self, keys, namespace, time=CACHE_TIMEOUT): |
- namespace = self._MakeNamespace(namespace) |
+ def GetMulti(self, keys, time=CACHE_TIMEOUT): |
keys = keys[:] |
mapping = {} |
- if namespace not in self._cache: |
- self._cache[namespace] = {} |
for key in keys: |
- cache_entry = self._cache[namespace].get(key, None) |
+ cache_entry = self._cache.get(key, None) |
if cache_entry is None or cache_entry.HasExpired(): |
mapping[key] = None |
else: |
mapping[key] = cache_entry.value |
keys.remove(key) |
- future = self._object_store.GetMulti(keys, namespace, time=time) |
+ future = self._object_store.GetMulti(keys, time=time) |
return Future(delegate=_AsyncGetFuture(self._cache, |
time, |
- namespace, |
future, |
mapping)) |
- def Delete(self, key, namespace): |
- namespace = self._MakeNamespace(namespace) |
- if namespace in self._cache and key in self._cache[namespace]: |
- self._cache[namespace].pop(key) |
- self._object_store.Delete(key, namespace) |
+ def Delete(self, key): |
+ if key in self._cache: |
+ self._cache.pop(key) |
+ self._object_store.Delete(key) |