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, 8 months ago) by dwinter
Branches: MAIN
CVS tags: HEAD
caching problem fixed

# Caache for the search results in the Basket

from OFS.SimpleItem import SimpleItem
from OFS.Folder import Folder
import logging

class CDLICache(Folder):
    """Cache for search results"""
    meta_type="CDLICache"
    def __init__(self):
        self.id="CDLICache"
    
    def retrieve(self,key):
        if key is None:
            return None
        logging.info("retrieve: %s"%key)
        obj = getattr(self,key,None)
        if obj is None:
           return None
        else:
           logging.info("---value from cache")
           return obj.getValue()
   
    def store(self,key,value):
        obj = getattr(self,key,None)
        if obj is None:
            obj=CDLICacheObj(key,value)
            self._setObject(key,obj)
        else:
            obj.setValue(value)
            
    def cleanCache(self):
        """loesche den cache"""
        for x in self.ZopeFind(self):
            if isinstance(x[1],CDLICacheObj):
                self.manage_delObjects([x[0]], None)
            




def manage_addCDLICache(self,REQUEST=None):
    """add an cdlicache"""
    
    ob = CDLICache();
    self._setObject("CDLICache",ob)
    if REQUEST is not None:
        return self.manage_main(self, REQUEST, update_menu=1)    
 
manage_addCDLICacheForm = manage_addCDLICache
class CDLICacheObj(SimpleItem):
    def __init__(self,id,value):
        self.id=id
        self.value=value
    def getValue(self):
        """show thw value"""
        return self.value
    def setValue(self,value):
        self.value=value

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>