3 namespace Friendica\Core\Cache;
6 * Trait TraitCompareSetDelete
8 * This Trait is to compensate non native "exclusive" sets/deletes in caches
10 * @package Friendica\Core\Cache
12 trait TraitCompareDelete
14 abstract public function get($key);
16 abstract public function set($key, $value, $ttl = Cache::FIVE_MINUTES);
18 abstract public function delete($key);
20 abstract public function add($key, $value, $ttl = Cache::FIVE_MINUTES);
23 * NonNative - Compares if the old value is set and removes it
25 * @param string $key The cache key
26 * @param mixed $value The old value we know and want to delete
29 public function compareDelete($key, $value) {
30 if ($this->add($key . "_lock", true)) {
31 if ($this->get($key) === $value) {
33 $this->delete($key . "_lock");
36 $this->delete($key . "_lock");