HEX
Server: LiteSpeed
System: Linux d8 4.18.0-553.121.1.lve.el8.x86_64 #1 SMP Thu Apr 30 16:40:41 UTC 2026 x86_64
User: wbwebdes (3015)
PHP: 8.1.31
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: /home/wbwebdes/domains/files.wb-cloud.nl/public_html/lib/private/Memcache/WithLocalCache.php
<?php

/**
 * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
 * SPDX-License-Identifier: AGPL-3.0-or-later
 */
namespace OC\Memcache;

use OCP\Cache\CappedMemoryCache;
use OCP\ICache;

/**
 * Wrap a cache instance with an extra later of local, in-memory caching
 */
class WithLocalCache implements ICache {
	private ICache $inner;
	private CappedMemoryCache $cached;

	public function __construct(ICache $inner, int $localCapacity = 512) {
		$this->inner = $inner;
		$this->cached = new CappedMemoryCache($localCapacity);
	}

	public function get($key) {
		if (isset($this->cached[$key])) {
			return $this->cached[$key];
		} else {
			$value = $this->inner->get($key);
			if (!is_null($value)) {
				$this->cached[$key] = $value;
			}
			return $value;
		}
	}

	public function set($key, $value, $ttl = 0) {
		$this->cached[$key] = $value;
		return $this->inner->set($key, $value, $ttl);
	}

	public function hasKey($key) {
		return isset($this->cached[$key]) || $this->inner->hasKey($key);
	}

	public function remove($key) {
		unset($this->cached[$key]);
		return $this->inner->remove($key);
	}

	public function clear($prefix = '') {
		$this->cached->clear();
		return $this->inner->clear($prefix);
	}

	public static function isAvailable(): bool {
		return false;
	}
}