Index: chrome/browser/chromeos/cros/mount_library.h |
diff --git a/chrome/browser/chromeos/cros/mount_library.h b/chrome/browser/chromeos/cros/mount_library.h |
deleted file mode 100644 |
index 3eb7b4777e912d81741008dd64732a50b4d0dd21..0000000000000000000000000000000000000000 |
--- a/chrome/browser/chromeos/cros/mount_library.h |
+++ /dev/null |
@@ -1,229 +0,0 @@ |
-// Copyright (c) 2011 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#ifndef CHROME_BROWSER_CHROMEOS_CROS_MOUNT_LIBRARY_H_ |
-#define CHROME_BROWSER_CHROMEOS_CROS_MOUNT_LIBRARY_H_ |
-#pragma once |
- |
-#include <map> |
-#include <string> |
- |
-#include "base/memory/singleton.h" |
-#include "base/observer_list.h" |
-#include "base/time.h" |
-#include "third_party/cros/chromeos_mount.h" |
- |
-namespace chromeos { |
- |
-typedef enum MountLibraryEventType { |
- MOUNT_DISK_ADDED, |
- MOUNT_DISK_REMOVED, |
- MOUNT_DISK_CHANGED, |
- MOUNT_DISK_MOUNTED, |
- MOUNT_DISK_UNMOUNTED, |
- MOUNT_DEVICE_ADDED, |
- MOUNT_DEVICE_REMOVED, |
- MOUNT_DEVICE_SCANNED, |
- MOUNT_FORMATTING_STARTED, |
- MOUNT_FORMATTING_FINISHED |
-} MountLibraryEventType; |
- |
-typedef enum MountCondition { |
- MOUNT_CONDITION_NONE, |
- MOUNT_CONDITION_UNKNOWN_FILESYSTEM, |
- MOUNT_CONDITION_UNSUPPORTED_FILESYSTEM |
-} MountCondition; |
- |
-class MountLibcrosProxy { |
- public: |
- virtual ~MountLibcrosProxy() {} |
- virtual void CallMountPath(const char* source_path, |
- MountType type, |
- const MountPathOptions& options, |
- MountCompletedMonitor callback, |
- void* object) = 0; |
- virtual void CallUnmountPath(const char* path, |
- UnmountRequestCallback callback, |
- void* object) = 0; |
- virtual void CallRequestMountInfo(RequestMountInfoCallback callback, |
- void* object) = 0; |
- virtual void CallFormatDevice(const char* device_path, |
- const char* filesystem, |
- FormatRequestCallback callback, |
- void* object) = 0; |
- virtual void CallGetDiskProperties(const char* device_path, |
- GetDiskPropertiesCallback callback, |
- void* object) = 0; |
- virtual MountEventConnection MonitorCrosDisks(MountEventMonitor monitor, |
- MountCompletedMonitor mount_complete_monitor, |
- void* object) = 0; |
- virtual void DisconnectCrosDisksMonitorIfSet(MountEventConnection connection) |
- = 0; |
-}; |
- |
-// This class handles the interaction with the ChromeOS mount library APIs. |
-// Classes can add themselves as observers. Users can get an instance of this |
-// library class like this: chromeos::CrosLibrary::Get()->GetMountLibrary() |
-class MountLibrary { |
- public: |
- enum MountEvent { |
- MOUNTING, |
- UNMOUNTING |
- }; |
- // Used to house an instance of each found mount device. |
- class Disk { |
- public: |
- Disk(const std::string& device_path, |
- const std::string& mount_path, |
- const std::string& system_path, |
- const std::string& file_path, |
- const std::string& device_label, |
- const std::string& drive_label, |
- const std::string& parent_path, |
- const std::string& system_path_prefix, |
- DeviceType device_type, |
- uint64 total_size, |
- bool is_parent, |
- bool is_read_only, |
- bool has_media, |
- bool on_boot_device, |
- bool is_hidden); |
- ~Disk(); |
- |
- // The path of the device, used by devicekit-disks. |
- const std::string& device_path() const { return device_path_; } |
- // The path to the mount point of this device. Will be empty if not mounted. |
- const std::string& mount_path() const { return mount_path_; } |
- // The path of the device according to the udev system. |
- const std::string& system_path() const { return system_path_; } |
- // The path of the device according to filesystem. |
- const std::string& file_path() const { return file_path_; } |
- // Device's label. |
- const std::string& device_label() const { return device_label_; } |
- // If disk is a parent, then its label, else parents label. |
- const std::string& drive_label() const { return drive_label_; } |
- // Parents device path. If device has no parent, then empty string. |
- const std::string& parent_path() const { return parent_path_; } |
- // Path of the system device this device's block is a part of. |
- const std::string& system_path_prefix() const { |
- return system_path_prefix_; |
- } |
- // Device type. |
- DeviceType device_type() const { return device_type_; } |
- // Total size of the device. |
- uint64 total_size() const { return total_size_; } |
- // Is the device is a parent device (i.e. sdb rather than sdb1). |
- bool is_parent() const { return is_parent_; } |
- // Is the device read only. |
- bool is_read_only() const { return is_read_only_; } |
- // Does the device contains media. |
- bool has_media() const { return has_media_; } |
- // Is the device on the boot device. |
- bool on_boot_device() const { return on_boot_device_; } |
- // Shoud the device be shown in the UI, or automounted. |
- bool is_hidden() const { return is_hidden_; } |
- |
- void set_mount_path(const char* mount_path) { mount_path_ = mount_path; } |
- void clear_mount_path() { mount_path_.clear(); } |
- |
- private: |
- std::string device_path_; |
- std::string mount_path_; |
- std::string system_path_; |
- std::string file_path_; |
- std::string device_label_; |
- std::string drive_label_; |
- std::string parent_path_; |
- std::string system_path_prefix_; |
- DeviceType device_type_; |
- uint64 total_size_; |
- bool is_parent_; |
- bool is_read_only_; |
- bool has_media_; |
- bool on_boot_device_; |
- bool is_hidden_; |
- }; |
- typedef std::map<std::string, Disk*> DiskMap; |
- typedef std::map<std::string, std::string> PathMap; |
- |
- struct MountPointInfo { |
- std::string source_path; |
- std::string mount_path; |
- MountType mount_type; |
- MountCondition mount_condition; |
- |
- MountPointInfo(const char* source, const char* mount, const MountType type, |
- MountCondition condition) |
- : source_path(source ? source : ""), |
- mount_path(mount ? mount : ""), |
- mount_type(type), |
- mount_condition(condition) { |
- } |
- }; |
- |
- // MountPointMap key is mount_path. |
- typedef std::map<std::string, MountPointInfo> MountPointMap; |
- |
- typedef void(*UnmountDeviceRecursiveCallbackType)(void*, bool); |
- |
- class Observer { |
- public: |
- virtual ~Observer() {} |
- // Async API events. |
- virtual void DiskChanged(MountLibraryEventType event, |
- const Disk* disk) = 0; |
- virtual void DeviceChanged(MountLibraryEventType event, |
- const std::string& device_path) = 0; |
- virtual void MountCompleted(MountEvent event_type, |
- MountError error_code, |
- const MountPointInfo& mount_info) = 0; |
- }; |
- |
- virtual ~MountLibrary() {} |
- virtual void Init() = 0; |
- virtual void AddObserver(Observer* observer) = 0; |
- virtual void RemoveObserver(Observer* observer) = 0; |
- virtual const DiskMap& disks() const = 0; |
- virtual const MountPointMap& mount_points() const = 0; |
- |
- virtual void RequestMountInfoRefresh() = 0; |
- virtual void MountPath(const char* source_path, |
- MountType type, |
- const MountPathOptions& options) = 0; |
- // |path| is device's mount path. |
- virtual void UnmountPath(const char* path) = 0; |
- |
- // Retrieves total and remaining available size on |mount_path|. |
- virtual void GetSizeStatsOnFileThread(const char* mount_path, |
- size_t* total_size_kb, |
- size_t* remaining_size_kb) = 0; |
- |
- // Formats device given its file path. |
- // Example: file_path: /dev/sdb1 |
- virtual void FormatUnmountedDevice(const char* file_path) = 0; |
- |
- // Formats Device given its mount path. Unmount's the device |
- // Example: mount_path: /media/VOLUME_LABEL |
- virtual void FormatMountedDevice(const char* mount_path) = 0; |
- |
- // Unmounts device_poath and all of its known children. |
- virtual void UnmountDeviceRecursive(const char* device_path, |
- UnmountDeviceRecursiveCallbackType callback, void* user_data) = 0; |
- |
- // Helper functions for parameter conversions. |
- static std::string MountTypeToString(MountType type); |
- static MountType MountTypeFromString(const std::string& type_str); |
- static std::string MountConditionToString(MountCondition type); |
- |
- // Used in testing. Enables mocking libcros. |
- virtual void SetLibcrosProxy(MountLibcrosProxy* proxy) {} |
- |
- // Factory function, creates a new instance and returns ownership. |
- // For normal usage, access the singleton via CrosLibrary::Get(). |
- static MountLibrary* GetImpl(bool stub); |
-}; |
- |
-} // namespace chromeos |
- |
-#endif // CHROME_BROWSER_CHROMEOS_CROS_MOUNT_LIBRARY_H_ |