mount_path_util.h revision 0529e5d033099cbfc42635f6f6183833b09dff6e
1// Copyright 2014 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_CHROMEOS_FILE_SYSTEM_PROVIDER_MOUNT_PATH_UTIL_H_ 6#define CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_MOUNT_PATH_UTIL_H_ 7 8#include <string> 9 10#include "base/files/file_path.h" 11#include "webkit/browser/fileapi/file_system_url.h" 12 13class Profile; 14 15namespace chromeos { 16namespace file_system_provider { 17 18class ProvidedFileSystemInterface; 19 20namespace util { 21 22// Constructs a safe mount point path for the provided file system. 23base::FilePath GetMountPath(Profile* profile, 24 std::string extension_id, 25 int file_system_id); 26 27// Finds file system, which is responsible for handling the specified |url| by 28// analysing the mount path. 29// Also, extract the file path from the virtual path to be used by the file 30// system operations. 31class FileSystemURLParser { 32 public: 33 explicit FileSystemURLParser(const fileapi::FileSystemURL& url); 34 virtual ~FileSystemURLParser(); 35 36 // Parses the |url| passed to the constructor. If parsing succeeds, then 37 // returns true. Otherwise, false. 38 bool Parse(); 39 40 ProvidedFileSystemInterface* file_system() const { return file_system_; } 41 const base::FilePath& file_path() const { return file_path_; } 42 43 private: 44 fileapi::FileSystemURL url_; 45 ProvidedFileSystemInterface* file_system_; 46 base::FilePath file_path_; 47 48 DISALLOW_COPY_AND_ASSIGN(FileSystemURLParser); 49}; 50 51} // namespace util 52} // namespace file_system_provider 53} // namespace chromeos 54 55#endif // CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_MOUNT_PATH_UTIL_H_ 56