c233f2c90b
Prevents to have the cache reused by other instances on the server which have possible the same instance ID and also invalidates older cache entries after an upgrade which can cause unwanted side-effects. Impact for deployment: The same cache will only get used if ownCloud is installed with the same version and under the same path. But this should be a basic requirement anyways.
80 lines
1.4 KiB
PHP
80 lines
1.4 KiB
PHP
<?php
|
|
/**
|
|
* Copyright (c) 2013 Robin Appelman <icewind@owncloud.com>
|
|
* This file is licensed under the Affero General Public License version 3 or
|
|
* later.
|
|
* See the COPYING-README file.
|
|
*/
|
|
|
|
namespace OC\Memcache;
|
|
|
|
abstract class Cache implements \ArrayAccess, \OCP\ICache {
|
|
/**
|
|
* @var string $prefix
|
|
*/
|
|
protected $prefix;
|
|
|
|
/**
|
|
* @param string $prefix
|
|
*/
|
|
public function __construct($prefix = '') {
|
|
$this->prefix = $prefix;
|
|
}
|
|
|
|
/**
|
|
* @return string Prefix used for caching purposes
|
|
*/
|
|
public function getPrefix() {
|
|
return $this->prefix;
|
|
}
|
|
|
|
/**
|
|
* @param string $key
|
|
* @return mixed
|
|
*/
|
|
abstract public function get($key);
|
|
|
|
/**
|
|
* @param string $key
|
|
* @param mixed $value
|
|
* @param int $ttl
|
|
* @return mixed
|
|
*/
|
|
abstract public function set($key, $value, $ttl = 0);
|
|
|
|
/**
|
|
* @param string $key
|
|
* @return mixed
|
|
*/
|
|
abstract public function hasKey($key);
|
|
|
|
/**
|
|
* @param string $key
|
|
* @return mixed
|
|
*/
|
|
abstract public function remove($key);
|
|
|
|
/**
|
|
* @param string $prefix
|
|
* @return mixed
|
|
*/
|
|
abstract public function clear($prefix = '');
|
|
|
|
//implement the ArrayAccess interface
|
|
|
|
public function offsetExists($offset) {
|
|
return $this->hasKey($offset);
|
|
}
|
|
|
|
public function offsetSet($offset, $value) {
|
|
$this->set($offset, $value);
|
|
}
|
|
|
|
public function offsetGet($offset) {
|
|
return $this->get($offset);
|
|
}
|
|
|
|
public function offsetUnset($offset) {
|
|
$this->remove($offset);
|
|
}
|
|
}
|