commit
69c28400b4
@ -1,8 +1,9 @@ |
||||
<?php |
||||
|
||||
namespace OC\Cache; |
||||
|
||||
class OC_Cache_FileGlobalGC extends \OC\BackgroundJob\Job{ |
||||
class FileGlobalGC extends \OC\BackgroundJob\Job{ |
||||
public function run($argument){ |
||||
OC_Cache_FileGlobal::gc(); |
||||
FileGlobal::gc(); |
||||
} |
||||
} |
||||
|
@ -0,0 +1,77 @@ |
||||
<?php |
||||
/** |
||||
* Copyright (c) 2013 Thomas Tanghus (thomas@tanghus.net) |
||||
* This file is licensed under the Affero General Public License version 3 or |
||||
* later. |
||||
* See the COPYING-README file. |
||||
*/ |
||||
namespace OC\Cache; |
||||
|
||||
/** |
||||
* This interface defines method for accessing the file based user cache. |
||||
*/ |
||||
class UserCache implements \OCP\ICache { |
||||
|
||||
/** |
||||
* @var \OC\Cache\File $userCache |
||||
*/ |
||||
protected $userCache; |
||||
|
||||
public function __construct() { |
||||
$this->userCache = new File(); |
||||
} |
||||
|
||||
/** |
||||
* Get a value from the user cache |
||||
* |
||||
* @param string $key |
||||
* @return mixed |
||||
*/ |
||||
public function get($key) { |
||||
return $this->userCache->get($key); |
||||
} |
||||
|
||||
/** |
||||
* Set a value in the user cache |
||||
* |
||||
* @param string $key |
||||
* @param mixed $value |
||||
* @param int $ttl Time To Live in seconds. Defaults to 60*60*24 |
||||
* @return bool |
||||
*/ |
||||
public function set($key, $value, $ttl = 0) { |
||||
if (empty($key)) { |
||||
return false; |
||||
} |
||||
return $this->userCache->set($key, $value, $ttl); |
||||
} |
||||
|
||||
/** |
||||
* Check if a value is set in the user cache |
||||
* |
||||
* @param string $key |
||||
* @return bool |
||||
*/ |
||||
public function hasKey($key) { |
||||
return $this->userCache->hasKey($key); |
||||
} |
||||
|
||||
/** |
||||
* Remove an item from the user cache |
||||
* |
||||
* @param string $key |
||||
* @return bool |
||||
*/ |
||||
public function remove($key) { |
||||
return $this->userCache->remove($key); |
||||
} |
||||
|
||||
/** |
||||
* clear the user cache of all entries starting with a prefix |
||||
* @param string $prefix (optional) |
||||
* @return bool |
||||
*/ |
||||
public function clear($prefix = '') { |
||||
return $this->userCache->clear($prefix); |
||||
} |
||||
} |
@ -0,0 +1,10 @@ |
||||
<?php |
||||
/** |
||||
* Copyright (c) 2013 Thomas Tanghus (thomas@tanghus.net) |
||||
* This file is licensed under the Affero General Public License version 3 or |
||||
* later. |
||||
* See the COPYING-README file. |
||||
*/ |
||||
|
||||
class OC_Cache extends \OC\Cache { |
||||
} |
@ -0,0 +1,55 @@ |
||||
<?php |
||||
/** |
||||
* Copyright (c) 2013 Thomas Tanghus (thomas@tanghus.net) |
||||
* This file is licensed under the Affero General Public License version 3 or |
||||
* later. |
||||
* See the COPYING-README file. |
||||
*/ |
||||
namespace OCP; |
||||
|
||||
/** |
||||
* This interface defines method for accessing the file based user cache. |
||||
*/ |
||||
interface ICache { |
||||
|
||||
/** |
||||
* Get a value from the user cache |
||||
* |
||||
* @param string $key |
||||
* @return mixed |
||||
*/ |
||||
public function get($key); |
||||
|
||||
/** |
||||
* Set a value in the user cache |
||||
* |
||||
* @param string $key |
||||
* @param mixed $value |
||||
* @param int $ttl Time To Live in seconds. Defaults to 60*60*24 |
||||
* @return bool |
||||
*/ |
||||
public function set($key, $value, $ttl = 0); |
||||
|
||||
/** |
||||
* Check if a value is set in the user cache |
||||
* |
||||
* @param string $key |
||||
* @return bool |
||||
*/ |
||||
public function hasKey($key); |
||||
|
||||
/** |
||||
* Remove an item from the user cache |
||||
* |
||||
* @param string $key |
||||
* @return bool |
||||
*/ |
||||
public function remove($key); |
||||
|
||||
/** |
||||
* clear the user cache of all entries starting with a prefix |
||||
* @param string $prefix (optional) |
||||
* @return bool |
||||
*/ |
||||
public function clear($prefix = ''); |
||||
} |
@ -0,0 +1,68 @@ |
||||
<?php |
||||
/** |
||||
* ownCloud |
||||
* |
||||
* @author Robin Appelman |
||||
* @copyright 2012 Robin Appelman icewind@owncloud.com |
||||
* |
||||
* This library is free software; you can redistribute it and/or |
||||
* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE |
||||
* License as published by the Free Software Foundation; either |
||||
* version 3 of the License, or any later version. |
||||
* |
||||
* This library is distributed in the hope that it will be useful, |
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
* GNU AFFERO GENERAL PUBLIC LICENSE for more details. |
||||
* |
||||
* You should have received a copy of the GNU Affero General Public |
||||
* License along with this library. If not, see <http://www.gnu.org/licenses/>. |
||||
* |
||||
*/ |
||||
|
||||
namespace Test\Cache; |
||||
|
||||
class UserCache extends \Test_Cache { |
||||
private $user; |
||||
private $datadir; |
||||
|
||||
public function setUp() { |
||||
//clear all proxies and hooks so we can do clean testing |
||||
\OC_FileProxy::clearProxies(); |
||||
\OC_Hook::clear('OC_Filesystem'); |
||||
|
||||
//disabled atm |
||||
//enable only the encryption hook if needed |
||||
//if(OC_App::isEnabled('files_encryption')) { |
||||
// OC_FileProxy::register(new OC_FileProxy_Encryption()); |
||||
//} |
||||
|
||||
//set up temporary storage |
||||
\OC\Files\Filesystem::clearMounts(); |
||||
$storage = new \OC\Files\Storage\Temporary(array()); |
||||
\OC\Files\Filesystem::mount($storage,array(),'/'); |
||||
$datadir = str_replace('local::', '', $storage->getId()); |
||||
$this->datadir = \OC_Config::getValue('datadirectory', \OC::$SERVERROOT.'/data'); |
||||
\OC_Config::setValue('datadirectory', $datadir); |
||||
|
||||
\OC_User::clearBackends(); |
||||
\OC_User::useBackend(new \OC_User_Dummy()); |
||||
|
||||
//login |
||||
\OC_User::createUser('test', 'test'); |
||||
|
||||
$this->user = \OC_User::getUser(); |
||||
\OC_User::setUserId('test'); |
||||
|
||||
//set up the users dir |
||||
$rootView=new \OC\Files\View(''); |
||||
$rootView->mkdir('/test'); |
||||
|
||||
$this->instance=new \OC\Cache\UserCache(); |
||||
} |
||||
|
||||
public function tearDown() { |
||||
\OC_User::setUserId($this->user); |
||||
\OC_Config::setValue('datadirectory', $this->datadir); |
||||
} |
||||
} |
Loading…
Reference in new issue