drive_backend_util.h revision 5d1f7b1de12d16ceb2c938c56701a3e8bfa558f7
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 CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_DRIVE_BACKEND_UTIL_H_
6#define CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_DRIVE_BACKEND_UTIL_H_
7
8#include <string>
9
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"
16
17namespace google_apis {
18class ChangeResource;
19class FileResource;
20class ResourceEntry;
21}
22
23namespace leveldb {
24class WriteBatch;
25}
26
27namespace sync_file_system {
28namespace drive_backend {
29
30void PutServiceMetadataToBatch(const ServiceMetadata& service_metadata,
31                               leveldb::WriteBatch* batch);
32void PutFileMetadataToBatch(const FileMetadata& file,
33                            leveldb::WriteBatch* batch);
34void PutFileTrackerToBatch(const FileTracker& tracker,
35                           leveldb::WriteBatch* batch);
36
37void PopulateFileDetailsByFileResource(
38    const google_apis::FileResource& file_resource,
39    FileDetails* details);
40scoped_ptr<FileMetadata> CreateFileMetadataFromFileResource(
41    int64 change_id,
42    const google_apis::FileResource& resource);
43scoped_ptr<FileMetadata> CreateFileMetadataFromChangeResource(
44    const google_apis::ChangeResource& change);
45scoped_ptr<FileMetadata> CreateDeletedFileMetadata(
46    int64 change_id,
47    const std::string& file_id);
48
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|.
51webkit_blob::ScopedFile CreateTemporaryFile(
52    base::TaskRunner* file_task_runner);
53
54std::string FileKindToString(FileKind file_kind);
55
56bool HasFileAsParent(const FileDetails& details, const std::string& file_id);
57
58std::string GetMimeTypeFromTitle(const base::FilePath& title);
59
60scoped_ptr<google_apis::ResourceEntry> GetOldestCreatedFolderResource(
61    ScopedVector<google_apis::ResourceEntry> list);
62
63SyncStatusCode GDataErrorCodeToSyncStatusCode(
64    google_apis::GDataErrorCode error);
65
66}  // namespace drive_backend
67}  // namespace sync_file_system
68
69#endif  // CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_DRIVE_BACKEND_UTIL_H_
70