Skip to content

Commit

Permalink
also improe cache ci for shared cache
Browse files Browse the repository at this point in the history
Signed-off-by: Robin Appelman <robin@icewind.nl>
  • Loading branch information
icewind1991 committed Feb 9, 2024
1 parent 7a91abb commit e50c176
Show file tree
Hide file tree
Showing 6 changed files with 36 additions and 26 deletions.
3 changes: 2 additions & 1 deletion apps/files_external/tests/Service/StoragesServiceTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@
use OCP\Files\Config\IUserMountCache;
use OCP\Files\Mount\IMountPoint;
use OCP\Files\Storage\IStorage;
use OCP\IDBConnection;
use OCP\IUser;

class CleaningDBConfig extends DBConfigService {
Expand Down Expand Up @@ -315,7 +316,7 @@ public function testDeleteStorage($backendOptions, $rustyStorageId) {

// manually trigger storage entry because normally it happens on first
// access, which isn't possible within this test
$storageCache = new \OC\Files\Cache\Storage($rustyStorageId);
$storageCache = new \OC\Files\Cache\Storage($rustyStorageId, true, \OC::$server->get(IDBConnection::class));

/** @var IUserMountCache $mountCache */
$mountCache = \OC::$server->get(IUserMountCache::class);
Expand Down
11 changes: 7 additions & 4 deletions apps/files_sharing/lib/Cache.php
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,14 @@
*/
namespace OCA\Files_Sharing;

use OC\Files\Cache\CacheDependencies;
use OC\Files\Cache\FailedCache;
use OC\Files\Cache\Wrapper\CacheJail;
use OC\Files\Search\SearchBinaryOperator;
use OC\Files\Search\SearchComparison;
use OC\Files\Storage\Wrapper\Jail;
use OC\User\DisplayNameCache;
use OCP\Files\Cache\ICache;
use OCP\Files\Cache\ICacheEntry;
use OCP\Files\Search\ISearchBinaryOperator;
use OCP\Files\Search\ISearchComparison;
Expand Down Expand Up @@ -62,18 +64,19 @@ class Cache extends CacheJail {
public function __construct(
$storage,
ICacheEntry $sourceRootInfo,
DisplayNameCache $displayNameCache,
CacheDependencies $dependencies,
IShare $share
) {
$this->storage = $storage;
$this->sourceRootInfo = $sourceRootInfo;
$this->numericId = $sourceRootInfo->getStorageId();
$this->displayNameCache = $displayNameCache;
$this->displayNameCache = $dependencies->getDisplayNameCache();
$this->share = $share;

parent::__construct(
null,
''
'',
$dependencies,
);
}

Expand All @@ -98,7 +101,7 @@ protected function getGetUnjailedRoot() {
return $this->sourceRootInfo->getPath();
}

public function getCache() {
public function getCache(): ICache {
if (is_null($this->cache)) {
$sourceStorage = $this->storage->getSourceStorage();
if ($sourceStorage) {
Expand Down
6 changes: 3 additions & 3 deletions apps/files_sharing/lib/SharedStorage.php
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
*/
namespace OCA\Files_Sharing;

use OC\Files\Cache\CacheDependencies;
use OC\Files\Cache\FailedCache;
use OC\Files\Cache\NullWatcher;
use OC\Files\Cache\Watcher;
Expand All @@ -40,7 +41,6 @@
use OC\Files\Storage\FailedStorage;
use OC\Files\Storage\Home;
use OC\Files\Storage\Wrapper\PermissionsMask;
use OC\User\DisplayNameCache;
use OC\User\NoUserException;
use OCA\Files_External\Config\ExternalMountPoint;
use OCP\Constants;
Expand Down Expand Up @@ -410,10 +410,10 @@ public function getCache($path = '', $storage = null) {
return new FailedCache();
}

$this->cache = new \OCA\Files_Sharing\Cache(
$this->cache = new Cache(
$storage,
$sourceRoot,
\OC::$server->get(DisplayNameCache::class),
\OC::$server->get(CacheDependencies::class),
$this->getShare()
);
return $this->cache;
Expand Down
6 changes: 6 additions & 0 deletions lib/private/Files/Cache/CacheDependencies.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
namespace OC\Files\Cache;

use OC\SystemConfig;
use OC\User\DisplayNameCache;
use OCP\EventDispatcher\IEventDispatcher;
use OCP\Files\IMimeTypeLoader;
use OCP\FilesMetadata\IFilesMetadataManager;
Expand All @@ -18,6 +19,7 @@ public function __construct(
private SystemConfig $systemConfig,
private LoggerInterface $logger,
private IFilesMetadataManager $metadataManager,
private DisplayNameCache $displayNameCache,
) {
}

Expand Down Expand Up @@ -45,6 +47,10 @@ public function getLogger(): LoggerInterface {
return $this->logger;
}

public function getDisplayNameCache(): DisplayNameCache {
return $this->displayNameCache;
}

public function getMetadataManager(): IFilesMetadataManager {
return $this->metadataManager;
}
Expand Down
14 changes: 8 additions & 6 deletions lib/private/Files/Cache/Wrapper/CacheJail.php
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,10 @@
namespace OC\Files\Cache\Wrapper;

use OC\Files\Cache\Cache;
use OC\Files\Cache\CacheDependencies;
use OC\Files\Search\SearchBinaryOperator;
use OC\Files\Search\SearchComparison;
use OCP\Files\Cache\ICache;
use OCP\Files\Cache\ICacheEntry;
use OCP\Files\Search\ISearchBinaryOperator;
use OCP\Files\Search\ISearchComparison;
Expand All @@ -45,12 +47,12 @@ class CacheJail extends CacheWrapper {
protected $root;
protected $unjailedRoot;

/**
* @param ?\OCP\Files\Cache\ICache $cache
* @param string $root
*/
public function __construct($cache, $root) {
parent::__construct($cache);
public function __construct(
?ICache $cache,
string $root,
CacheDependencies $dependencies = null,
) {
parent::__construct($cache, $dependencies);
$this->root = $root;

if ($cache instanceof CacheJail) {
Expand Down
22 changes: 10 additions & 12 deletions lib/private/Files/Cache/Wrapper/CacheWrapper.php
Original file line number Diff line number Diff line change
Expand Up @@ -30,33 +30,31 @@
namespace OC\Files\Cache\Wrapper;

use OC\Files\Cache\Cache;
use OC\Files\Cache\QuerySearchHelper;
use OC\Files\Cache\CacheDependencies;
use OCP\Files\Cache\ICache;
use OCP\Files\Cache\ICacheEntry;
use OCP\Files\IMimeTypeLoader;
use OCP\Files\Search\ISearchOperator;
use OCP\Files\Search\ISearchQuery;
use OCP\IDBConnection;

class CacheWrapper extends Cache {
/**
* @var \OCP\Files\Cache\ICache
* @var ?ICache
*/
protected $cache;

/**
* @param \OCP\Files\Cache\ICache $cache
*/
public function __construct($cache) {
public function __construct(?ICache $cache, CacheDependencies $dependencies = null) {
$this->cache = $cache;
if ($cache instanceof Cache) {
if (!$dependencies && $cache instanceof Cache) {
$this->mimetypeLoader = $cache->mimetypeLoader;
$this->connection = $cache->connection;
$this->querySearchHelper = $cache->querySearchHelper;
} else {
$this->mimetypeLoader = \OC::$server->get(IMimeTypeLoader::class);
$this->connection = \OC::$server->get(IDBConnection::class);
$this->querySearchHelper = \OC::$server->get(QuerySearchHelper::class);
if (!$dependencies) {
$dependencies = \OC::$server->get(CacheDependencies::class);
}
$this->mimetypeLoader = $dependencies->getMimeTypeLoader();
$this->connection = $dependencies->getConnection();
$this->querySearchHelper = $dependencies->getQuerySearchHelper();
}
}

Expand Down

0 comments on commit e50c176

Please sign in to comment.