memory_storage.py (1231B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\caching\client\storage\memory_storage.py 2 from caching.client.cache_entry import CacheEntry 3 from caching.client.storage.base_storage import BaseCollectionStorage 4 from datetime import datetime 5 if False: 6 from caching.client.cache_key import CacheKey 7 from semantic_version.semantic_version import SemanticVersion 8 9 class MemoryCollectionStorage(BaseCollectionStorage): 10 11 def __init__(self, content_id): 12 super(MemoryCollectionStorage, self).__init__(content_id) 13 self._cached_values_by_key = {} 14 15 def get(self, key): 16 cached_entry = self._cached_values_by_key.get(str(key), None) 17 if cached_entry: 18 return cached_entry.value 19 20 def set(self, key, value, version = None): 21 new_entry = CacheEntry(cache_key=key, value=value, stored_at=datetime.utcnow()) 22 self._cached_values_by_key[str(key)] = new_entry 23 24 def get_all(self): 25 return dict([ (int(key), entry.value) for key, entry in self._cached_values_by_key.items() ]) 26 27 def set_all(self, values): 28 self._cached_values_by_key.clear() 29 for key, value in values.iteritems(): 30 self.set(key, value)