summaryrefslogtreecommitdiff
path: root/includes/objectcache/HashBagOStuff.php
diff options
context:
space:
mode:
Diffstat (limited to 'includes/objectcache/HashBagOStuff.php')
-rw-r--r--includes/objectcache/HashBagOStuff.php28
1 files changed, 19 insertions, 9 deletions
diff --git a/includes/objectcache/HashBagOStuff.php b/includes/objectcache/HashBagOStuff.php
index 799f26a3..d061eff0 100644
--- a/includes/objectcache/HashBagOStuff.php
+++ b/includes/objectcache/HashBagOStuff.php
@@ -52,9 +52,10 @@ class HashBagOStuff extends BagOStuff {
/**
* @param $key string
+ * @param $casToken[optional] mixed
* @return bool|mixed
*/
- function get( $key ) {
+ function get( $key, &$casToken = null ) {
if ( !isset( $this->bag[$key] ) ) {
return false;
}
@@ -63,6 +64,8 @@ class HashBagOStuff extends BagOStuff {
return false;
}
+ $casToken = $this->bag[$key][0];
+
return $this->bag[$key][0];
}
@@ -78,6 +81,21 @@ class HashBagOStuff extends BagOStuff {
}
/**
+ * @param $casToken mixed
+ * @param $key string
+ * @param $value mixed
+ * @param $exptime int
+ * @return bool
+ */
+ function cas( $casToken, $key, $value, $exptime = 0 ) {
+ if ( $this->get( $key ) === $casToken ) {
+ return $this->set( $key, $value, $exptime );
+ }
+
+ return false;
+ }
+
+ /**
* @param $key string
* @param $time int
* @return bool
@@ -91,12 +109,4 @@ class HashBagOStuff extends BagOStuff {
return true;
}
-
- /**
- * @return array
- */
- function keys() {
- return array_keys( $this->bag );
- }
}
-