memcache_object_store.py revision 5821806d5e7f356e8fa4b058a389a808ea183019
1# Copyright (c) 2012 The Chromium Authors. All rights reserved. 2# Use of this source code is governed by a BSD-style license that can be 3# found in the LICENSE file. 4 5from appengine_wrappers import memcache 6from object_store import ObjectStore, CACHE_TIMEOUT 7 8class _AsyncMemcacheGetFuture(object): 9 def __init__(self, rpc): 10 self._rpc = rpc 11 12 def Get(self): 13 return self._rpc.get_result() 14 15class MemcacheObjectStore(ObjectStore): 16 def SetMulti(self, mapping, namespace, time=CACHE_TIMEOUT): 17 memcache.Client().set_multi_async(mapping, namespace=namespace, time=time) 18 19 def GetMulti(self, keys, namespace, time=CACHE_TIMEOUT): 20 rpc = memcache.Client().get_multi_async(keys, namespace=namespace) 21 return _AsyncMemcacheGetFuture(rpc) 22 23 def Delete(self, key, namespace): 24 memcache.delete(key, namespace=namespace) 25