1: # Caache for the search results in the Basket
2:
3: from OFS.SimpleItem import SimpleItem
4: from OFS.Folder import Folder
5: import logging
6:
7: class CDLICache(Folder):
8: """Cache for search results"""
9: meta_type="CDLICache"
10: def __init__(self):
11: self.id="CDLICache"
12:
13: def retrieve(self,key):
14: if key is None:
15: return None
16: logging.info("retrieve: %s"%key)
17: obj = getattr(self,key,None)
18: if obj is None:
19: return None
20: else:
21: logging.info("---value from cache")
22: return obj.getValue()
23:
24: def store(self,key,value):
25: obj = getattr(self,key,None)
26: if obj is None:
27: obj=CDLICacheObj(key,value)
28: self._setObject(key,obj)
29: else:
30: obj.setValue(value)
31:
32: def cleanCache(self):
33: """loesche den cache"""
34: for x in self.ZopeFind(self):
35: if isinstance(x[1],CDLICacheObj):
36: self.manage_delObjects([x[0]], None)
37:
38:
39:
40:
41:
42: def manage_addCDLICache(self,REQUEST=None):
43: """add an cdlicache"""
44:
45: ob = CDLICache();
46: self._setObject("CDLICache",ob)
47: if REQUEST is not None:
48: return self.manage_main(self, REQUEST, update_menu=1)
49:
50: manage_addCDLICacheForm = manage_addCDLICache
51: class CDLICacheObj(SimpleItem):
52: def __init__(self,id,value):
53: self.id=id
54: self.value=value
55: def getValue(self):
56: """show thw value"""
57: return self.value
58: def setValue(self,value):
59: self.value=value
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>