| 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 "sync/engine/sync_scheduler.h" | 5 #include "sync/engine/sync_scheduler.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <cstring> | 8 #include <cstring> |
| 9 | 9 |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| (...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 263 base::Bind(&SyncScheduler::StartImpl, | 263 base::Bind(&SyncScheduler::StartImpl, |
| 264 weak_ptr_factory_.GetWeakPtr(), mode, callback)); | 264 weak_ptr_factory_.GetWeakPtr(), mode, callback)); |
| 265 } | 265 } |
| 266 | 266 |
| 267 void SyncScheduler::SendInitialSnapshot() { | 267 void SyncScheduler::SendInitialSnapshot() { |
| 268 DCHECK_EQ(MessageLoop::current(), sync_loop_); | 268 DCHECK_EQ(MessageLoop::current(), sync_loop_); |
| 269 scoped_ptr<SyncSession> dummy(new SyncSession(session_context_.get(), this, | 269 scoped_ptr<SyncSession> dummy(new SyncSession(session_context_.get(), this, |
| 270 SyncSourceInfo(), ModelSafeRoutingInfo(), | 270 SyncSourceInfo(), ModelSafeRoutingInfo(), |
| 271 std::vector<ModelSafeWorker*>())); | 271 std::vector<ModelSafeWorker*>())); |
| 272 SyncEngineEvent event(SyncEngineEvent::STATUS_CHANGED); | 272 SyncEngineEvent event(SyncEngineEvent::STATUS_CHANGED); |
| 273 sessions::SyncSessionSnapshot snapshot(dummy->TakeSnapshot()); | 273 event.snapshot = dummy->TakeSnapshot(); |
| 274 event.snapshot = &snapshot; | |
| 275 session_context_->NotifyListeners(event); | 274 session_context_->NotifyListeners(event); |
| 276 } | 275 } |
| 277 | 276 |
| 278 void SyncScheduler::StartImpl(Mode mode, const base::Closure& callback) { | 277 void SyncScheduler::StartImpl(Mode mode, const base::Closure& callback) { |
| 279 DCHECK_EQ(MessageLoop::current(), sync_loop_); | 278 DCHECK_EQ(MessageLoop::current(), sync_loop_); |
| 280 SDVLOG(2) << "In StartImpl with mode " << GetModeString(mode); | 279 SDVLOG(2) << "In StartImpl with mode " << GetModeString(mode); |
| 281 | 280 |
| 282 DCHECK_EQ(MessageLoop::current(), sync_loop_); | 281 DCHECK_EQ(MessageLoop::current(), sync_loop_); |
| 283 DCHECK(!session_context_->account_name().empty()); | 282 DCHECK(!session_context_->account_name().empty()); |
| 284 DCHECK(syncer_.get()); | 283 DCHECK(syncer_.get()); |
| (...skipping 876 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1161 SDVLOG(2) << "OnShouldStopSyncingPermanently"; | 1160 SDVLOG(2) << "OnShouldStopSyncingPermanently"; |
| 1162 syncer_->RequestEarlyExit(); // Thread-safe. | 1161 syncer_->RequestEarlyExit(); // Thread-safe. |
| 1163 Notify(SyncEngineEvent::STOP_SYNCING_PERMANENTLY); | 1162 Notify(SyncEngineEvent::STOP_SYNCING_PERMANENTLY); |
| 1164 } | 1163 } |
| 1165 | 1164 |
| 1166 void SyncScheduler::OnActionableError( | 1165 void SyncScheduler::OnActionableError( |
| 1167 const sessions::SyncSessionSnapshot& snap) { | 1166 const sessions::SyncSessionSnapshot& snap) { |
| 1168 DCHECK_EQ(MessageLoop::current(), sync_loop_); | 1167 DCHECK_EQ(MessageLoop::current(), sync_loop_); |
| 1169 SDVLOG(2) << "OnActionableError"; | 1168 SDVLOG(2) << "OnActionableError"; |
| 1170 SyncEngineEvent event(SyncEngineEvent::ACTIONABLE_ERROR); | 1169 SyncEngineEvent event(SyncEngineEvent::ACTIONABLE_ERROR); |
| 1171 sessions::SyncSessionSnapshot snapshot(snap); | 1170 event.snapshot = snap; |
| 1172 event.snapshot = &snapshot; | |
| 1173 session_context_->NotifyListeners(event); | 1171 session_context_->NotifyListeners(event); |
| 1174 } | 1172 } |
| 1175 | 1173 |
| 1176 void SyncScheduler::OnSyncProtocolError( | 1174 void SyncScheduler::OnSyncProtocolError( |
| 1177 const sessions::SyncSessionSnapshot& snapshot) { | 1175 const sessions::SyncSessionSnapshot& snapshot) { |
| 1178 DCHECK_EQ(MessageLoop::current(), sync_loop_); | 1176 DCHECK_EQ(MessageLoop::current(), sync_loop_); |
| 1179 if (ShouldRequestEarlyExit(snapshot.errors.sync_protocol_error)) { | 1177 if (ShouldRequestEarlyExit(snapshot.errors().sync_protocol_error)) { |
| 1180 SDVLOG(2) << "Sync Scheduler requesting early exit."; | 1178 SDVLOG(2) << "Sync Scheduler requesting early exit."; |
| 1181 syncer_->RequestEarlyExit(); // Thread-safe. | 1179 syncer_->RequestEarlyExit(); // Thread-safe. |
| 1182 } | 1180 } |
| 1183 if (IsActionableError(snapshot.errors.sync_protocol_error)) | 1181 if (IsActionableError(snapshot.errors().sync_protocol_error)) |
| 1184 OnActionableError(snapshot); | 1182 OnActionableError(snapshot); |
| 1185 } | 1183 } |
| 1186 | 1184 |
| 1187 void SyncScheduler::set_notifications_enabled(bool notifications_enabled) { | 1185 void SyncScheduler::set_notifications_enabled(bool notifications_enabled) { |
| 1188 DCHECK_EQ(MessageLoop::current(), sync_loop_); | 1186 DCHECK_EQ(MessageLoop::current(), sync_loop_); |
| 1189 session_context_->set_notifications_enabled(notifications_enabled); | 1187 session_context_->set_notifications_enabled(notifications_enabled); |
| 1190 } | 1188 } |
| 1191 | 1189 |
| 1192 base::TimeDelta SyncScheduler::sessions_commit_delay() const { | 1190 base::TimeDelta SyncScheduler::sessions_commit_delay() const { |
| 1193 DCHECK_EQ(MessageLoop::current(), sync_loop_); | 1191 DCHECK_EQ(MessageLoop::current(), sync_loop_); |
| 1194 return sessions_commit_delay_; | 1192 return sessions_commit_delay_; |
| 1195 } | 1193 } |
| 1196 | 1194 |
| 1197 #undef SDVLOG_LOC | 1195 #undef SDVLOG_LOC |
| 1198 | 1196 |
| 1199 #undef SDVLOG | 1197 #undef SDVLOG |
| 1200 | 1198 |
| 1201 #undef SLOG | 1199 #undef SLOG |
| 1202 | 1200 |
| 1203 #undef ENUM_CASE | 1201 #undef ENUM_CASE |
| 1204 | 1202 |
| 1205 } // browser_sync | 1203 } // browser_sync |
| OLD | NEW |