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

Side by Side Diff: chrome/browser/sync_file_system/drive_backend/local_sync_delegate.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_LOCAL_SYNC_DELEGATE_H_
6 #define CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_LOCAL_SYNC_DELEGATE_H_
7
8 #include <string>
9
10 #include "base/callback.h"
11 #include "base/memory/weak_ptr.h"
12 #include "chrome/browser/sync_file_system/drive_backend/drive_file_sync_service. h"
13 #include "chrome/browser/sync_file_system/file_change.h"
14 #include "chrome/browser/sync_file_system/sync_callbacks.h"
15 #include "chrome/browser/sync_file_system/sync_file_metadata.h"
16 #include "chrome/browser/sync_file_system/sync_file_system.pb.h"
17 #include "webkit/browser/fileapi/file_system_url.h"
18
19 namespace sync_file_system {
20
21 class ConflictResolutionResolver;
22 class DriveMetadataStore;
23
24 namespace drive_backend {
25
26 class APIUtil;
27
28 // This class handles ApplyLocalChange in LocalChangeProcessor, and its instance
29 // represents single ApplyLocalChange operation.
30 // The caller is responsible to own the instance, and can cancel operation by
31 // deleting the instance or |sync_service|.
32 class LocalSyncDelegate {
33 public:
34 typedef RemoteChangeHandler::RemoteChange RemoteChange;
35
36 LocalSyncDelegate(DriveFileSyncService* sync_service,
37 const FileChange& change,
38 const base::FilePath& local_file_path,
39 const SyncFileMetadata& local_file_metadata,
40 const fileapi::FileSystemURL& url);
41 ~LocalSyncDelegate();
42
43 void Run(const SyncStatusCallback& callback);
44
45 private:
46 void DidGetOriginRoot(const SyncStatusCallback& callback,
47 SyncStatusCode status,
48 const std::string& resource_id);
49 void UploadNewFile(const SyncStatusCallback& callback);
50 void DidUploadNewFile(const SyncStatusCallback& callback,
51 google_apis::GDataErrorCode error,
52 const std::string& resource_id,
53 const std::string& md5);
54 void CreateDirectory(const SyncStatusCallback& callback);
55 void DidCreateDirectory(
56 const SyncStatusCallback& callback,
57 google_apis::GDataErrorCode error,
58 const std::string& resource_id);
59 void UploadExistingFile(const SyncStatusCallback& callback);
60 void DidUploadExistingFile(
61 const SyncStatusCallback& callback,
62 google_apis::GDataErrorCode error,
63 const std::string& resource_id,
64 const std::string& md5);
65 void Delete(const SyncStatusCallback& callback);
66 void DidDelete(const SyncStatusCallback& callback,
67 google_apis::GDataErrorCode error);
68 void DidDeleteMetadataForDeletionConflict(
69 const SyncStatusCallback& callback,
70 SyncStatusCode status);
71 void ResolveToLocal(const SyncStatusCallback& callback);
72 void DidDeleteFileToResolveToLocal(
73 const SyncStatusCallback& callback,
74 google_apis::GDataErrorCode error);
75 void ResolveToRemote(const SyncStatusCallback& callback,
76 SyncFileType remote_file_type);
77 void DidResolveToRemote(const SyncStatusCallback& callback,
78 SyncStatusCode status);
79 void DidApplyLocalChange(
80 const SyncStatusCallback& callback,
81 const google_apis::GDataErrorCode error,
82 SyncStatusCode status);
83
84 // Metadata manipulation.
85 void UpdateMetadata(const std::string& resource_id,
86 const std::string& md5,
87 DriveMetadata::ResourceType type,
88 const SyncStatusCallback& callback);
89 void ResetMetadataForStartOver(const SyncStatusCallback& callback);
90 void SetMetadataToBeFetched(DriveMetadata::ResourceType type,
91 const SyncStatusCallback& callback);
92 void DeleteMetadata(const SyncStatusCallback& callback);
93 void SetMetadataConflict(const SyncStatusCallback& callback);
94
95 // Conflict handling.
96 void HandleCreationConflict(
97 const std::string& resource_id,
98 DriveMetadata::ResourceType type,
99 const SyncStatusCallback& callback);
100 void HandleConflict(const SyncStatusCallback& callback);
101 void DidGetEntryForConflictResolution(
102 const SyncStatusCallback& callback,
103 google_apis::GDataErrorCode error,
104 scoped_ptr<google_apis::ResourceEntry> entry);
105
106 void HandleManualResolutionCase(const SyncStatusCallback& callback);
107 void DidMarkConflict(const SyncStatusCallback& callback,
108 SyncStatusCode status);
109
110 void HandleLocalWinCase(const SyncStatusCallback& callback);
111 void HandleRemoteWinCase(const SyncStatusCallback& callback,
112 SyncFileType remote_file_type);
113 void StartOver(const SyncStatusCallback& callback, SyncStatusCode status);
114
115 SyncStatusCode GDataErrorCodeToSyncStatusCodeWrapper(
116 google_apis::GDataErrorCode error);
117
118 DriveMetadataStore* metadata_store();
119 APIUtilInterface* api_util();
120 RemoteChangeHandler* remote_change_handler();
121 ConflictResolutionResolver* conflict_resolution_resolver();
122
123 DriveFileSyncService* sync_service_; // Not owned.
124
125 SyncOperationType operation_;
126
127 fileapi::FileSystemURL url_;
128 FileChange local_change_;
129 base::FilePath local_path_;
130 SyncFileMetadata local_metadata_;
131 DriveMetadata drive_metadata_;
132 bool has_drive_metadata_;
133 RemoteChange remote_change_;
134 bool has_remote_change_;
135
136 std::string origin_resource_id_;
137
138 base::WeakPtrFactory<LocalSyncDelegate> weak_factory_;
139
140 DISALLOW_COPY_AND_ASSIGN(LocalSyncDelegate);
141 };
142
143 } // namespace drive_backend
144 } // namespace sync_file_system
145
146 #endif // CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_LOCAL_SYNC_DELEGATE_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698