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

Side by Side Diff: chrome/browser/chromeos/drive/sync_client.h

Issue 145173010: drive: Merge ContentUpdatePerformer to EntryUpdatePerformer (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: please review this Created 6 years, 11 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
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CHROME_BROWSER_CHROMEOS_DRIVE_SYNC_CLIENT_H_ 5 #ifndef CHROME_BROWSER_CHROMEOS_DRIVE_SYNC_CLIENT_H_
6 #define CHROME_BROWSER_CHROMEOS_DRIVE_SYNC_CLIENT_H_ 6 #define CHROME_BROWSER_CHROMEOS_DRIVE_SYNC_CLIENT_H_
7 7
8 #include <map> 8 #include <map>
9 #include <string> 9 #include <string>
10 #include <vector> 10 #include <vector>
(...skipping 11 matching lines...) Expand all
22 namespace drive { 22 namespace drive {
23 23
24 class FileCacheEntry; 24 class FileCacheEntry;
25 class JobScheduler; 25 class JobScheduler;
26 class ResourceEntry; 26 class ResourceEntry;
27 struct ClientContext; 27 struct ClientContext;
28 28
29 namespace file_system { 29 namespace file_system {
30 class DownloadOperation; 30 class DownloadOperation;
31 class OperationObserver; 31 class OperationObserver;
32 class ContentUpdatePerformer;
33 } 32 }
34 33
35 namespace internal { 34 namespace internal {
36 35
37 class EntryUpdatePerformer; 36 class EntryUpdatePerformer;
38 class FileCache; 37 class FileCache;
39 class ResourceMetadata; 38 class ResourceMetadata;
40 39
41 // The SyncClient is used to synchronize pinned files on Drive and the 40 // The SyncClient is used to synchronize pinned files on Drive and the
42 // cache on the local drive. 41 // cache on the local drive.
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
81 delay_ = delay; 80 delay_ = delay;
82 } 81 }
83 82
84 // Starts the sync loop if it's not running. 83 // Starts the sync loop if it's not running.
85 void StartSyncLoop(); 84 void StartSyncLoop();
86 85
87 private: 86 private:
88 // Types of sync tasks. 87 // Types of sync tasks.
89 enum SyncType { 88 enum SyncType {
90 FETCH, // Fetch a file from the Drive server. 89 FETCH, // Fetch a file from the Drive server.
91 UPLOAD, // Upload a file to the Drive server. 90 UPDATE, // Updates an entry's metadata or content on the Drive server.
92 UPDATE, // Updates an entry's metadata on the Drive server.
93 }; 91 };
94 92
95 // States of sync tasks. 93 // States of sync tasks.
96 enum SyncState { 94 enum SyncState {
97 PENDING, 95 PENDING,
98 RUNNING, 96 RUNNING,
99 }; 97 };
100 98
101 struct SyncTask { 99 struct SyncTask {
102 SyncTask(); 100 SyncTask();
103 ~SyncTask(); 101 ~SyncTask();
104 SyncState state; 102 SyncState state;
105 base::Closure task; 103 base::Closure task;
106 bool should_run_again; 104 bool should_run_again;
107 }; 105 };
108 106
109 typedef std::map<std::pair<SyncType, std::string>, SyncTask> SyncTasks; 107 typedef std::map<std::pair<SyncType, std::string>, SyncTask> SyncTasks;
110 108
111 // Adds a FETCH task. 109 // Adds a FETCH task.
112 void AddFetchTaskInternal(const std::string& local_id, 110 void AddFetchTaskInternal(const std::string& local_id,
113 const base::TimeDelta& delay); 111 const base::TimeDelta& delay);
114 112
115 // Adds a UPLOAD task.
116 void AddUploadTaskInternal(const ClientContext& context,
117 const std::string& local_id,
118 const base::TimeDelta& delay);
119
120 // Adds a UPDATE task. 113 // Adds a UPDATE task.
121 void AddUpdateTaskInternal(const ClientContext& context, 114 void AddUpdateTaskInternal(const ClientContext& context,
122 const std::string& local_id, 115 const std::string& local_id,
123 const base::TimeDelta& delay); 116 const base::TimeDelta& delay);
124 117
125 // Adds the given task. If the same task is found, does nothing. 118 // Adds the given task. If the same task is found, does nothing.
126 void AddTask(const SyncTasks::key_type& key, 119 void AddTask(const SyncTasks::key_type& key,
127 const SyncTask& task, 120 const SyncTask& task,
128 const base::TimeDelta& delay); 121 const base::TimeDelta& delay);
129 122
130 // Called when a task is ready to start. 123 // Called when a task is ready to start.
131 void StartTask(const SyncTasks::key_type& key); 124 void StartTask(const SyncTasks::key_type& key);
132 125
133 // Called when the local IDs of files in the backlog are obtained. 126 // Called when the local IDs of files in the backlog are obtained.
134 void OnGetLocalIdsOfBacklog(const std::vector<std::string>* to_fetch, 127 void OnGetLocalIdsOfBacklog(const std::vector<std::string>* to_fetch,
135 const std::vector<std::string>* to_upload,
136 const std::vector<std::string>* to_update); 128 const std::vector<std::string>* to_update);
137 129
138 // Adds fetch tasks. 130 // Adds fetch tasks.
139 void AddFetchTasks(const std::vector<std::string>* local_ids); 131 void AddFetchTasks(const std::vector<std::string>* local_ids);
140 132
141 // Erases the task and returns true if task is completed. 133 // Erases the task and returns true if task is completed.
142 bool OnTaskComplete(SyncType type, const std::string& local_id); 134 bool OnTaskComplete(SyncType type, const std::string& local_id);
143 135
144 // Called when the file for |local_id| is fetched. 136 // Called when the file for |local_id| is fetched.
145 // Calls DoSyncLoop() to go back to the sync loop. 137 // Calls DoSyncLoop() to go back to the sync loop.
(...skipping 10 matching lines...) Expand all
156 void OnUpdateComplete(const std::string& local_id, FileError error); 148 void OnUpdateComplete(const std::string& local_id, FileError error);
157 149
158 scoped_refptr<base::SequencedTaskRunner> blocking_task_runner_; 150 scoped_refptr<base::SequencedTaskRunner> blocking_task_runner_;
159 file_system::OperationObserver* operation_observer_; 151 file_system::OperationObserver* operation_observer_;
160 ResourceMetadata* metadata_; 152 ResourceMetadata* metadata_;
161 FileCache* cache_; 153 FileCache* cache_;
162 154
163 // Used to fetch pinned files. 155 // Used to fetch pinned files.
164 scoped_ptr<file_system::DownloadOperation> download_operation_; 156 scoped_ptr<file_system::DownloadOperation> download_operation_;
165 157
166 // Used to upload committed files.
167 scoped_ptr<file_system::ContentUpdatePerformer> content_update_performer_;
168
169 // Used to update entry metadata. 158 // Used to update entry metadata.
170 scoped_ptr<EntryUpdatePerformer> entry_update_performer_; 159 scoped_ptr<EntryUpdatePerformer> entry_update_performer_;
171 160
172 // Sync tasks to be processed. 161 // Sync tasks to be processed.
173 SyncTasks tasks_; 162 SyncTasks tasks_;
174 163
175 // The delay is used for delaying processing tasks in AddTask(). 164 // The delay is used for delaying processing tasks in AddTask().
176 base::TimeDelta delay_; 165 base::TimeDelta delay_;
177 166
178 // The delay is used for delaying retry of tasks on server errors. 167 // The delay is used for delaying retry of tasks on server errors.
179 base::TimeDelta long_delay_; 168 base::TimeDelta long_delay_;
180 169
181 // Note: This should remain the last member so it'll be destroyed and 170 // Note: This should remain the last member so it'll be destroyed and
182 // invalidate its weak pointers before any other members are destroyed. 171 // invalidate its weak pointers before any other members are destroyed.
183 base::WeakPtrFactory<SyncClient> weak_ptr_factory_; 172 base::WeakPtrFactory<SyncClient> weak_ptr_factory_;
184 173
185 DISALLOW_COPY_AND_ASSIGN(SyncClient); 174 DISALLOW_COPY_AND_ASSIGN(SyncClient);
186 }; 175 };
187 176
188 } // namespace internal 177 } // namespace internal
189 } // namespace drive 178 } // namespace drive
190 179
191 #endif // CHROME_BROWSER_CHROMEOS_DRIVE_SYNC_CLIENT_H_ 180 #endif // CHROME_BROWSER_CHROMEOS_DRIVE_SYNC_CLIENT_H_
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/drive/sync/entry_update_performer_unittest.cc ('k') | chrome/browser/chromeos/drive/sync_client.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698