forked from extern/egroupware
92 lines
2.3 KiB
PHP
92 lines
2.3 KiB
PHP
|
<?php
|
||
|
/**
|
||
|
* EGroupware EMailAdmin: Horde_Cache compatible class using egw_cache
|
||
|
*
|
||
|
* @link http://www.stylite.de
|
||
|
* @package emailadmin
|
||
|
* @author Ralf Becker <rb-AT-stylite.de>
|
||
|
* @copyright (c) 2013 by Ralf Becker <rb-AT-stylite.de>
|
||
|
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
|
||
|
* @version $Id$
|
||
|
*/
|
||
|
|
||
|
/**
|
||
|
* Horde_Cache compatible class using egw_cache
|
||
|
*/
|
||
|
class emailadmin_horde_cache
|
||
|
{
|
||
|
/**
|
||
|
* App to use
|
||
|
*/
|
||
|
const APP = 'mail';
|
||
|
/**
|
||
|
* How to cache: instance-specific
|
||
|
*/
|
||
|
const LEVEL = egw_cache::INSTANCE;
|
||
|
|
||
|
/**
|
||
|
* Retrieve cached data.
|
||
|
*
|
||
|
* @param string $key Object ID to query.
|
||
|
* @param integer $lifetime Lifetime of the object in seconds.
|
||
|
*
|
||
|
* @return mixed Cached data, or false if none was found.
|
||
|
*/
|
||
|
public function get($key, $lifetime = 0)
|
||
|
{
|
||
|
$ret = egw_cache::getCache(self::LEVEL, 'mail', $key);
|
||
|
|
||
|
return !is_null($ret) ? $ret : false;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Store an object in the cache.
|
||
|
*
|
||
|
* @param string $key Object ID used as the caching key.
|
||
|
* @param mixed $data Data to store in the cache.
|
||
|
* @param integer $lifetime Object lifetime - i.e. the time before the
|
||
|
* data becomes available for garbage
|
||
|
* collection. If 0 will not be GC'd.
|
||
|
*/
|
||
|
public function set($key, $data, $lifetime = 0)
|
||
|
{
|
||
|
egw_cache::setCache(self::LEVEL, 'mail', $key, $data, $lifetime);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Checks if a given key exists in the cache, valid for the given
|
||
|
* lifetime.
|
||
|
*
|
||
|
* @param string $key Cache key to check.
|
||
|
* @param integer $lifetime Lifetime of the key in seconds.
|
||
|
*
|
||
|
* @return boolean Existence.
|
||
|
*/
|
||
|
public function exists($key, $lifetime = 0)
|
||
|
{
|
||
|
return !is_null(egw_cache::getCache(self::LEVEL, 'mail', $key));
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Expire any existing data for the given key.
|
||
|
*
|
||
|
* @param string $key Cache key to expire.
|
||
|
*
|
||
|
* @return boolean Success or failure.
|
||
|
*/
|
||
|
public function expire($key)
|
||
|
{
|
||
|
egw_cache::unsetCache(self::LEVEL, 'mail', $key);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Clears all data from the cache.
|
||
|
*
|
||
|
* @throws Horde_Cache_Exception
|
||
|
*/
|
||
|
public function clear()
|
||
|
{
|
||
|
egw_cache::flush(self::LEVEL, self::APP);
|
||
|
}
|
||
|
}
|