Overview

Packages

  • Kolab
    • Storage

Classes

  • Horde_Kolab_Storage_Base
  • Horde_Kolab_Storage_Cache
  • Horde_Kolab_Storage_Cache_Data
  • Horde_Kolab_Storage_Cache_List
  • Horde_Kolab_Storage_Cached
  • Horde_Kolab_Storage_Data_Base
  • Horde_Kolab_Storage_Data_Cached
  • Horde_Kolab_Storage_Data_Decorator_Log
  • Horde_Kolab_Storage_Data_Format_Mime
  • Horde_Kolab_Storage_Data_Modifiable
  • Horde_Kolab_Storage_Data_Old
  • Horde_Kolab_Storage_Data_Parser_Structure
  • Horde_Kolab_Storage_Data_Query_History_Base
  • Horde_Kolab_Storage_Data_Query_History_Cache
  • Horde_Kolab_Storage_Data_Query_Preferences_Base
  • Horde_Kolab_Storage_Data_Query_Preferences_Cache
  • Horde_Kolab_Storage_Decorator_Synchronization
  • Horde_Kolab_Storage_Driver_Base
  • Horde_Kolab_Storage_Driver_Cclient
  • Horde_Kolab_Storage_Driver_Decorator_Base
  • Horde_Kolab_Storage_Driver_Decorator_Log
  • Horde_Kolab_Storage_Driver_Decorator_Timer
  • Horde_Kolab_Storage_Driver_Imap
  • Horde_Kolab_Storage_Driver_Mock
  • Horde_Kolab_Storage_Driver_Mock_Data
  • Horde_Kolab_Storage_Driver_Pear
  • Horde_Kolab_Storage_Driver_Rcube
  • Horde_Kolab_Storage_Exception
  • Horde_Kolab_Storage_Exception_Pear
  • Horde_Kolab_Storage_Factory
  • Horde_Kolab_Storage_Folder_Base
  • Horde_Kolab_Storage_Folder_Decorator_Base
  • Horde_Kolab_Storage_Folder_Decorator_Trigger
  • Horde_Kolab_Storage_Folder_Namespace
  • Horde_Kolab_Storage_Folder_Namespace_Config
  • Horde_Kolab_Storage_Folder_Namespace_Element
  • Horde_Kolab_Storage_Folder_Namespace_Element_Other
  • Horde_Kolab_Storage_Folder_Namespace_Element_Personal
  • Horde_Kolab_Storage_Folder_Namespace_Element_Shared
  • Horde_Kolab_Storage_Folder_Namespace_Element_SharedWithPrefix
  • Horde_Kolab_Storage_Folder_Namespace_Fixed
  • Horde_Kolab_Storage_Folder_Namespace_Imap
  • Horde_Kolab_Storage_Folder_Stamp_Uids
  • Horde_Kolab_Storage_Folder_Type
  • Horde_Kolab_Storage_List_Base
  • Horde_Kolab_Storage_List_Decorator_Cache
  • Horde_Kolab_Storage_List_Decorator_Log
  • Horde_Kolab_Storage_List_Query_Acl_Base
  • Horde_Kolab_Storage_List_Query_Acl_Cache
  • Horde_Kolab_Storage_List_Query_ActiveSync_Base
  • Horde_Kolab_Storage_List_Query_ActiveSync_Cache
  • Horde_Kolab_Storage_List_Query_List_Base
  • Horde_Kolab_Storage_List_Query_List_Cache
  • Horde_Kolab_Storage_List_Query_Share_Base
  • Horde_Kolab_Storage_List_Query_Share_Cache
  • Horde_Kolab_Storage_QuerySet_Base
  • Horde_Kolab_Storage_QuerySet_Cached
  • Horde_Kolab_Storage_QuerySet_Uncached
  • Horde_Kolab_Storage_Synchronization
  • Horde_Kolab_Storage_Translation
  • Horde_Kolab_Storage_Uncached

Interfaces

  • Horde_Kolab_Storage
  • Horde_Kolab_Storage_Data
  • Horde_Kolab_Storage_Data_Format
  • Horde_Kolab_Storage_Data_Parser
  • Horde_Kolab_Storage_Data_Query
  • Horde_Kolab_Storage_Data_Query_History
  • Horde_Kolab_Storage_Data_Query_Preferences
  • Horde_Kolab_Storage_Driver
  • Horde_Kolab_Storage_Folder
  • Horde_Kolab_Storage_Folder_Stamp
  • Horde_Kolab_Storage_List
  • Horde_Kolab_Storage_List_Query
  • Horde_Kolab_Storage_List_Query_Acl
  • Horde_Kolab_Storage_List_Query_ActiveSync
  • Horde_Kolab_Storage_List_Query_List
  • Horde_Kolab_Storage_List_Query_Share
  • Horde_Kolab_Storage_Queriable
  • Horde_Kolab_Storage_Query
  • Horde_Kolab_Storage_QuerySet
  • Overview
  • Package
  • Class
  • Tree
  1: <?php
  2: /**
  3:  * The cached variant for the Kolab storage handler [the default].
  4:  *
  5:  * PHP version 5
  6:  *
  7:  * @category Kolab
  8:  * @package  Kolab_Storage
  9:  * @author   Gunnar Wrobel <wrobel@pardus.de>
 10:  * @license  http://www.horde.org/licenses/lgpl21 LGPL 2.1
 11:  * @link     http://pear.horde.org/index.php?package=Kolab_Storage
 12:  */
 13: 
 14: /**
 15:  * The cached variant for the Kolab storage handler [the default].
 16:  *
 17:  * Copyright 2004-2012 Horde LLC (http://www.horde.org/)
 18:  *
 19:  * See the enclosed file COPYING for license information (LGPL). If you
 20:  * did not receive this file, see http://www.horde.org/licenses/lgpl21.
 21:  *
 22:  * @category Kolab
 23:  * @package  Kolab_Storage
 24:  * @author   Gunnar Wrobel <wrobel@pardus.de>
 25:  * @license  http://www.horde.org/licenses/lgpl21 LGPL 2.1
 26:  * @link     http://pear.horde.org/index.php?package=Kolab_Storage
 27:  */
 28: class Horde_Kolab_Storage_Cached
 29: extends Horde_Kolab_Storage_Base
 30: {
 31:     /**
 32:      * The cache.
 33:      *
 34:      * @var Horde_Kolab_Storage_Cache
 35:      */
 36:     private $_cache;
 37: 
 38:     /**
 39:      * Constructor.
 40:      *
 41:      * @param Horde_Kolab_Storage_Driver   $master     The primary connection
 42:      *                                                 driver.
 43:      * @param Horde_Kolab_Storage_QuerySet $query_set  The query handler.
 44:      * @param Horde_Kolab_Storage_Factory  $factory    The factory.
 45:      * @param Horde_Kolab_Storage_Cache    $cache      The cache.
 46:      * @param array                        $params     Additional parameters.
 47:      */
 48:     public function __construct(Horde_Kolab_Storage_Driver $master,
 49:                                 Horde_Kolab_Storage_QuerySet $query_set,
 50:                                 Horde_Kolab_Storage_Factory $factory,
 51:                                 Horde_Kolab_Storage_Cache $cache,
 52:                                 array $params = array())
 53:     {
 54:         parent::__construct($master, $query_set, $factory, $params);
 55:         $this->_cache = $cache;
 56:     }
 57: 
 58:     /**
 59:      * Create the folder list object.
 60:      *
 61:      * @param Horde_Kolab_Storage_Driver  $master  The primary connection driver.
 62:      * @param Horde_Kolab_Storage_Factory $factory The factory.
 63:      *
 64:      * @return Horde_Kolab_Storage_List The handler for the list of folders
 65:      *                                  present in the Kolab backend.
 66:      */
 67:     protected function _createList(Horde_Kolab_Storage_Driver $master,
 68:                                    Horde_Kolab_Storage_Factory $factory)
 69:     {
 70:         $decorated_list = new Horde_Kolab_Storage_List_Base($master, $factory);
 71:         $list_cache = $this->_cache->getListCache(
 72:             $decorated_list->getIdParameters()
 73:         );
 74:         $list = new Horde_Kolab_Storage_List_Decorator_Cache(
 75:             $decorated_list,
 76:             $list_cache
 77:         );
 78:         return $list;
 79:     }
 80: 
 81:     /**
 82:      * Return a data handler for accessing data in the specified
 83:      * folder.
 84:      *
 85:      * @param mixed                       $folder       The name of the folder or
 86:      *                                                  an instance representing
 87:      *                                                  the folder.
 88:      * @param Horde_Kolab_Storage_Driver  $master       The primary connection
 89:      *                                                  driver.
 90:      * @param Horde_Kolab_Storage_Factory $factory      The factory.
 91:      * @param string                      $object_type  The type of data we want
 92:      *                                                  to access in the folder.
 93:      * @param int                         $data_version Format version of the
 94:      *                                                  object data.
 95:      *
 96:      * @return Horde_Kolab_Data The data object.
 97:      */
 98:     protected function _createData($folder,
 99:                                    Horde_Kolab_Storage_Driver $master,
100:                                    Horde_Kolab_Storage_Factory $factory,
101:                                    $object_type = null,
102:                                    $data_version = 1)
103:     {
104:         return new Horde_Kolab_Storage_Data_Cached(
105:             $folder,
106:             $master,
107:             $factory,
108:             $this->_cache,
109:             $object_type,
110:             $data_version
111:         );
112:     }
113: }
API documentation generated by ApiGen