1 // Copyright (c) 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_SYNC_FILE_SYSTEM_SYNC_FILE_SYSTEM_API_HELPERS_H_
6 #define CHROME_BROWSER_EXTENSIONS_API_SYNC_FILE_SYSTEM_SYNC_FILE_SYSTEM_API_HELPERS_H_
8 #include "chrome/browser/sync_file_system/conflict_resolution_policy.h"
9 #include "chrome/browser/sync_file_system/sync_action.h"
10 #include "chrome/browser/sync_file_system/sync_direction.h"
11 #include "chrome/browser/sync_file_system/sync_file_status.h"
12 #include "chrome/browser/sync_file_system/sync_file_type.h"
13 #include "chrome/browser/sync_file_system/sync_service_state.h"
14 #include "chrome/common/extensions/api/sync_file_system.h"
21 class DictionaryValue;
24 namespace extensions {
26 // extensions::api::sync_file_system <-> sync_file_system enum conversion
28 api::sync_file_system::ServiceStatus SyncServiceStateToExtensionEnum(
29 sync_file_system::SyncServiceState state);
31 api::sync_file_system::FileStatus SyncFileStatusToExtensionEnum(
32 sync_file_system::SyncFileStatus status);
34 api::sync_file_system::SyncAction SyncActionToExtensionEnum(
35 sync_file_system::SyncAction action);
37 api::sync_file_system::SyncDirection SyncDirectionToExtensionEnum(
38 sync_file_system::SyncDirection direction);
40 api::sync_file_system::ConflictResolutionPolicy
41 ConflictResolutionPolicyToExtensionEnum(
42 sync_file_system::ConflictResolutionPolicy policy);
44 sync_file_system::ConflictResolutionPolicy
45 ExtensionEnumToConflictResolutionPolicy(
46 api::sync_file_system::ConflictResolutionPolicy);
48 // Creates a dictionary for FileSystem Entry from given |url|.
49 // This will create a dictionary which has 'fileSystemType', 'fileSystemName',
50 // 'rootUrl', 'filePath' and 'isDirectory' fields.
51 // The returned dictionary is supposed to be interpreted
52 // in the renderer's customer binding to create a FileEntry object.
53 // This returns NULL if the given |url| is not valid or |file_type| is
54 // SYNC_FILE_TYPE_UNKNOWN.
55 base::DictionaryValue* CreateDictionaryValueForFileSystemEntry(
56 const fileapi::FileSystemURL& url,
57 sync_file_system::SyncFileType file_type);
59 } // namespace extensions
61 #endif // CHROME_BROWSER_EXTENSIONS_API_SYNC_FILE_SYSTEM_SYNC_FILE_SYSTEM_API_HELPERS_H_