| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 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 | 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_process_runner.h" | 5 #include "chrome/browser/sync_file_system/sync_process_runner.h" |
| 6 | 6 |
| 7 #include "base/format_macros.h" | 7 #include "base/format_macros.h" |
| 8 #include "chrome/browser/sync_file_system/logger.h" | 8 #include "chrome/browser/sync_file_system/logger.h" |
| 9 #include "chrome/browser/sync_file_system/sync_file_system_service.h" | |
| 10 | 9 |
| 11 namespace sync_file_system { | 10 namespace sync_file_system { |
| 12 | 11 |
| 13 namespace { | 12 namespace { |
| 14 | 13 |
| 15 // Default delay when more changes are available. | 14 // Default delay when more changes are available. |
| 16 const int64 kSyncDelayInMilliseconds = 1 * base::Time::kMillisecondsPerSecond; | 15 const int64 kSyncDelayInMilliseconds = 1 * base::Time::kMillisecondsPerSecond; |
| 17 | 16 |
| 18 // Default delay when the previous change has had an error (but remote service | 17 // Default delay when the previous change has had an error (but remote service |
| 19 // is running). | 18 // is running). |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 59 status == SYNC_STATUS_NO_CONFLICT || | 58 status == SYNC_STATUS_NO_CONFLICT || |
| 60 status == SYNC_STATUS_NO_CHANGE_TO_SYNC || | 59 status == SYNC_STATUS_NO_CHANGE_TO_SYNC || |
| 61 status == SYNC_STATUS_UNKNOWN_ORIGIN || | 60 status == SYNC_STATUS_UNKNOWN_ORIGIN || |
| 62 status == SYNC_STATUS_RETRY; | 61 status == SYNC_STATUS_RETRY; |
| 63 } | 62 } |
| 64 | 63 |
| 65 } // namespace | 64 } // namespace |
| 66 | 65 |
| 67 SyncProcessRunner::SyncProcessRunner( | 66 SyncProcessRunner::SyncProcessRunner( |
| 68 const std::string& name, | 67 const std::string& name, |
| 69 SyncFileSystemService* sync_service, | 68 Client* client, |
| 70 scoped_ptr<TimerHelper> timer_helper, | 69 scoped_ptr<TimerHelper> timer_helper, |
| 71 int max_parallel_task) | 70 int max_parallel_task) |
| 72 : name_(name), | 71 : name_(name), |
| 73 sync_service_(sync_service), | 72 client_(client), |
| 74 max_parallel_task_(max_parallel_task), | 73 max_parallel_task_(max_parallel_task), |
| 75 running_tasks_(0), | 74 running_tasks_(0), |
| 76 timer_helper_(timer_helper.Pass()), | 75 timer_helper_(timer_helper.Pass()), |
| 77 current_delay_(0), | 76 current_delay_(0), |
| 78 last_delay_(0), | 77 last_delay_(0), |
| 79 pending_changes_(0), | 78 pending_changes_(0), |
| 80 factory_(this) { | 79 factory_(this) { |
| 81 DCHECK_LE(1, max_parallel_task_); | 80 DCHECK_LE(1, max_parallel_task_); |
| 82 | 81 |
| 83 DCHECK_EQ(1, max_parallel_task_) | 82 DCHECK_EQ(1, max_parallel_task_) |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 123 Schedule(); | 122 Schedule(); |
| 124 } | 123 } |
| 125 | 124 |
| 126 void SyncProcessRunner::OnChangesUpdated( | 125 void SyncProcessRunner::OnChangesUpdated( |
| 127 int64 pending_changes) { | 126 int64 pending_changes) { |
| 128 DCHECK_GE(pending_changes, 0); | 127 DCHECK_GE(pending_changes, 0); |
| 129 int64 old_pending_changes = pending_changes_; | 128 int64 old_pending_changes = pending_changes_; |
| 130 pending_changes_ = pending_changes; | 129 pending_changes_ = pending_changes; |
| 131 if (old_pending_changes != pending_changes) { | 130 if (old_pending_changes != pending_changes) { |
| 132 if (pending_changes == 0) | 131 if (pending_changes == 0) |
| 133 sync_service()->OnSyncIdle(); | 132 client_->OnSyncIdle(); |
| 134 util::Log(logging::LOG_VERBOSE, FROM_HERE, | 133 util::Log(logging::LOG_VERBOSE, FROM_HERE, |
| 135 "[%s] pending_changes updated: %" PRId64, | 134 "[%s] pending_changes updated: %" PRId64, |
| 136 name_.c_str(), pending_changes); | 135 name_.c_str(), pending_changes); |
| 137 } | 136 } |
| 138 Schedule(); | 137 Schedule(); |
| 139 } | 138 } |
| 140 | 139 |
| 140 SyncFileSystemService* SyncProcessRunner::GetSyncService() { |
| 141 return client_->GetSyncService(); |
| 142 } |
| 143 |
| 141 SyncServiceState SyncProcessRunner::GetServiceState() { | 144 SyncServiceState SyncProcessRunner::GetServiceState() { |
| 142 return sync_service()->GetSyncServiceState(); | 145 return client_->GetSyncServiceState(); |
| 143 } | 146 } |
| 144 | 147 |
| 145 void SyncProcessRunner::Finished(const base::TimeTicks& start_time, | 148 void SyncProcessRunner::Finished(const base::TimeTicks& start_time, |
| 146 SyncStatusCode status) { | 149 SyncStatusCode status) { |
| 147 DCHECK_LT(0, running_tasks_); | 150 DCHECK_LT(0, running_tasks_); |
| 148 DCHECK_LE(running_tasks_, max_parallel_task_); | 151 DCHECK_LE(running_tasks_, max_parallel_task_); |
| 149 --running_tasks_; | 152 --running_tasks_; |
| 150 util::Log(logging::LOG_VERBOSE, FROM_HERE, | 153 util::Log(logging::LOG_VERBOSE, FROM_HERE, |
| 151 "[%s] * Finished (elapsed: %" PRId64 " sec)", | 154 "[%s] * Finished (elapsed: %" PRId64 " sec)", |
| 152 name_.c_str(), | 155 name_.c_str(), |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 197 name_.c_str(), time_to_next.InSeconds()); | 200 name_.c_str(), time_to_next.InSeconds()); |
| 198 } | 201 } |
| 199 current_delay_ = delay; | 202 current_delay_ = delay; |
| 200 | 203 |
| 201 timer_helper_->Start( | 204 timer_helper_->Start( |
| 202 FROM_HERE, time_to_next, | 205 FROM_HERE, time_to_next, |
| 203 base::Bind(&SyncProcessRunner::Run, base::Unretained(this))); | 206 base::Bind(&SyncProcessRunner::Run, base::Unretained(this))); |
| 204 } | 207 } |
| 205 | 208 |
| 206 } // namespace sync_file_system | 209 } // namespace sync_file_system |
| OLD | NEW |