Enable Enterprise enrollment on desktop builds.
[chromium-blink-merge.git] / chrome / browser / extensions / api / sync_file_system / sync_file_system_api.h
blobe0e962121b301d5a567773bd2aad81ea81923da7
1 // Copyright (c) 2012 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_SYNC_FILE_SYSTEM_SYNC_FILE_SYSTEM_API_H_
6 #define CHROME_BROWSER_EXTENSIONS_API_SYNC_FILE_SYSTEM_SYNC_FILE_SYSTEM_API_H_
8 #include <map>
10 #include "base/platform_file.h"
11 #include "chrome/browser/extensions/chrome_extension_function.h"
12 #include "chrome/browser/sync_file_system/conflict_resolution_policy.h"
13 #include "chrome/browser/sync_file_system/sync_file_status.h"
14 #include "chrome/browser/sync_file_system/sync_status_code.h"
15 #include "chrome/common/extensions/api/sync_file_system.h"
16 #include "webkit/browser/fileapi/file_system_url.h"
17 #include "webkit/common/quota/quota_types.h"
19 namespace fileapi {
20 class FileSystemContext;
23 namespace extensions {
25 class SyncFileSystemDeleteFileSystemFunction
26 : public ChromeAsyncExtensionFunction {
27 public:
28 // TODO(kinuko,calvinlo): Uncomment this or delete this class when
29 // we decide if we want to revive this function.
30 // DECLARE_EXTENSION_FUNCTION("syncFileSystem.deleteFileSystem",
31 // SYNCFILESYSTEM_DELETEFILESYSTEM)
33 protected:
34 virtual ~SyncFileSystemDeleteFileSystemFunction() {}
35 virtual bool RunImpl() OVERRIDE;
37 private:
38 void DidDeleteFileSystem(base::File::Error error);
41 class SyncFileSystemGetFileStatusFunction
42 : public ChromeAsyncExtensionFunction {
43 public:
44 DECLARE_EXTENSION_FUNCTION("syncFileSystem.getFileStatus",
45 SYNCFILESYSTEM_GETFILESYNCSTATUS)
47 protected:
48 virtual ~SyncFileSystemGetFileStatusFunction() {}
49 virtual bool RunImpl() OVERRIDE;
51 private:
52 void DidGetFileStatus(
53 const sync_file_system::SyncStatusCode sync_service_status,
54 const sync_file_system::SyncFileStatus sync_file_status);
57 class SyncFileSystemGetFileStatusesFunction
58 : public ChromeAsyncExtensionFunction {
59 public:
60 DECLARE_EXTENSION_FUNCTION("syncFileSystem.getFileStatuses",
61 SYNCFILESYSTEM_GETFILESYNCSTATUSES)
62 SyncFileSystemGetFileStatusesFunction();
64 protected:
65 virtual ~SyncFileSystemGetFileStatusesFunction();
66 virtual bool RunImpl() OVERRIDE;
68 private:
69 typedef std::pair<sync_file_system::SyncStatusCode,
70 sync_file_system::SyncFileStatus> FileStatusPair;
71 typedef std::map<fileapi::FileSystemURL, FileStatusPair,
72 fileapi::FileSystemURL::Comparator> URLToStatusMap;
74 void DidGetFileStatus(
75 const fileapi::FileSystemURL& file_system_url,
76 sync_file_system::SyncStatusCode sync_status_code,
77 sync_file_system::SyncFileStatus sync_file_statuses);
79 unsigned int num_expected_results_;
80 unsigned int num_results_received_;
81 URLToStatusMap file_sync_statuses_;
84 class SyncFileSystemGetUsageAndQuotaFunction
85 : public ChromeAsyncExtensionFunction {
86 public:
87 DECLARE_EXTENSION_FUNCTION("syncFileSystem.getUsageAndQuota",
88 SYNCFILESYSTEM_GETUSAGEANDQUOTA)
90 protected:
91 virtual ~SyncFileSystemGetUsageAndQuotaFunction() {}
92 virtual bool RunImpl() OVERRIDE;
94 private:
95 void DidGetUsageAndQuota(quota::QuotaStatusCode status,
96 int64 usage,
97 int64 quota);
100 class SyncFileSystemRequestFileSystemFunction
101 : public ChromeAsyncExtensionFunction {
102 public:
103 DECLARE_EXTENSION_FUNCTION("syncFileSystem.requestFileSystem",
104 SYNCFILESYSTEM_REQUESTFILESYSTEM)
106 protected:
107 virtual ~SyncFileSystemRequestFileSystemFunction() {}
108 virtual bool RunImpl() OVERRIDE;
110 private:
111 typedef SyncFileSystemRequestFileSystemFunction self;
113 // Returns the file system context for this extension.
114 fileapi::FileSystemContext* GetFileSystemContext();
116 void DidOpenFileSystem(const GURL& root_url,
117 const std::string& file_system_name,
118 base::File::Error error);
121 class SyncFileSystemSetConflictResolutionPolicyFunction
122 : public ChromeSyncExtensionFunction {
123 public:
124 DECLARE_EXTENSION_FUNCTION("syncFileSystem.setConflictResolutionPolicy",
125 SYNCFILESYSTEM_SETCONFLICTRESOLUTIONPOLICY)
127 protected:
128 virtual ~SyncFileSystemSetConflictResolutionPolicyFunction() {}
129 virtual bool RunSync() OVERRIDE;
132 class SyncFileSystemGetConflictResolutionPolicyFunction
133 : public ChromeSyncExtensionFunction {
134 public:
135 DECLARE_EXTENSION_FUNCTION("syncFileSystem.getConflictResolutionPolicy",
136 SYNCFILESYSTEM_GETCONFLICTRESOLUTIONPOLICY)
138 protected:
139 virtual ~SyncFileSystemGetConflictResolutionPolicyFunction() {}
140 virtual bool RunSync() OVERRIDE;
143 class SyncFileSystemGetServiceStatusFunction
144 : public ChromeSyncExtensionFunction {
145 public:
146 DECLARE_EXTENSION_FUNCTION("syncFileSystem.getServiceStatus",
147 SYNCFILESYSTEM_GETSERVICESTATUS)
149 protected:
150 virtual ~SyncFileSystemGetServiceStatusFunction() {}
151 virtual bool RunSync() OVERRIDE;
154 } // namespace extensions
156 #endif // CHROME_BROWSER_EXTENSIONS_API_SYNC_FILE_SYSTEM_SYNC_FILE_SYSTEM_API_H_