%PDF- %PDF-
Direktori : /www/varak.net/nextcloud.varak.net/lib/private/Memcache/ |
Current File : /www/varak.net/nextcloud.varak.net/lib/private/Memcache/CASTrait.php |
<?php /** * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors * SPDX-FileCopyrightText: 2016 ownCloud, Inc. * SPDX-License-Identifier: AGPL-3.0-only */ namespace OC\Memcache; trait CASTrait { abstract public function get($key); abstract public function set($key, $value, $ttl = 0); abstract public function remove($key); abstract public function add($key, $value, $ttl = 0); /** * Compare and set * * @param string $key * @param mixed $old * @param mixed $new * @return bool */ public function cas($key, $old, $new) { //no native cas, emulate with locking if ($this->add($key . '_lock', true)) { if ($this->get($key) === $old) { $this->set($key, $new); $this->remove($key . '_lock'); return true; } else { $this->remove($key . '_lock'); return false; } } else { return false; } } }