* @author Robin Appelman * @author Vincent Petry * * @license AGPL-3.0 * * This code is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License, version 3, * as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License, version 3, * along with this program. If not, see * */ namespace OCP\Files\Storage; use OCP\Files\Mount\IMountPoint; /** * Creates storage instances and manages and applies storage wrappers * @since 8.0.0 */ interface IStorageFactory { /** * allow modifier storage behaviour by adding wrappers around storages * * $callback should be a function of type (string $mountPoint, Storage $storage) => Storage * * @param string $wrapperName * @param callable $callback * @return bool true if the wrapper was added, false if there was already a wrapper with this * name registered * @since 8.0.0 */ public function addStorageWrapper($wrapperName, $callback); /** * @param \OCP\Files\Mount\IMountPoint $mountPoint * @param string $class * @param array $arguments * @return \OCP\Files\Storage * @since 8.0.0 */ public function getInstance(IMountPoint $mountPoint, $class, $arguments); }