Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(53)

Side by Side Diff: chrome/browser/sync_file_system/drive_backend/api_util_interface.h

Issue 23787003: [SyncFS] Move SyncFS V1 files from drive_backend to drive_backend_v1 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: move back metadata_db_migration_util* Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
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_API_UTIL_INTERFACE_H_
6 #define CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_API_UTIL_INTERFACE_H_
7
8 #include <string>
9
10 #include "base/callback_forward.h"
11 #include "chrome/browser/google_apis/gdata_errorcode.h"
12 #include "chrome/browser/google_apis/gdata_wapi_parser.h"
13
14 class GURL;
15 class Profile;
16
17 namespace base {
18 class Time;
19 }
20
21 namespace google_apis {
22 class DriveUploaderInterface;
23 }
24
25 namespace webkit_blob {
26 class ScopedFile;
27 }
28
29 namespace sync_file_system {
30 namespace drive_backend {
31
32 class APIUtilObserver {
33 public:
34 APIUtilObserver() {}
35 virtual ~APIUtilObserver() {}
36 virtual void OnAuthenticated() = 0;
37 virtual void OnNetworkConnected() = 0;
38
39 private:
40 DISALLOW_COPY_AND_ASSIGN(APIUtilObserver);
41 };
42
43 // The implementation of this class is responsible for talking to the Drive
44 // service to get and put Drive directories, files and metadata.
45 // This class is owned by DriveFileSyncService.
46 class APIUtilInterface {
47 public:
48 typedef base::Callback<void(google_apis::GDataErrorCode error)>
49 GDataErrorCallback;
50 typedef base::Callback<void(google_apis::GDataErrorCode error,
51 const std::string& file_md5,
52 int64 file_size,
53 const base::Time& last_updated,
54 scoped_ptr<webkit_blob::ScopedFile> downloaded)>
55 DownloadFileCallback;
56 typedef base::Callback<void(google_apis::GDataErrorCode error,
57 const std::string& resource_id,
58 const std::string& file_md5)> UploadFileCallback;
59 typedef base::Callback<
60 void(google_apis::GDataErrorCode error, const std::string& resource_id)>
61 ResourceIdCallback;
62 typedef base::Callback<void(google_apis::GDataErrorCode error,
63 int64 changestamp)> ChangeStampCallback;
64 typedef base::Callback<void(google_apis::GDataErrorCode error,
65 scoped_ptr<google_apis::ResourceList> feed)>
66 ResourceListCallback;
67 typedef base::Callback<void(google_apis::GDataErrorCode error,
68 scoped_ptr<google_apis::ResourceEntry> entry)>
69 ResourceEntryCallback;
70
71 APIUtilInterface() {}
72 virtual ~APIUtilInterface() {}
73
74 virtual void AddObserver(APIUtilObserver* observer) = 0;
75 virtual void RemoveObserver(APIUtilObserver* observer) = 0;
76
77 // Fetches Resource ID of the directory where we should place all files to
78 // sync. Upon completion, invokes |callback|.
79 // If the directory does not exist on the server this also creates
80 // the directory.
81 //
82 // Returns HTTP_SUCCESS if the directory already exists.
83 // Returns HTTP_CREATED if the directory was not found and created.
84 virtual void GetDriveDirectoryForSyncRoot(
85 const ResourceIdCallback& callback) = 0;
86
87 // Fetches Resource ID of the directory for the |origin|.
88 // Upon completion, invokes |callback|.
89 // If the directory does not exist on the server this also creates
90 // the directory.
91 //
92 // Returns HTTP_SUCCESS if the directory already exists.
93 // Returns HTTP_CREATED if the directory was not found and created.
94 virtual void GetDriveDirectoryForOrigin(
95 const std::string& sync_root_resource_id,
96 const GURL& origin,
97 const ResourceIdCallback& callback) = 0;
98
99 // Fetches the largest changestamp for the signed-in account.
100 // Upon completion, invokes |callback|.
101 virtual void GetLargestChangeStamp(const ChangeStampCallback& callback) = 0;
102
103 // Fetches the resource entry for the file identified by |resource_id|.
104 // Upon completion, invokes |callback|.
105 virtual void GetResourceEntry(const std::string& resource_id,
106 const ResourceEntryCallback& callback) = 0;
107
108 // Lists files in the directory identified by |resource_id|.
109 // Upon completion, invokes |callback|.
110 // The result may be chunked and may have successive results. The caller needs
111 // to call ContunueListing with the result of GetNextFeedURL to get complete
112 // list of files.
113 virtual void ListFiles(const std::string& directory_resource_id,
114 const ResourceListCallback& callback) = 0;
115
116 // Lists changes that happened after |start_changestamp|.
117 // Upon completion, invokes |callback|.
118 // The result may be chunked and may have successive results. The caller needs
119 // to call ContunueListing with the result of GetNextFeedURL to get complete
120 // list of changes.
121 virtual void ListChanges(int64 start_changestamp,
122 const ResourceListCallback& callback) = 0;
123
124 // Fetches the next chunk of ResourceList identified by |next_link|.
125 // Upon completion, invokes |callback|.
126 virtual void ContinueListing(const GURL& next_link,
127 const ResourceListCallback& callback) = 0;
128
129 // Downloads the file identified by |resource_id| from Drive to
130 // |local_file_path|.
131 // |local_file_md5| represents the hash value of the local file to be updated.
132 // If |local_file_md5| is equal to remote file's value, cancels the download
133 // and invokes |callback| with GDataErrorCode::HTTP_NOT_MODIFIED immediately.
134 // When there is no local file to be updated, |local_file_md5| should be
135 // empty.
136 virtual void DownloadFile(const std::string& resource_id,
137 const std::string& local_file_md5,
138 const DownloadFileCallback& callback) = 0;
139
140 // Uploads the new file |local_file_path| with specified |title| into the
141 // directory identified by |directory_resource_id|.
142 // Upon completion, invokes |callback| and returns HTTP_CREATED if the file
143 // is created.
144 virtual void UploadNewFile(const std::string& directory_resource_id,
145 const base::FilePath& local_file_path,
146 const std::string& title,
147 const UploadFileCallback& callback) = 0;
148
149 // Uploads the existing file identified by |local_file_path|.
150 // |remote_file_md5| represents the expected hash value of the file to be
151 // updated on Drive. If |remote_file_md5| is different from the actual value,
152 // cancels the upload and invokes |callback| with
153 // GDataErrorCode::HTTP_CONFLICT immediately.
154 // Returns HTTP_SUCCESS if the file uploaded successfully.
155 virtual void UploadExistingFile(const std::string& resource_id,
156 const std::string& remote_file_md5,
157 const base::FilePath& local_file_path,
158 const UploadFileCallback& callback) = 0;
159
160 // Creates a new directory with specified |title| into the directory
161 // identified by |parent_resource_id|.
162 // Upon completion, invokes |callback| and returns HTTP_CREATED if
163 // the directory is created.
164 virtual void CreateDirectory(const std::string& parent_resource_id,
165 const std::string& title,
166 const ResourceIdCallback& callback) = 0;
167
168 // Returns true if the user is authenticated.
169 virtual bool IsAuthenticated() const = 0;
170
171 // Deletes the file identified by |resource_id|.
172 // A directory is considered a file and will cause a recursive delete if
173 // given as the |resource_id|.
174 // TODO(tzik): Rename this function to DeleteResource.
175 //
176 // |remote_file_md5| represents the expected hash value of the file to be
177 // deleted from Drive. If |remote_file_md5| is empty, then it's implied that
178 // the file should be deleted on the remote side regardless. If
179 // |remote_file_md5| is not empty and is different from the actual value,
180 // the deletion operation is canceled and the |callback| with
181 // GDataErrorCode::HTTP_CONFLICT is invoked immediately.
182 virtual void DeleteFile(const std::string& resource_id,
183 const std::string& remote_file_md5,
184 const GDataErrorCallback& callback) = 0;
185
186 // Converts |resource_id| to corresponing resource link.
187 virtual GURL ResourceIdToResourceLink(
188 const std::string& resource_id) const = 0;
189
190 // Ensures the sync root directory is not in 'My Drive'. Even if the directory
191 // is in directories other than 'My Drive', it will not be removed from there.
192 virtual void EnsureSyncRootIsNotInMyDrive(
193 const std::string& sync_root_resource_id) = 0;
194
195 private:
196 DISALLOW_COPY_AND_ASSIGN(APIUtilInterface);
197 };
198
199 } // namespace drive_backend
200 } // namespace sync_file_system
201
202 #endif // CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_API_UTIL_INTERFACE_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698