* @ingroup Cache
*/
class HashBagOStuff extends BagOStuff {
- var $bag;
+ /** @var array */
+ protected $bag;
function __construct() {
$this->bag = array();
}
/**
- * @param $key string
+ * @param string $key
* @return bool
*/
protected function expire( $key ) {
}
/**
- * @param $key string
+ * @param string $key
+ * @param mixed $casToken [optional]
* @return bool|mixed
*/
- function get( $key ) {
+ function get( $key, &$casToken = null ) {
if ( !isset( $this->bag[$key] ) ) {
return false;
}
return false;
}
+ $casToken = serialize( $this->bag[$key][0] );
+
return $this->bag[$key][0];
}
/**
- * @param $key string
- * @param $value mixed
- * @param $exptime int
+ * @param string $key
+ * @param mixed $value
+ * @param int $exptime
* @return bool
*/
function set( $key, $value, $exptime = 0 ) {
}
/**
- * @param $key string
- * @param $time int
+ * @param mixed $casToken
+ * @param string $key
+ * @param mixed $value
+ * @param int $exptime
+ * @return bool
+ */
+ function cas( $casToken, $key, $value, $exptime = 0 ) {
+ if ( serialize( $this->get( $key ) ) === $casToken ) {
+ return $this->set( $key, $value, $exptime );
+ }
+
+ return false;
+ }
+
+ /**
+ * @param string $key
+ * @param int $time
* @return bool
*/
function delete( $key, $time = 0 ) {
return true;
}
-
- /**
- * @return array
- */
- function keys() {
- return array_keys( $this->bag );
- }
}
-