File:  [Repository] / cdli / cdliCache.py
Revision 1.2: download - view: text, annotated - select for diffs - revision graph
Tue Sep 1 08:36:04 2009 UTC (14 years, 9 months ago) by dwinter
Branches: MAIN
CVS tags: HEAD
caching problem fixed

    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>