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. 4 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_ 7 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" 15 16namespace storage { 17class FileSystemURL; 18} 19 20namespace base { 21class DictionaryValue; 22} 23 24namespace extensions { 25 26// extensions::api::sync_file_system <-> sync_file_system enum conversion 27// functions. 28api::sync_file_system::ServiceStatus SyncServiceStateToExtensionEnum( 29 sync_file_system::SyncServiceState state); 30 31api::sync_file_system::FileStatus SyncFileStatusToExtensionEnum( 32 sync_file_system::SyncFileStatus status); 33 34api::sync_file_system::SyncAction SyncActionToExtensionEnum( 35 sync_file_system::SyncAction action); 36 37api::sync_file_system::SyncDirection SyncDirectionToExtensionEnum( 38 sync_file_system::SyncDirection direction); 39 40api::sync_file_system::ConflictResolutionPolicy 41ConflictResolutionPolicyToExtensionEnum( 42 sync_file_system::ConflictResolutionPolicy policy); 43 44sync_file_system::ConflictResolutionPolicy 45ExtensionEnumToConflictResolutionPolicy( 46 api::sync_file_system::ConflictResolutionPolicy); 47 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. 55base::DictionaryValue* CreateDictionaryValueForFileSystemEntry( 56 const storage::FileSystemURL& url, 57 sync_file_system::SyncFileType file_type); 58 59} // namespace extensions 60 61#endif // CHROME_BROWSER_EXTENSIONS_API_SYNC_FILE_SYSTEM_SYNC_FILE_SYSTEM_API_HELPERS_H_ 62