* @ingroup Cache
*/
class WinCacheBagOStuff extends MediumSpecificBagOStuff {
+ public function __construct( array $params = [] ) {
+ $params['segmentationSize'] = $params['segmentationSize'] ?? INF;
+ parent::__construct( $params );
+ }
+
protected function doGet( $key, $flags = 0, &$casToken = null ) {
$casToken = null;
return $value;
}
- protected function cas( $casToken, $key, $value, $exptime = 0, $flags = 0 ) {
+ protected function doCas( $casToken, $key, $value, $exptime = 0, $flags = 0 ) {
if ( !wincache_lock( $key ) ) { // optimize with FIFO lock
return false;
}
return ( $result === [] || $result === true );
}
- public function add( $key, $value, $exptime = 0, $flags = 0 ) {
+ protected function doAdd( $key, $value, $exptime = 0, $flags = 0 ) {
if ( wincache_ucache_exists( $key ) ) {
return false; // avoid warnings
}
return true;
}
- /**
- * Construct a cache key.
- *
- * @since 1.27
- * @param string $keyspace
- * @param array $args
- * @return string
- */
public function makeKeyInternal( $keyspace, $args ) {
// WinCache keys have a maximum length of 150 characters. From that,
// subtract the number of characters we need for the keyspace and for
return $keyspace . ':' . implode( ':', $args );
}
- /**
- * Increase stored value of $key by $value while preserving its original TTL
- * @param string $key Key to increase
- * @param int $value Value to add to $key (Default 1)
- * @return int|bool New value or false on failure
- */
- public function incr( $key, $value = 1 ) {
+ public function incr( $key, $value = 1, $flags = 0 ) {
if ( !wincache_lock( $key ) ) { // optimize with FIFO lock
return false;
}
return $n;
}
+
+ public function decr( $key, $value = 1, $flags = 0 ) {
+ return $this->incr( $key, -$value, $flags );
+ }
}