1// Copyright (c) 2012 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef CHROME_BROWSER_MEDIA_GALLERIES_MEDIA_FILE_SYSTEM_CONTEXT_H_
6#define CHROME_BROWSER_MEDIA_GALLERIES_MEDIA_FILE_SYSTEM_CONTEXT_H_
7
8// Manages isolated filesystem namespaces for media file systems.
9
10#include <string>
11
12namespace base {
13class FilePath;
14}
15
16class MediaFileSystemRegistry;
17
18class MediaFileSystemContext {
19 public:
20  virtual ~MediaFileSystemContext() {}
21
22  // Register a new media file system for |path| as |fs_name|.
23  virtual bool RegisterFileSystem(const std::string& device_id,
24                                  const std::string& fs_name,
25                                  const base::FilePath& path) = 0;
26
27  // Revoke the passed |fs_name|.
28  virtual void RevokeFileSystem(const std::string& fs_name) = 0;
29
30  // Return the mount point root for the given |fs_name|. Returns an empty path
31  // if |fs_name| is not valid.
32  virtual base::FilePath GetRegisteredPath(
33      const std::string& fs_name) const = 0;
34};
35
36#endif  // CHROME_BROWSER_MEDIA_GALLERIES_MEDIA_FILE_SYSTEM_CONTEXT_H_
37