Fix storage being passed to cache/watcher and scanner when using storage wrappers
This commit is contained in:
parent
decb51aee6
commit
87e311b996
6 changed files with 74 additions and 29 deletions
12
apps/files_sharing/lib/external/storage.php
vendored
12
apps/files_sharing/lib/external/storage.php
vendored
|
@ -85,8 +85,8 @@ class Storage extends DAV implements ISharedStorage {
|
|||
return 'shared::' . md5($this->token . '@' . $this->remote);
|
||||
}
|
||||
|
||||
public function getCache($path = '') {
|
||||
if (!isset($this->cache)) {
|
||||
public function getCache($path = '', $storage = null) {
|
||||
if (!$storage) {
|
||||
$this->cache = new Cache($this, $this->remote, $this->remoteUser);
|
||||
}
|
||||
return $this->cache;
|
||||
|
@ -94,11 +94,15 @@ class Storage extends DAV implements ISharedStorage {
|
|||
|
||||
/**
|
||||
* @param string $path
|
||||
* @param \OC\Files\Storage\Storage $storage
|
||||
* @return \OCA\Files_Sharing\External\Scanner
|
||||
*/
|
||||
public function getScanner($path = '') {
|
||||
public function getScanner($path = '', $storage = null) {
|
||||
if (!$storage) {
|
||||
$storage = $this;
|
||||
}
|
||||
if (!isset($this->scanner)) {
|
||||
$this->scanner = new Scanner($this);
|
||||
$this->scanner = new Scanner($storage);
|
||||
}
|
||||
return $this->scanner;
|
||||
}
|
||||
|
|
|
@ -489,16 +489,25 @@ class Shared extends \OC\Files\Storage\Common implements ISharedStorage {
|
|||
return $this->filemtime($path) > $time;
|
||||
}
|
||||
|
||||
public function getCache($path = '') {
|
||||
return new \OC\Files\Cache\Shared_Cache($this);
|
||||
public function getCache($path = '', $storage = null) {
|
||||
if (!$storage) {
|
||||
$storage = $this;
|
||||
}
|
||||
return new \OC\Files\Cache\Shared_Cache($storage);
|
||||
}
|
||||
|
||||
public function getScanner($path = '') {
|
||||
return new \OC\Files\Cache\Scanner($this);
|
||||
public function getScanner($path = '', $storage = null) {
|
||||
if (!$storage) {
|
||||
$storage = $this;
|
||||
}
|
||||
return new \OC\Files\Cache\Scanner($storage);
|
||||
}
|
||||
|
||||
public function getWatcher($path = '') {
|
||||
return new \OC\Files\Cache\Shared_Watcher($this);
|
||||
public function getWatcher($path = '', $storage = null) {
|
||||
if (!$storage) {
|
||||
$storage = $this;
|
||||
}
|
||||
return new \OC\Files\Cache\Shared_Watcher($storage);
|
||||
}
|
||||
|
||||
public function getOwner($path) {
|
||||
|
|
|
@ -287,31 +287,43 @@ abstract class Common implements \OC\Files\Storage\Storage {
|
|||
return $this->filemtime($path) > $time;
|
||||
}
|
||||
|
||||
public function getCache($path = '') {
|
||||
public function getCache($path = '', $storage = null) {
|
||||
if (!$storage) {
|
||||
$storage = $this;
|
||||
}
|
||||
if (!isset($this->cache)) {
|
||||
$this->cache = new \OC\Files\Cache\Cache($this);
|
||||
$this->cache = new \OC\Files\Cache\Cache($storage);
|
||||
}
|
||||
return $this->cache;
|
||||
}
|
||||
|
||||
public function getScanner($path = '') {
|
||||
public function getScanner($path = '', $storage = null) {
|
||||
if (!$storage) {
|
||||
$storage = $this;
|
||||
}
|
||||
if (!isset($this->scanner)) {
|
||||
$this->scanner = new \OC\Files\Cache\Scanner($this);
|
||||
$this->scanner = new \OC\Files\Cache\Scanner($storage);
|
||||
}
|
||||
return $this->scanner;
|
||||
}
|
||||
|
||||
public function getWatcher($path = '') {
|
||||
public function getWatcher($path = '', $storage = null) {
|
||||
if (!$storage) {
|
||||
$storage = $this;
|
||||
}
|
||||
if (!isset($this->watcher)) {
|
||||
$this->watcher = new \OC\Files\Cache\Watcher($this);
|
||||
$this->watcher = new \OC\Files\Cache\Watcher($storage);
|
||||
$this->watcher->setPolicy(\OC::$server->getConfig()->getSystemValue('filesystem_check_changes', Watcher::CHECK_ONCE));
|
||||
}
|
||||
return $this->watcher;
|
||||
}
|
||||
|
||||
public function getStorageCache() {
|
||||
public function getStorageCache($storage = null) {
|
||||
if (!$storage) {
|
||||
$storage = $this;
|
||||
}
|
||||
if (!isset($this->storageCache)) {
|
||||
$this->storageCache = new \OC\Files\Cache\Storage($this);
|
||||
$this->storageCache = new \OC\Files\Cache\Storage($storage);
|
||||
}
|
||||
return $this->storageCache;
|
||||
}
|
||||
|
|
|
@ -49,9 +49,12 @@ class Home extends Local {
|
|||
/**
|
||||
* @return \OC\Files\Cache\HomeCache
|
||||
*/
|
||||
public function getCache($path = '') {
|
||||
public function getCache($path = '', $storage = null) {
|
||||
if (!$storage) {
|
||||
$storage = $this;
|
||||
}
|
||||
if (!isset($this->cache)) {
|
||||
$this->cache = new \OC\Files\Cache\HomeCache($this);
|
||||
$this->cache = new \OC\Files\Cache\HomeCache($storage);
|
||||
}
|
||||
return $this->cache;
|
||||
}
|
||||
|
|
|
@ -19,17 +19,19 @@ interface Storage extends \OCP\Files\Storage {
|
|||
* get a cache instance for the storage
|
||||
*
|
||||
* @param string $path
|
||||
* @param \OC\Files\Storage\Storage (optional) the storage to pass to the cache
|
||||
* @return \OC\Files\Cache\Cache
|
||||
*/
|
||||
public function getCache($path = '');
|
||||
public function getCache($path = '', $storage = null);
|
||||
|
||||
/**
|
||||
* get a scanner instance for the storage
|
||||
*
|
||||
* @param string $path
|
||||
* @param \OC\Files\Storage\Storage (optional) the storage to pass to the scanner
|
||||
* @return \OC\Files\Cache\Scanner
|
||||
*/
|
||||
public function getScanner($path = '');
|
||||
public function getScanner($path = '', $storage = null);
|
||||
|
||||
|
||||
/**
|
||||
|
@ -44,9 +46,10 @@ interface Storage extends \OCP\Files\Storage {
|
|||
* get a watcher instance for the cache
|
||||
*
|
||||
* @param string $path
|
||||
* @param \OC\Files\Storage\Storage (optional) the storage to pass to the watcher
|
||||
* @return \OC\Files\Cache\Watcher
|
||||
*/
|
||||
public function getWatcher($path = '');
|
||||
public function getWatcher($path = '', $storage = null);
|
||||
|
||||
/**
|
||||
* @return \OC\Files\Cache\Storage
|
||||
|
|
|
@ -361,20 +361,28 @@ class Wrapper implements \OC\Files\Storage\Storage {
|
|||
* get a cache instance for the storage
|
||||
*
|
||||
* @param string $path
|
||||
* @param \OC\Files\Storage\Storage (optional) the storage to pass to the cache
|
||||
* @return \OC\Files\Cache\Cache
|
||||
*/
|
||||
public function getCache($path = '') {
|
||||
return $this->storage->getCache($path);
|
||||
public function getCache($path = '', $storage = null) {
|
||||
if (!$storage) {
|
||||
$storage = $this;
|
||||
}
|
||||
return $this->storage->getCache($path, $storage);
|
||||
}
|
||||
|
||||
/**
|
||||
* get a scanner instance for the storage
|
||||
*
|
||||
* @param string $path
|
||||
* @param \OC\Files\Storage\Storage (optional) the storage to pass to the scanner
|
||||
* @return \OC\Files\Cache\Scanner
|
||||
*/
|
||||
public function getScanner($path = '') {
|
||||
return $this->storage->getScanner($path);
|
||||
public function getScanner($path = '', $storage = null) {
|
||||
if (!$storage) {
|
||||
$storage = $this;
|
||||
}
|
||||
return $this->storage->getScanner($path, $storage);
|
||||
}
|
||||
|
||||
|
||||
|
@ -392,10 +400,14 @@ class Wrapper implements \OC\Files\Storage\Storage {
|
|||
* get a watcher instance for the cache
|
||||
*
|
||||
* @param string $path
|
||||
* @param \OC\Files\Storage\Storage (optional) the storage to pass to the watcher
|
||||
* @return \OC\Files\Cache\Watcher
|
||||
*/
|
||||
public function getWatcher($path = '') {
|
||||
return $this->storage->getWatcher($path);
|
||||
public function getWatcher($path = '', $storage = null) {
|
||||
if (!$storage) {
|
||||
$storage = $this;
|
||||
}
|
||||
return $this->storage->getWatcher($path, $storage);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -417,6 +429,7 @@ class Wrapper implements \OC\Files\Storage\Storage {
|
|||
|
||||
/**
|
||||
* Returns true
|
||||
*
|
||||
* @return true
|
||||
*/
|
||||
public function test() {
|
||||
|
@ -425,6 +438,7 @@ class Wrapper implements \OC\Files\Storage\Storage {
|
|||
|
||||
/**
|
||||
* Returns the wrapped storage's value for isLocal()
|
||||
*
|
||||
* @return bool wrapped storage's isLocal() value
|
||||
*/
|
||||
public function isLocal() {
|
||||
|
|
Loading…
Reference in a new issue