summaryrefslogtreecommitdiffstats
path: root/lib/private/memcache/memcached.php
diff options
context:
space:
mode:
authorRobin Appelman <icewind@owncloud.com>2015-04-28 15:39:38 +0200
committerRobin Appelman <icewind@owncloud.com>2015-04-30 14:48:36 +0200
commit29213b6136a4b2f71e5f981e9bc08e3e76128d4e (patch)
tree986bdf2bce27ff1c2b49828625c7f632d15cb865 /lib/private/memcache/memcached.php
parentd308ec4f0ea54e8cb0c99228a480da8cb7cf30a8 (diff)
downloadnextcloud-server-29213b6136a4b2f71e5f981e9bc08e3e76128d4e.tar.gz
nextcloud-server-29213b6136a4b2f71e5f981e9bc08e3e76128d4e.zip
extends memcache with add, inc and dec
Diffstat (limited to 'lib/private/memcache/memcached.php')
-rw-r--r--lib/private/memcache/memcached.php39
1 files changed, 38 insertions, 1 deletions
diff --git a/lib/private/memcache/memcached.php b/lib/private/memcache/memcached.php
index a2b3440317f..9566e54c42b 100644
--- a/lib/private/memcache/memcached.php
+++ b/lib/private/memcache/memcached.php
@@ -24,7 +24,9 @@
namespace OC\Memcache;
-class Memcached extends Cache {
+use OCP\IMemcache;
+
+class Memcached extends Cache implements IMemcache {
/**
* @var \Memcached $cache
*/
@@ -100,6 +102,41 @@ class Memcached extends Cache {
return true;
}
+ /**
+ * Set a value in the cache if it's not already stored
+ *
+ * @param string $key
+ * @param mixed $value
+ * @param int $ttl Time To Live in seconds. Defaults to 60*60*24
+ * @return bool
+ */
+ public function add($key, $value, $ttl = 0) {
+ return self::$cache->add($this->getPrefix() . $key, $value, $ttl);
+ }
+
+ /**
+ * Increase a stored number
+ *
+ * @param string $key
+ * @param int $step
+ * @return int | bool
+ */
+ public function inc($key, $step = 1) {
+ $this->add($key, 0);
+ return self::$cache->increment($this->getPrefix() . $key, $step);
+ }
+
+ /**
+ * Decrease a stored number
+ *
+ * @param string $key
+ * @param int $step
+ * @return int | bool
+ */
+ public function dec($key, $step = 1) {
+ return self::$cache->decrement($this->getPrefix() . $key, $step);
+ }
+
static public function isAvailable() {
return extension_loaded('memcached');
}