From 5fb8a4715d6ed34b1d94c5508700f3c488c0f734 Mon Sep 17 00:00:00 2001
From: Vincent Petry <pvince81@owncloud.com>
Date: Wed, 21 Jan 2015 21:54:43 +0100
Subject: [PATCH] removeStorageWrapper to unregister a storage wrapper

---
 lib/private/files/filesystem.php             | 10 ++++++++++
 lib/private/files/storage/storagefactory.php | 17 ++++++++++++++---
 2 files changed, 24 insertions(+), 3 deletions(-)

diff --git a/lib/private/files/filesystem.php b/lib/private/files/filesystem.php
index 0a0c5c3612..5fa3428643 100644
--- a/lib/private/files/filesystem.php
+++ b/lib/private/files/filesystem.php
@@ -186,6 +186,11 @@ class Filesystem {
 		}
 	}
 
+	/**
+	 * Returns the storage factory
+	 *
+	 * @return \OCP\Files\Storage\IStorageFactory
+	 */
 	public static function getLoader() {
 		if (!self::$loader) {
 			self::$loader = new StorageFactory();
@@ -193,6 +198,11 @@ class Filesystem {
 		return self::$loader;
 	}
 
+	/**
+	 * Returns the mount manager
+	 *
+	 * @return \OC\Files\Filesystem\Mount\Manager
+	 */
 	public static function getMountManager() {
 		if (!self::$mounts) {
 			\OC_Util::setupFS();
diff --git a/lib/private/files/storage/storagefactory.php b/lib/private/files/storage/storagefactory.php
index 9c1c7325b7..6fa360fa84 100644
--- a/lib/private/files/storage/storagefactory.php
+++ b/lib/private/files/storage/storagefactory.php
@@ -21,9 +21,9 @@ class StorageFactory implements IStorageFactory {
 	 *
 	 * $callback should be a function of type (string $mountPoint, Storage $storage) => Storage
 	 *
-	 * @param string $wrapperName
-	 * @param callable $callback
-	 * @return true if the wrapper was added, false if there was already a wrapper with this
+	 * @param string $wrapperName name of the wrapper
+	 * @param callable $callback callback
+	 * @return bool true if the wrapper was added, false if there was already a wrapper with this
 	 * name registered
 	 */
 	public function addStorageWrapper($wrapperName, $callback) {
@@ -34,6 +34,17 @@ class StorageFactory implements IStorageFactory {
 		return true;
 	}
 
+	/**
+	 * Remove a storage wrapper by name.
+	 * Note: internal method only to be used for cleanup
+	 *
+	 * @param string $wrapperName name of the wrapper
+	 * @internal
+	 */
+	public function removeStorageWrapper($wrapperName) {
+		unset($this->storageWrappers[$wrapperName]);
+	}
+
 	/**
 	 * Create an instance of a storage and apply the registered storage wrappers
 	 *
-- 
GitLab