Copyright 2011-2014 Horde LLC (http://www.horde.org/) See the enclosed file COPYING for license information (LGPL). If you did not receive this file, see http://www.horde.org/licenses/lgpl21.
Author: Gunnar Wrobel (wrobel@pardus.de)
Inheritance: implements Horde_Kolab_Storage_Data_Query_History
Beispiel #1
0
 /**
  * Synchronize the preferences information with the information from the
  * backend.
  *
  * @param array $params Additional parameters.
  *
  * @return NULL
  */
 public function synchronize($params = array())
 {
     if (isset($params['last_sync']) && ($params['last_sync'] === false || $params['last_sync'] !== $this->history->getActionTimestamp(__CLASS__, 'sync'))) {
         /**
          * Ignore current changeset and do a full synchronization as we are
          * out of sync
          */
         unset($params['changes']);
     }
     parent::synchronize($params);
     if (isset($params['current_sync'])) {
         $this->history->log(__CLASS__, array('action' => 'sync', 'ts' => $params['current_sync']));
     }
 }
Beispiel #2
0
 /**
  * Synchronize the preferences information with the information from the
  * backend.
  *
  * @param array $params Additional parameters:
  *   - current_sync: (integer) Timestamp of the current sync.
  *   - last_sync:    (integer) Timestamp containing the time of last sync.
  *   - changes:      (array)   An array of arrays keyed by backend id
  *                             containing information about each change.
  */
 public function synchronize($params = array())
 {
     $timestamp_key = 'Kolab_History_Sync:' . $this->_data->getId();
     /**
      * Check if we need to do a full synchronization. If our stored 'last_sync'
      * timestamp is newer than the logged 'sync' action in the history database,
      * the last history update aborted for some reason.
      *
      * If the 'sync' action from the history database is newer, it means
      * our in-memory version of the data_cache was outdated
      * and already updated by another process.
      */
     if (isset($params['last_sync']) && ($params['last_sync'] === false || $params['last_sync'] > $this->_history->getActionTimestamp($timestamp_key, 'sync'))) {
         $folder_id = $this->_data->getIdParameters();
         unset($folder_id['type']);
         $this->_logger->debug(sprintf('[KOLAB_STORAGE] Resyncing Horde_History for Kolab: last_sync: %d, logged sync: %d, folder. %s', $params['last_sync'], $this->_history->getActionTimestamp($timestamp_key, 'sync'), print_r($folder_id, true)));
         unset($params['changes']);
     }
     // Sync. Base class takes care of UIDVALIDITY changes.
     parent::synchronize($params);
     if (isset($params['current_sync'])) {
         $this->_history->log($timestamp_key, array('action' => 'sync', 'ts' => $params['current_sync']), true);
     }
 }