1 // Copyright 2013 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.
5 #ifndef CHROME_BROWSER_EXTENSIONS_API_SYSTEM_STORAGE_SYSTEM_STORAGE_API_H_
6 #define CHROME_BROWSER_EXTENSIONS_API_SYSTEM_STORAGE_SYSTEM_STORAGE_API_H_
8 #include "chrome/browser/extensions/api/system_storage/storage_info_provider.h"
9 #include "chrome/browser/extensions/extension_function.h"
10 #include "chrome/browser/storage_monitor/storage_monitor.h"
12 namespace extensions {
14 // Implementation of the systeminfo.storage.get API. It is an asynchronous
15 // call relative to browser UI thread.
16 class SystemStorageGetInfoFunction : public AsyncExtensionFunction {
18 DECLARE_EXTENSION_FUNCTION("system.storage.getInfo", SYSTEM_STORAGE_GETINFO);
19 SystemStorageGetInfoFunction();
22 virtual ~SystemStorageGetInfoFunction();
23 virtual bool RunImpl() OVERRIDE;
25 void OnGetStorageInfoCompleted(bool success);
28 class SystemStorageEjectDeviceFunction
29 : public AsyncExtensionFunction {
31 DECLARE_EXTENSION_FUNCTION("system.storage.ejectDevice",
32 SYSTEM_STORAGE_EJECTDEVICE);
35 virtual ~SystemStorageEjectDeviceFunction();
37 // AsyncExtensionFunction overrides.
38 virtual bool RunImpl() OVERRIDE;
41 void OnStorageMonitorInit(const std::string& transient_device_id);
43 // Eject device request handler.
44 void HandleResponse(StorageMonitor::EjectStatus status);
47 class SystemStorageGetAvailableCapacityFunction
48 : public AsyncExtensionFunction {
50 DECLARE_EXTENSION_FUNCTION("system.storage.getAvailableCapacity",
51 SYSTEM_STORAGE_GETAVAILABLECAPACITY);
52 SystemStorageGetAvailableCapacityFunction();
55 void OnStorageMonitorInit(const std::string& transient_id);
56 void OnQueryCompleted(const std::string& transient_id,
57 double available_capacity);
58 virtual ~SystemStorageGetAvailableCapacityFunction();
59 virtual bool RunImpl() OVERRIDE;
62 } // namespace extensions
64 #endif // CHROME_BROWSER_EXTENSIONS_API_SYSTEM_STORAGE_SYSTEM_STORAGE_API_H_