|
|
|
|
@ -1,4 +1,5 @@ |
|
|
|
|
import shelve |
|
|
|
|
import base64 |
|
|
|
|
from threading import Lock |
|
|
|
|
|
|
|
|
|
class PersistentContainer(object): |
|
|
|
|
@ -83,6 +84,7 @@ class PersistentContainer(object): |
|
|
|
|
|
|
|
|
|
def __getitem__(self, name): |
|
|
|
|
key = name+"."+self.namespace |
|
|
|
|
key = base64.b64encode(key) |
|
|
|
|
if key in self.dic: |
|
|
|
|
return self.dic[key] |
|
|
|
|
return None |
|
|
|
|
@ -103,17 +105,20 @@ class PersistentContainer(object): |
|
|
|
|
|
|
|
|
|
def __contains__(self,name): |
|
|
|
|
key = name+"."+self.namespace |
|
|
|
|
key = base64.b64encode(key) |
|
|
|
|
return key in self.dic |
|
|
|
|
|
|
|
|
|
def _write(self): |
|
|
|
|
for name in self.trans_cache.keys(): |
|
|
|
|
key = name+"."+self.namespace |
|
|
|
|
key = base64.b64encode(key) |
|
|
|
|
val = self.trans_cache[name] |
|
|
|
|
self.dic[key]=val |
|
|
|
|
del self.trans_cache[name] |
|
|
|
|
while len(self.trans_del): |
|
|
|
|
name = self.trans_del.pop() |
|
|
|
|
key = name+"."+self.namespace |
|
|
|
|
key = base64.b64encode(key) |
|
|
|
|
del self.dic[key] |
|
|
|
|
self.dic.sync() |
|
|
|
|
|
|
|
|
|
|