* @author Robin Appelman * @author Roeland Jago Douma * * @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\Mount; use OCP\Files\Config\ICachedMountInfo; /** * Interface IMountManager * * Manages all mounted storages in the system * @since 8.2.0 */ interface IMountManager { /** * Add a new mount * * @param IMountPoint $mount * @since 8.2.0 */ public function addMount(IMountPoint $mount); /** * Remove a mount * * @param string $mountPoint * @since 8.2.0 */ public function removeMount(string $mountPoint); /** * Change the location of a mount * * @param string $mountPoint * @param string $target * @since 8.2.0 */ public function moveMount(string $mountPoint, string $target); /** * Find the mount for $path * * @param string $path * @return IMountPoint * @since 8.2.0 */ public function find(string $path): ?IMountPoint; /** * Find all mounts in $path * * @param string $path * @return IMountPoint[] * @since 8.2.0 */ public function findIn(string $path): array; /** * Remove all registered mounts * * @since 8.2.0 */ public function clear(); /** * Find mounts by storage id * * @param string $id * @return IMountPoint[] * @since 8.2.0 */ public function findByStorageId(string $id): array; /** * @return IMountPoint[] * @since 8.2.0 */ public function getAll(): array; /** * Find mounts by numeric storage id * * @param int $id * @return IMountPoint[] * @since 8.2.0 */ public function findByNumericId(int $id): array; /** * Return the mount matching a cached mount info (or mount file info) * * @param ICachedMountInfo $info * * @return IMountPoint|null * @since 28.0.0 */ public function getMountFromMountInfo(ICachedMountInfo $info): ?IMountPoint; }