Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/chromeos/cros/mount_library.h" | 5 #include "chrome/browser/chromeos/cros/mount_library.h" |
| 6 | 6 |
| 7 #include <set> | 7 #include <set> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/message_loop.h" | 10 #include "base/message_loop.h" |
| (...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 119 void* object) OVERRIDE { | 119 void* object) OVERRIDE { |
| 120 FormatDevice(file_path, filesystem, callback, object); | 120 FormatDevice(file_path, filesystem, callback, object); |
| 121 } | 121 } |
| 122 | 122 |
| 123 virtual void CallGetDiskProperties(const char* device_path, | 123 virtual void CallGetDiskProperties(const char* device_path, |
| 124 GetDiskPropertiesCallback callback, | 124 GetDiskPropertiesCallback callback, |
| 125 void* object) OVERRIDE { | 125 void* object) OVERRIDE { |
| 126 GetDiskProperties(device_path, callback, object); | 126 GetDiskProperties(device_path, callback, object); |
| 127 } | 127 } |
| 128 | 128 |
| 129 virtual void CallGetSizeStats(const char* mount_path, | |
| 130 GetSizeStatsCallback callback, | |
| 131 void* object) OVERRIDE { | |
| 132 GetMountPointSizeStats(mount_path, callback, object); | |
| 133 } | |
| 134 | |
| 129 virtual MountEventConnection MonitorCrosDisks(MountEventMonitor monitor, | 135 virtual MountEventConnection MonitorCrosDisks(MountEventMonitor monitor, |
| 130 MountCompletedMonitor mount_completed_monitor, | 136 MountCompletedMonitor mount_completed_monitor, |
| 131 void* object) OVERRIDE { | 137 void* object) OVERRIDE { |
| 132 return MonitorAllMountEvents(monitor, mount_completed_monitor, object); | 138 return MonitorAllMountEvents(monitor, mount_completed_monitor, object); |
| 133 } | 139 } |
| 134 | 140 |
| 135 virtual void DisconnectCrosDisksMonitorIfSet(MountEventConnection conn) | 141 virtual void DisconnectCrosDisksMonitorIfSet(MountEventConnection conn) |
| 136 OVERRIDE { | 142 OVERRIDE { |
| 137 if (conn) | 143 if (conn) |
| 138 DisconnectMountEventMonitor(conn); | 144 DisconnectMountEventMonitor(conn); |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 203 OnUnmountPath(mount_path, | 209 OnUnmountPath(mount_path, |
| 204 MOUNT_METHOD_ERROR_LOCAL, | 210 MOUNT_METHOD_ERROR_LOCAL, |
| 205 kLibraryNotLoaded); | 211 kLibraryNotLoaded); |
| 206 return; | 212 return; |
| 207 } | 213 } |
| 208 | 214 |
| 209 libcros_proxy_->CallUnmountPath(mount_path, &UnmountMountPointCallback, | 215 libcros_proxy_->CallUnmountPath(mount_path, &UnmountMountPointCallback, |
| 210 this); | 216 this); |
| 211 } | 217 } |
| 212 | 218 |
| 219 virtual void GetSizeStats(const char* mount_path, | |
| 220 CallbackDelegate* callback_delegate) OVERRIDE { | |
| 221 CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | |
| 222 if (!CrosLibrary::Get()->EnsureLoaded()) { | |
| 223 GetSizeStatsCallback(callback_delegate, mount_path, 0, 0, | |
| 224 MOUNT_METHOD_ERROR_LOCAL, kLibraryNotLoaded); | |
| 225 return; | |
| 226 } | |
| 227 | |
| 228 libcros_proxy_->CallGetSizeStats(mount_path, &GetSizeStatsCallback, | |
|
zel
2011/09/02 21:37:34
You might want to inline that routine here as well
tonibarzic
2011/09/02 21:59:01
It seemed like a good idea to keep system calls in
zel
2011/09/02 22:00:58
We should move such functionality here into mount_
| |
| 229 callback_delegate); | |
| 230 } | |
| 231 | |
| 213 virtual void FormatUnmountedDevice(const char* file_path) OVERRIDE { | 232 virtual void FormatUnmountedDevice(const char* file_path) OVERRIDE { |
| 214 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 233 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 215 if (!CrosLibrary::Get()->EnsureLoaded()) { | 234 if (!CrosLibrary::Get()->EnsureLoaded()) { |
| 216 OnFormatDevice(file_path, | 235 OnFormatDevice(file_path, |
| 217 false, | 236 false, |
| 218 MOUNT_METHOD_ERROR_LOCAL, | 237 MOUNT_METHOD_ERROR_LOCAL, |
| 219 kLibraryNotLoaded); | 238 kLibraryNotLoaded); |
| 220 return; | 239 return; |
| 221 } | 240 } |
| 222 for (MountLibrary::DiskMap::iterator it = disks_.begin(); | 241 for (MountLibrary::DiskMap::iterator it = disks_.begin(); |
| (...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 366 // Callback for UnmountRemovableDevice method. | 385 // Callback for UnmountRemovableDevice method. |
| 367 static void UnmountMountPointCallback(void* object, | 386 static void UnmountMountPointCallback(void* object, |
| 368 const char* mount_path, | 387 const char* mount_path, |
| 369 MountMethodErrorType error, | 388 MountMethodErrorType error, |
| 370 const char* error_message) { | 389 const char* error_message) { |
| 371 DCHECK(object); | 390 DCHECK(object); |
| 372 MountLibraryImpl* self = static_cast<MountLibraryImpl*>(object); | 391 MountLibraryImpl* self = static_cast<MountLibraryImpl*>(object); |
| 373 self->OnUnmountPath(mount_path, error, error_message); | 392 self->OnUnmountPath(mount_path, error, error_message); |
| 374 } | 393 } |
| 375 | 394 |
| 395 static void GetSizeStatsCallback(void* object, | |
| 396 const char* mount_path, | |
| 397 size_t total_size_kb, | |
| 398 size_t remaining_size_kb, | |
| 399 MountMethodErrorType error, | |
| 400 const char* error_message) { | |
| 401 DCHECK(object); | |
| 402 CallbackDelegate* callback = static_cast<CallbackDelegate*>(object); | |
| 403 | |
| 404 callback->GetSizeStatsCallback(mount_path, | |
| 405 error == MOUNT_METHOD_ERROR_NONE, total_size_kb, remaining_size_kb); | |
| 406 } | |
| 407 | |
| 376 // Callback for FormatRemovableDevice method. | 408 // Callback for FormatRemovableDevice method. |
| 377 static void FormatDeviceCallback(void* object, | 409 static void FormatDeviceCallback(void* object, |
| 378 const char* file_path, | 410 const char* file_path, |
| 379 bool success, | 411 bool success, |
| 380 MountMethodErrorType error, | 412 MountMethodErrorType error, |
| 381 const char* error_message) { | 413 const char* error_message) { |
| 382 DCHECK(object); | 414 DCHECK(object); |
| 383 MountLibraryImpl* self = static_cast<MountLibraryImpl*>(object); | 415 MountLibraryImpl* self = static_cast<MountLibraryImpl*>(object); |
| 384 const char* device_path = self->FilePathToDevicePath(file_path); | 416 const char* device_path = self->FilePathToDevicePath(file_path); |
| 385 if (!device_path) { | 417 if (!device_path) { |
| (...skipping 410 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 796 virtual void AddObserver(Observer* observer) OVERRIDE {} | 828 virtual void AddObserver(Observer* observer) OVERRIDE {} |
| 797 virtual void RemoveObserver(Observer* observer) OVERRIDE {} | 829 virtual void RemoveObserver(Observer* observer) OVERRIDE {} |
| 798 virtual const DiskMap& disks() const OVERRIDE { return disks_; } | 830 virtual const DiskMap& disks() const OVERRIDE { return disks_; } |
| 799 virtual const MountPointMap& mount_points() const OVERRIDE { | 831 virtual const MountPointMap& mount_points() const OVERRIDE { |
| 800 return mount_points_; | 832 return mount_points_; |
| 801 } | 833 } |
| 802 virtual void RequestMountInfoRefresh() OVERRIDE {} | 834 virtual void RequestMountInfoRefresh() OVERRIDE {} |
| 803 virtual void MountPath(const char* source_path, MountType type, | 835 virtual void MountPath(const char* source_path, MountType type, |
| 804 const MountPathOptions& options) OVERRIDE {} | 836 const MountPathOptions& options) OVERRIDE {} |
| 805 virtual void UnmountPath(const char* mount_path) OVERRIDE {} | 837 virtual void UnmountPath(const char* mount_path) OVERRIDE {} |
| 838 virtual void GetSizeStats(const char* mount_path, | |
| 839 CallbackDelegate* callback_delegate) OVERRIDE {} | |
| 806 virtual void FormatUnmountedDevice(const char* device_path) OVERRIDE {} | 840 virtual void FormatUnmountedDevice(const char* device_path) OVERRIDE {} |
| 807 virtual void FormatMountedDevice(const char* mount_path) OVERRIDE {} | 841 virtual void FormatMountedDevice(const char* mount_path) OVERRIDE {} |
| 808 virtual void UnmountDeviceRecursive(const char* device_path, | 842 virtual void UnmountDeviceRecursive(const char* device_path, |
| 809 UnmountDeviceRecursiveCallbackType callback, void* user_data) | 843 UnmountDeviceRecursiveCallbackType callback, void* user_data) |
| 810 OVERRIDE {} | 844 OVERRIDE {} |
| 811 private: | 845 private: |
| 812 // The list of disks found. | 846 // The list of disks found. |
| 813 DiskMap disks_; | 847 DiskMap disks_; |
| 814 MountPointMap mount_points_; | 848 MountPointMap mount_points_; |
| 815 | 849 |
| 816 DISALLOW_COPY_AND_ASSIGN(MountLibraryStubImpl); | 850 DISALLOW_COPY_AND_ASSIGN(MountLibraryStubImpl); |
| 817 }; | 851 }; |
| 818 | 852 |
| 819 // static | 853 // static |
| 820 MountLibrary* MountLibrary::GetImpl(bool stub) { | 854 MountLibrary* MountLibrary::GetImpl(bool stub) { |
| 821 if (stub) | 855 if (stub) |
| 822 return new MountLibraryStubImpl(); | 856 return new MountLibraryStubImpl(); |
| 823 else | 857 else |
| 824 return new MountLibraryImpl(); | 858 return new MountLibraryImpl(); |
| 825 } | 859 } |
| 826 | 860 |
| 827 } // namespace chromeos | 861 } // namespace chromeos |
| 828 | 862 |
| 829 // Allows InvokeLater without adding refcounting. This class is a Singleton and | 863 // Allows InvokeLater without adding refcounting. This class is a Singleton and |
| 830 // won't be deleted until it's last InvokeLater is run. | 864 // won't be deleted until it's last InvokeLater is run. |
| 831 DISABLE_RUNNABLE_METHOD_REFCOUNT(chromeos::MountLibraryImpl); | 865 DISABLE_RUNNABLE_METHOD_REFCOUNT(chromeos::MountLibraryImpl); |
| 832 | 866 |
| OLD | NEW |