NovaBryan/EVE_Dump
Log | Files | 📦 下载最新源码 (.zip) | Refs | README

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)