Browse Source

chore: Remove unused \OC\Cache\CappedMemoryCache

Signed-off-by: provokateurin <kate@provokateurin.de>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
pull/53920/head
provokateurin 6 months ago
committed by nextcloud-command
parent
commit
e38dfef0dc
  1. 11
      build/psalm-baseline.xml
  2. 4
      dist/settings-vue-settings-personal-info.js
  3. 2
      dist/settings-vue-settings-personal-info.js.map
  4. 1
      lib/composer/composer/autoload_classmap.php
  5. 1
      lib/composer/composer/autoload_static.php
  6. 109
      lib/private/Cache/CappedMemoryCache.php
  7. 65
      tests/lib/Cache/CappedMemoryCacheTest.php

11
build/psalm-baseline.xml

@ -3452,17 +3452,6 @@
<code><![CDATA[$this->providers]]></code>
</UndefinedInterfaceMethod>
</file>
<file src="lib/private/Cache/CappedMemoryCache.php">
<MissingTemplateParam>
<code><![CDATA[\ArrayAccess]]></code>
</MissingTemplateParam>
</file>
<file src="lib/private/Cache/File.php">
<LessSpecificImplementedReturnType>
<code><![CDATA[bool|mixed]]></code>
<code><![CDATA[bool|mixed]]></code>
</LessSpecificImplementedReturnType>
</file>
<file src="lib/private/Calendar/Manager.php">
<LessSpecificReturnStatement>
<code><![CDATA[array_merge(

4
dist/settings-vue-settings-personal-info.js
File diff suppressed because it is too large
View File

2
dist/settings-vue-settings-personal-info.js.map
File diff suppressed because it is too large
View File

1
lib/composer/composer/autoload_classmap.php

@ -1183,7 +1183,6 @@ return array(
'OC\\BinaryFinder' => $baseDir . '/lib/private/BinaryFinder.php',
'OC\\Blurhash\\Listener\\GenerateBlurhashMetadata' => $baseDir . '/lib/private/Blurhash/Listener/GenerateBlurhashMetadata.php',
'OC\\Broadcast\\Events\\BroadcastEvent' => $baseDir . '/lib/private/Broadcast/Events/BroadcastEvent.php',
'OC\\Cache\\CappedMemoryCache' => $baseDir . '/lib/private/Cache/CappedMemoryCache.php',
'OC\\Calendar\\AvailabilityResult' => $baseDir . '/lib/private/Calendar/AvailabilityResult.php',
'OC\\Calendar\\CalendarEventBuilder' => $baseDir . '/lib/private/Calendar/CalendarEventBuilder.php',
'OC\\Calendar\\CalendarQuery' => $baseDir . '/lib/private/Calendar/CalendarQuery.php',

1
lib/composer/composer/autoload_static.php

@ -1224,7 +1224,6 @@ class ComposerStaticInit749170dad3f5e7f9ca158f5a9f04f6a2
'OC\\BinaryFinder' => __DIR__ . '/../../..' . '/lib/private/BinaryFinder.php',
'OC\\Blurhash\\Listener\\GenerateBlurhashMetadata' => __DIR__ . '/../../..' . '/lib/private/Blurhash/Listener/GenerateBlurhashMetadata.php',
'OC\\Broadcast\\Events\\BroadcastEvent' => __DIR__ . '/../../..' . '/lib/private/Broadcast/Events/BroadcastEvent.php',
'OC\\Cache\\CappedMemoryCache' => __DIR__ . '/../../..' . '/lib/private/Cache/CappedMemoryCache.php',
'OC\\Calendar\\AvailabilityResult' => __DIR__ . '/../../..' . '/lib/private/Calendar/AvailabilityResult.php',
'OC\\Calendar\\CalendarEventBuilder' => __DIR__ . '/../../..' . '/lib/private/Calendar/CalendarEventBuilder.php',
'OC\\Calendar\\CalendarQuery' => __DIR__ . '/../../..' . '/lib/private/Calendar/CalendarQuery.php',

109
lib/private/Cache/CappedMemoryCache.php

@ -1,109 +0,0 @@
<?php
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
* SPDX-License-Identifier: AGPL-3.0-only
*/
namespace OC\Cache;
use OCP\ICache;
/**
* In-memory cache with a capacity limit to keep memory usage in check
*
* Uses a simple FIFO expiry mechanism
* @template T
* @deprecated 25.0.0 use OCP\Cache\CappedMemoryCache instead
*/
class CappedMemoryCache implements ICache, \ArrayAccess {
private $capacity;
/** @var T[] */
private $cache = [];
public function __construct($capacity = 512) {
$this->capacity = $capacity;
}
public function hasKey($key): bool {
return isset($this->cache[$key]);
}
/**
* @return ?T
*/
public function get($key) {
return $this->cache[$key] ?? null;
}
/**
* @param string $key
* @param T $value
* @param int $ttl
* @return bool
*/
public function set($key, $value, $ttl = 0): bool {
if (is_null($key)) {
$this->cache[] = $value;
} else {
$this->cache[$key] = $value;
}
$this->garbageCollect();
return true;
}
public function remove($key) {
unset($this->cache[$key]);
return true;
}
public function clear($prefix = '') {
$this->cache = [];
return true;
}
public function offsetExists($offset): bool {
return $this->hasKey($offset);
}
/**
* @return T
*/
#[\ReturnTypeWillChange]
public function &offsetGet($offset) {
return $this->cache[$offset];
}
/**
* @param string $offset
* @param T $value
* @return void
*/
public function offsetSet($offset, $value): void {
$this->set($offset, $value);
}
public function offsetUnset($offset): void {
$this->remove($offset);
}
/**
* @return T[]
*/
public function getData() {
return $this->cache;
}
private function garbageCollect() {
while (count($this->cache) > $this->capacity) {
reset($this->cache);
$key = key($this->cache);
$this->remove($key);
}
}
public static function isAvailable(): bool {
return true;
}
}

65
tests/lib/Cache/CappedMemoryCacheTest.php

@ -1,65 +0,0 @@
<?php
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace Test\Cache;
use OCP\Cache\CappedMemoryCache;
/**
* Class CappedMemoryCacheTest
*
* @package Test\Cache
*/
class CappedMemoryCacheTest extends TestCache {
protected function setUp(): void {
parent::setUp();
$this->instance = new CappedMemoryCache();
}
public function testSetOverCap(): void {
$instance = new CappedMemoryCache(3);
$instance->set('1', 'a');
$instance->set('2', 'b');
$instance->set('3', 'c');
$instance->set('4', 'd');
$instance->set('5', 'e');
$this->assertFalse($instance->hasKey('1'));
$this->assertFalse($instance->hasKey('2'));
$this->assertTrue($instance->hasKey('3'));
$this->assertTrue($instance->hasKey('4'));
$this->assertTrue($instance->hasKey('5'));
}
public function testClear(): void {
$value = 'ipsum lorum';
$this->instance->set('1_value1', $value);
$this->instance->set('1_value2', $value);
$this->instance->set('2_value1', $value);
$this->instance->set('3_value1', $value);
$this->assertTrue($this->instance->clear());
$this->assertFalse($this->instance->hasKey('1_value1'));
$this->assertFalse($this->instance->hasKey('1_value2'));
$this->assertFalse($this->instance->hasKey('2_value1'));
$this->assertFalse($this->instance->hasKey('3_value1'));
}
public function testIndirectSet(): void {
$this->instance->set('array', []);
$this->instance['array'][] = 'foo';
$this->assertEquals(['foo'], $this->instance->get('array'));
$this->instance['array']['bar'] = 'qwerty';
$this->assertEquals(['foo', 'bar' => 'qwerty'], $this->instance->get('array'));
}
}
Loading…
Cancel
Save