| OLD | NEW |
| 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 #include "chrome/browser/sync_file_system/sync_file_system_service.h" | 5 #include "chrome/browser/sync_file_system/sync_file_system_service.h" |
| 6 | 6 |
| 7 #include <stddef.h> |
| 8 #include <stdint.h> |
| 9 |
| 7 #include <string> | 10 #include <string> |
| 8 | 11 |
| 9 #include "base/bind.h" | 12 #include "base/bind.h" |
| 10 #include "base/format_macros.h" | 13 #include "base/format_macros.h" |
| 11 #include "base/logging.h" | 14 #include "base/logging.h" |
| 15 #include "base/macros.h" |
| 12 #include "base/memory/ref_counted.h" | 16 #include "base/memory/ref_counted.h" |
| 13 #include "base/metrics/histogram.h" | 17 #include "base/metrics/histogram.h" |
| 14 #include "base/single_thread_task_runner.h" | 18 #include "base/single_thread_task_runner.h" |
| 15 #include "base/stl_util.h" | 19 #include "base/stl_util.h" |
| 16 #include "base/thread_task_runner_handle.h" | 20 #include "base/thread_task_runner_handle.h" |
| 17 #include "chrome/browser/extensions/api/sync_file_system/extension_sync_event_ob
server.h" | 21 #include "chrome/browser/extensions/api/sync_file_system/extension_sync_event_ob
server.h" |
| 18 #include "chrome/browser/extensions/api/sync_file_system/sync_file_system_api_he
lpers.h" | 22 #include "chrome/browser/extensions/api/sync_file_system/sync_file_system_api_he
lpers.h" |
| 19 #include "chrome/browser/profiles/profile.h" | 23 #include "chrome/browser/profiles/profile.h" |
| 20 #include "chrome/browser/sync/profile_sync_service_factory.h" | 24 #include "chrome/browser/sync/profile_sync_service_factory.h" |
| 21 #include "chrome/browser/sync_file_system/local/local_file_sync_service.h" | 25 #include "chrome/browser/sync_file_system/local/local_file_sync_service.h" |
| (...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 150 1 /* max_parallel_task */), | 154 1 /* max_parallel_task */), |
| 151 factory_(this) {} | 155 factory_(this) {} |
| 152 | 156 |
| 153 void StartSync(const SyncStatusCallback& callback) override { | 157 void StartSync(const SyncStatusCallback& callback) override { |
| 154 GetSyncService()->local_service_->ProcessLocalChange( | 158 GetSyncService()->local_service_->ProcessLocalChange( |
| 155 base::Bind(&LocalSyncRunner::DidProcessLocalChange, | 159 base::Bind(&LocalSyncRunner::DidProcessLocalChange, |
| 156 factory_.GetWeakPtr(), callback)); | 160 factory_.GetWeakPtr(), callback)); |
| 157 } | 161 } |
| 158 | 162 |
| 159 // LocalFileSyncService::Observer overrides. | 163 // LocalFileSyncService::Observer overrides. |
| 160 void OnLocalChangeAvailable(int64 pending_changes) override { | 164 void OnLocalChangeAvailable(int64_t pending_changes) override { |
| 161 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 165 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 162 | 166 |
| 163 OnChangesUpdated(pending_changes); | 167 OnChangesUpdated(pending_changes); |
| 164 | 168 |
| 165 // Kick other sync runners just in case they're not running. | 169 // Kick other sync runners just in case they're not running. |
| 166 GetSyncService()->RunForEachSyncRunners(&SyncProcessRunner::Schedule); | 170 GetSyncService()->RunForEachSyncRunners(&SyncProcessRunner::Schedule); |
| 167 } | 171 } |
| 168 | 172 |
| 169 private: | 173 private: |
| 170 void DidProcessLocalChange( | 174 void DidProcessLocalChange( |
| (...skipping 29 matching lines...) Expand all Loading... |
| 200 remote_service_->ProcessRemoteChange( | 204 remote_service_->ProcessRemoteChange( |
| 201 base::Bind(&RemoteSyncRunner::DidProcessRemoteChange, | 205 base::Bind(&RemoteSyncRunner::DidProcessRemoteChange, |
| 202 factory_.GetWeakPtr(), callback)); | 206 factory_.GetWeakPtr(), callback)); |
| 203 } | 207 } |
| 204 | 208 |
| 205 SyncServiceState GetServiceState() override { | 209 SyncServiceState GetServiceState() override { |
| 206 return RemoteStateToSyncServiceState(last_state_); | 210 return RemoteStateToSyncServiceState(last_state_); |
| 207 } | 211 } |
| 208 | 212 |
| 209 // RemoteFileSyncService::Observer overrides. | 213 // RemoteFileSyncService::Observer overrides. |
| 210 void OnRemoteChangeQueueUpdated(int64 pending_changes) override { | 214 void OnRemoteChangeQueueUpdated(int64_t pending_changes) override { |
| 211 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 215 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 212 | 216 |
| 213 OnChangesUpdated(pending_changes); | 217 OnChangesUpdated(pending_changes); |
| 214 | 218 |
| 215 // Kick other sync runners just in case they're not running. | 219 // Kick other sync runners just in case they're not running. |
| 216 GetSyncService()->RunForEachSyncRunners(&SyncProcessRunner::Schedule); | 220 GetSyncService()->RunForEachSyncRunners(&SyncProcessRunner::Schedule); |
| 217 } | 221 } |
| 218 | 222 |
| 219 void OnRemoteServiceStateUpdated(RemoteServiceState state, | 223 void OnRemoteServiceStateUpdated(RemoteServiceState state, |
| 220 const std::string& description) override { | 224 const std::string& description) override { |
| (...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 358 void SyncFileSystemService::OnSyncIdle() { | 362 void SyncFileSystemService::OnSyncIdle() { |
| 359 if (promoting_demoted_changes_) | 363 if (promoting_demoted_changes_) |
| 360 return; | 364 return; |
| 361 promoting_demoted_changes_ = true; | 365 promoting_demoted_changes_ = true; |
| 362 | 366 |
| 363 int* job_count = new int(1); | 367 int* job_count = new int(1); |
| 364 base::Closure promote_completion_callback = | 368 base::Closure promote_completion_callback = |
| 365 base::Bind(&SyncFileSystemService::OnPromotionCompleted, | 369 base::Bind(&SyncFileSystemService::OnPromotionCompleted, |
| 366 AsWeakPtr(), base::Owned(job_count)); | 370 AsWeakPtr(), base::Owned(job_count)); |
| 367 | 371 |
| 368 int64 remote_changes = 0; | 372 int64_t remote_changes = 0; |
| 369 for (size_t i = 0; i < remote_sync_runners_.size(); ++i) | 373 for (size_t i = 0; i < remote_sync_runners_.size(); ++i) |
| 370 remote_changes += remote_sync_runners_[i]->pending_changes(); | 374 remote_changes += remote_sync_runners_[i]->pending_changes(); |
| 371 if (remote_changes == 0) { | 375 if (remote_changes == 0) { |
| 372 ++*job_count; | 376 ++*job_count; |
| 373 local_service_->PromoteDemotedChanges(promote_completion_callback); | 377 local_service_->PromoteDemotedChanges(promote_completion_callback); |
| 374 } | 378 } |
| 375 | 379 |
| 376 int64 local_changes = 0; | 380 int64_t local_changes = 0; |
| 377 for (size_t i = 0; i < local_sync_runners_.size(); ++i) | 381 for (size_t i = 0; i < local_sync_runners_.size(); ++i) |
| 378 local_changes += local_sync_runners_[i]->pending_changes(); | 382 local_changes += local_sync_runners_[i]->pending_changes(); |
| 379 if (local_changes == 0) { | 383 if (local_changes == 0) { |
| 380 ++*job_count; | 384 ++*job_count; |
| 381 remote_service_->PromoteDemotedChanges(promote_completion_callback); | 385 remote_service_->PromoteDemotedChanges(promote_completion_callback); |
| 382 } | 386 } |
| 383 | 387 |
| 384 promote_completion_callback.Run(); | 388 promote_completion_callback.Run(); |
| 385 } | 389 } |
| 386 | 390 |
| (...skipping 371 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 758 local_sync_runners_.begin(); | 762 local_sync_runners_.begin(); |
| 759 iter != local_sync_runners_.end(); ++iter) | 763 iter != local_sync_runners_.end(); ++iter) |
| 760 ((*iter)->*method)(); | 764 ((*iter)->*method)(); |
| 761 for (ScopedVector<SyncProcessRunner>::iterator iter = | 765 for (ScopedVector<SyncProcessRunner>::iterator iter = |
| 762 remote_sync_runners_.begin(); | 766 remote_sync_runners_.begin(); |
| 763 iter != remote_sync_runners_.end(); ++iter) | 767 iter != remote_sync_runners_.end(); ++iter) |
| 764 ((*iter)->*method)(); | 768 ((*iter)->*method)(); |
| 765 } | 769 } |
| 766 | 770 |
| 767 } // namespace sync_file_system | 771 } // namespace sync_file_system |
| OLD | NEW |