/usr/share/php/Horde/Kolab/Storage/Data/Query/History/Cache.php is in php-horde-kolab-storage 2.2.1-1ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 | <?php
/**
* The cache based hook that updates the Horde history information once data
* gets synchronized with the Kolab backend.
*
* PHP version 5
*
* @category Kolab
* @package Kolab_Storage
* @author Gunnar Wrobel <wrobel@pardus.de>
* @license http://www.horde.org/licenses/lgpl21 LGPL 2.1
* @link http://pear.horde.org/index.php?package=Kolab_Storage
*/
/**
* The cache based hook that updates the Horde history information once data
* gets synchronized with the Kolab backend.
*
* Copyright 2011-2016 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.
*
* @category Kolab
* @package Kolab_Storage
* @author Gunnar Wrobel <wrobel@pardus.de>
* @license http://www.horde.org/licenses/lgpl21 LGPL 2.1
* @link http://pear.horde.org/index.php?package=Kolab_Storage
*/
class Horde_Kolab_Storage_Data_Query_History_Cache
extends Horde_Kolab_Storage_Data_Query_History_Base
{
/**
* 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
);
}
}
}
|