Описание cachestore:

  Автор --  Андрей Орлов
  
  Версия -- $Id: cachestore.txt 49600 2008-01-21 11:08:39Z cray $

  Аннотация: 
  
    Кеш форматированных атрибутов объекта - это специальный объект, задающий отображение ::
    
        (объект, атрибут) -> (конвертированное значение атрибута, конвертор, дата занесения).

    Кеш поддерживает валидность своего содержимого: при обращении проверяется не изменился ли
    конфертор и сам объект с момента занесения значения в кеш. Если изменился - выполняется
    обновление.
    
    Кеш ведет статистику: сколько записей, как они распределены по времени, суммарный объем 
    и т.п. 
    
    Кеш обладает параметрами: 
    
        максимальное время кеширования -- при превышении этого времени
            обращение к кешу вызывает регенерацию записи;
            
  Виды:
  
    contents -- Содержимое кеша;
    
    clean -- Очистка кеша;

    statistic -- Статистика кеша;
    
    edit -- Параметры кеша;
    
    regenerate -- Перегенерация кеша;

  Способ реализации и интерфейс:
  
    Хотя существует возможность реализации кеша точно так, как написано
    (словарь, ключи которого оразованы кортежами (идентификатор объекта,
    атрибут), а значение кортежами (конвертированное значение атрибута,
    конвертор, дата занесения)), такая реализация потребует дополнитеьной
    работы, так как работу кеша нельозя будет свести к известным в Zope
    интерфейсам (IContainer и т.п).
    
    Поэтому кеш реализуется как отображение уникальных (строковых)
    идентификаторов объектов на специальный объект cachestoreitem (см.
    описание). Идентификатор объекта может быть получен из _p_oid (см. коды
    ZODB), что нежелательно, или с помощью утилиты IntId (см. пример в
    Quota).
    
    В этом случае, в качестве собственно контейнера удобно использовать
    IOBTree (пример там же), а сам кеш должен предоставлять следующие интерфейсы:
    
        IContainer
        
        ICachestoreStat -- статистика;
        
        ICachestore -- параметры и специализированные методы;
        
    ICachestore предоставляет метод для поиска конвертора и конвертирования (convert()),
    идея которого следующая:
    
    Существует адаптер object2psadapter, вызывающий адаптирование объекта к
    интерфейсу "IPropertySheet". Вызов этого адаптера гарантировано
    разместит данные в кеше (вызывая методы IContainer), в том случае если
    их там еще нет или они устарели.

  Аналоги и базовые классы:
  
    Обратите внимание, что существуют аналоги продукта cachestore, хранящие
    кешированные записи в других местах (в частности - в sql), поэтому
    продукт предоставляет базовый класс, который может использоваться в
    других реализациях кеша, и собственно класс cachestore, в который
    домешан класс Persistent.
        