]> source.dussan.org Git - nextcloud-server.git/commitdiff
Remember the contructed OC\Files\Cache\* classes in OC\Files\Storage\Common
authorBart Visscher <bartv@thisnet.nl>
Fri, 5 Apr 2013 15:20:08 +0000 (17:20 +0200)
committerBart Visscher <bartv@thisnet.nl>
Fri, 5 Apr 2013 15:20:08 +0000 (17:20 +0200)
lib/files/storage/common.php

index 8aa227ec0b72deb06bdd553b04d46e1a0c6fc565..38fe5e546f6be008daa43ad64a6cfc870afb8aa7 100644 (file)
@@ -21,6 +21,10 @@ namespace OC\Files\Storage;
  */
 
 abstract class Common implements \OC\Files\Storage\Storage {
+       private $cache;
+       private $scanner;
+       private $permissioncache;
+       private $watcher;
 
        public function __construct($parameters) {
        }
@@ -269,19 +273,31 @@ abstract class Common implements \OC\Files\Storage\Storage {
        }
 
        public function getCache($path = '') {
-               return new \OC\Files\Cache\Cache($this);
+               if (!isset($this->cache)) {
+                       $this->cache = new \OC\Files\Cache\Cache($this);
+               }
+               return $this->cache;
        }
 
        public function getScanner($path = '') {
-               return new \OC\Files\Cache\Scanner($this);
+               if (!isset($this->scanner)) {
+                       $this->scanner = new \OC\Files\Cache\Scanner($this);
+               }
+               return $this->scanner;
        }
 
        public function getPermissionsCache($path = '') {
-               return new \OC\Files\Cache\Permissions($this);
+               if (!isset($this->permissioncache)) {
+                       $this->permissioncache = new \OC\Files\Cache\Permissions($this);
+               }
+               return $this->permissioncache;
        }
 
        public function getWatcher($path = '') {
-               return new \OC\Files\Cache\Watcher($this);
+               if (!isset($this->watcher)) {
+                       $this->watcher = new \OC\Files\Cache\Watcher($this);
+               }
+               return $this->watcher;
        }
 
        /**