Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / extensions / browser / api / system_storage / system_storage_api.h
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.
4
5 #ifndef EXTENSIONS_BROWSER_API_SYSTEM_STORAGE_SYSTEM_STORAGE_API_H_
6 #define EXTENSIONS_BROWSER_API_SYSTEM_STORAGE_SYSTEM_STORAGE_API_H_
7
8 #include "components/storage_monitor/storage_monitor.h"
9 #include "extensions/browser/api/system_storage/storage_info_provider.h"
10 #include "extensions/browser/extension_function.h"
11
12 namespace extensions {
13
14 // Implementation of the systeminfo.storage.get API. It is an asynchronous
15 // call relative to browser UI thread.
16 class SystemStorageGetInfoFunction : public AsyncExtensionFunction {
17  public:
18   DECLARE_EXTENSION_FUNCTION("system.storage.getInfo", SYSTEM_STORAGE_GETINFO);
19   SystemStorageGetInfoFunction();
20
21  private:
22   ~SystemStorageGetInfoFunction() override;
23   bool RunAsync() override;
24
25   void OnGetStorageInfoCompleted(bool success);
26 };
27
28 class SystemStorageEjectDeviceFunction : public AsyncExtensionFunction {
29  public:
30   DECLARE_EXTENSION_FUNCTION("system.storage.ejectDevice",
31                              SYSTEM_STORAGE_EJECTDEVICE);
32
33  protected:
34   ~SystemStorageEjectDeviceFunction() override;
35
36   // AsyncExtensionFunction overrides.
37   bool RunAsync() override;
38
39  private:
40   void OnStorageMonitorInit(const std::string& transient_device_id);
41
42   // Eject device request handler.
43   void HandleResponse(storage_monitor::StorageMonitor::EjectStatus status);
44 };
45
46 class SystemStorageGetAvailableCapacityFunction
47     : public AsyncExtensionFunction {
48  public:
49   DECLARE_EXTENSION_FUNCTION("system.storage.getAvailableCapacity",
50                              SYSTEM_STORAGE_GETAVAILABLECAPACITY);
51   SystemStorageGetAvailableCapacityFunction();
52
53  private:
54   void OnStorageMonitorInit(const std::string& transient_id);
55   void OnQueryCompleted(const std::string& transient_id,
56                         double available_capacity);
57   ~SystemStorageGetAvailableCapacityFunction() override;
58   bool RunAsync() override;
59 };
60
61 }  // namespace extensions
62
63 #endif  // EXTENSIONS_BROWSER_API_SYSTEM_STORAGE_SYSTEM_STORAGE_API_H_