diff options
author | Thomas Müller <thomas.mueller@tmit.eu> | 2013-09-25 13:36:30 +0200 |
---|---|---|
committer | Thomas Müller <thomas.mueller@tmit.eu> | 2013-09-30 16:36:59 +0200 |
commit | 9c9dc276b7a1d2592c4fb0a887888632dc1f1e29 (patch) | |
tree | bbe3aed3e09c31c68806bdb8acffef70ba08f51c /lib/private/cache.php | |
parent | a711399e62d5a9f14d4b748efe4354ee37e61f13 (diff) | |
download | nextcloud-server-9c9dc276b7a1d2592c4fb0a887888632dc1f1e29.tar.gz nextcloud-server-9c9dc276b7a1d2592c4fb0a887888632dc1f1e29.zip |
move the private namespace OC into lib/private - OCP will stay in lib/public
Conflicts:
lib/private/vcategories.php
Diffstat (limited to 'lib/private/cache.php')
-rw-r--r-- | lib/private/cache.php | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/lib/private/cache.php b/lib/private/cache.php new file mode 100644 index 00000000000..a311f10a00f --- /dev/null +++ b/lib/private/cache.php @@ -0,0 +1,112 @@ +<?php +/** + * Copyright (c) 2012 Bart Visscher <bartv@thisnet.nl> + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +namespace OC; + +class Cache { + /** + * @var Cache $user_cache + */ + static protected $user_cache; + /** + * @var Cache $global_cache + */ + static protected $global_cache; + + /** + * get the global cache + * @return Cache + */ + static public function getGlobalCache() { + if (!self::$global_cache) { + self::$global_cache = new Cache\FileGlobal(); + } + return self::$global_cache; + } + + /** + * get the user cache + * @return Cache + */ + static public function getUserCache() { + if (!self::$user_cache) { + self::$user_cache = new Cache\File(); + } + return self::$user_cache; + } + + /** + * get a value from the user cache + * @param string $key + * @return mixed + */ + static public function get($key) { + $user_cache = self::getUserCache(); + return $user_cache->get($key); + } + + /** + * set a value in the user cache + * @param string $key + * @param mixed $value + * @param int $ttl + * @return bool + */ + static public function set($key, $value, $ttl=0) { + if (empty($key)) { + return false; + } + $user_cache = self::getUserCache(); + return $user_cache->set($key, $value, $ttl); + } + + /** + * check if a value is set in the user cache + * @param string $key + * @return bool + */ + static public function hasKey($key) { + $user_cache = self::getUserCache(); + return $user_cache->hasKey($key); + } + + /** + * remove an item from the user cache + * @param string $key + * @return bool + */ + static public function remove($key) { + $user_cache = self::getUserCache(); + return $user_cache->remove($key); + } + + /** + * clear the user cache of all entries starting with a prefix + * @param string $prefix (optional) + * @return bool + */ + static public function clear($prefix='') { + $user_cache = self::getUserCache(); + return $user_cache->clear($prefix); + } + + /** + * creates cache key based on the files given + * @param $files + * @return string + */ + static public function generateCacheKeyFromFiles($files) { + $key = ''; + sort($files); + foreach($files as $file) { + $stat = stat($file); + $key .= $file.$stat['mtime'].$stat['size']; + } + return md5($key); + } +} |