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_SYNC_FILE_SYSTEM_DRIVE_BACKEND_DRIVE_BACKEND_UTIL_H_
6 #define CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_DRIVE_BACKEND_UTIL_H_
10 #include "base/memory/scoped_ptr.h"
11 #include "base/memory/scoped_vector.h"
12 #include "chrome/browser/sync_file_system/drive_backend/metadata_database.pb.h"
13 #include "chrome/browser/sync_file_system/sync_status_code.h"
14 #include "google_apis/drive/gdata_errorcode.h"
15 #include "webkit/common/blob/scoped_file.h"
17 namespace google_apis {
27 namespace sync_file_system {
28 namespace drive_backend {
30 void PutServiceMetadataToBatch(const ServiceMetadata& service_metadata,
31 leveldb::WriteBatch* batch);
32 void PutFileMetadataToBatch(const FileMetadata& file,
33 leveldb::WriteBatch* batch);
34 void PutFileTrackerToBatch(const FileTracker& tracker,
35 leveldb::WriteBatch* batch);
37 void PopulateFileDetailsByFileResource(
38 const google_apis::FileResource& file_resource,
39 FileDetails* details);
40 scoped_ptr<FileMetadata> CreateFileMetadataFromFileResource(
42 const google_apis::FileResource& resource);
43 scoped_ptr<FileMetadata> CreateFileMetadataFromChangeResource(
44 const google_apis::ChangeResource& change);
45 scoped_ptr<FileMetadata> CreateDeletedFileMetadata(
47 const std::string& file_id);
49 // Creates a temporary file in |dir_path|. This must be called on an
50 // IO-allowed task runner, and the runner must be given as |file_task_runner|.
51 webkit_blob::ScopedFile CreateTemporaryFile(
52 base::TaskRunner* file_task_runner);
54 std::string FileKindToString(FileKind file_kind);
56 bool HasFileAsParent(const FileDetails& details, const std::string& file_id);
58 std::string GetMimeTypeFromTitle(const base::FilePath& title);
60 scoped_ptr<google_apis::ResourceEntry> GetOldestCreatedFolderResource(
61 ScopedVector<google_apis::ResourceEntry> list);
63 SyncStatusCode GDataErrorCodeToSyncStatusCode(
64 google_apis::GDataErrorCode error);
66 } // namespace drive_backend
67 } // namespace sync_file_system
69 #endif // CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_DRIVE_BACKEND_UTIL_H_