| Index: chrome/browser/sync/engine/syncer_command.cc
|
| ===================================================================
|
| --- chrome/browser/sync/engine/syncer_command.cc (revision 32731)
|
| +++ chrome/browser/sync/engine/syncer_command.cc (working copy)
|
| @@ -5,49 +5,49 @@
|
| #include "chrome/browser/sync/engine/syncer_command.h"
|
|
|
| #include "chrome/browser/sync/engine/net/server_connection_manager.h"
|
| -#include "chrome/browser/sync/engine/syncer_session.h"
|
| -#include "chrome/browser/sync/engine/syncer_status.h"
|
| +#include "chrome/browser/sync/sessions/sync_session.h"
|
| #include "chrome/browser/sync/syncable/directory_manager.h"
|
| #include "chrome/browser/sync/util/event_sys-inl.h"
|
| #include "chrome/browser/sync/util/sync_types.h"
|
|
|
| namespace browser_sync {
|
| +using sessions::SyncSession;
|
|
|
| SyncerCommand::SyncerCommand() {}
|
| SyncerCommand::~SyncerCommand() {}
|
|
|
| -void SyncerCommand::Execute(SyncerSession* session) {
|
| +void SyncerCommand::Execute(SyncSession* session) {
|
| ExecuteImpl(session);
|
| SendNotifications(session);
|
| }
|
|
|
| -void SyncerCommand::SendNotifications(SyncerSession* session) {
|
| - syncable::ScopedDirLookup dir(session->dirman(), session->account_name());
|
| +void SyncerCommand::SendNotifications(SyncSession* session) {
|
| + syncable::ScopedDirLookup dir(session->context()->directory_manager(),
|
| + session->context()->account_name());
|
| if (!dir.good()) {
|
| LOG(ERROR) << "Scoped dir lookup failed!";
|
| return;
|
| }
|
|
|
| - SyncerStatus status(session);
|
| -
|
| - if (status.IsDirty()) {
|
| - SyncerEvent event = { SyncerEvent::STATUS_CHANGED};
|
| - event.last_session = session;
|
| - session->syncer_event_channel()->NotifyListeners(event);
|
| - if (status.over_quota()) {
|
| - SyncerEvent quota_event = {SyncerEvent::OVER_QUOTA};
|
| - quota_event.last_session = session;
|
| - session->syncer_event_channel()->NotifyListeners(quota_event);
|
| + if (session->status_controller()->TestAndClearIsDirty()) {
|
| + SyncerEvent event(SyncerEvent::STATUS_CHANGED);
|
| + const sessions::SyncSessionSnapshot& snapshot(session->TakeSnapshot());
|
| + event.snapshot = &snapshot;
|
| + DCHECK(session->context()->syncer_event_channel());
|
| + session->context()->syncer_event_channel()->NotifyListeners(event);
|
| + if (session->status_controller()->syncer_status().over_quota) {
|
| + SyncerEvent quota_event(SyncerEvent::OVER_QUOTA);
|
| + quota_event.snapshot = &snapshot;
|
| + session->context()->syncer_event_channel()->NotifyListeners(quota_event);
|
| }
|
| - status.SetClean();
|
| }
|
| - if (status.IsAuthDirty()) {
|
| + if (session->auth_failure_occurred()) {
|
| ServerConnectionEvent event;
|
| event.what_happened = ServerConnectionEvent::STATUS_CHANGED;
|
| event.server_reachable = true;
|
| event.connection_code = HttpResponse::SYNC_AUTH_ERROR;
|
| - session->connection_manager()->channel()->NotifyListeners(event);
|
| - status.SetAuthClean();
|
| + session->context()->connection_manager()->channel()->NotifyListeners(event);
|
| + session->clear_auth_failure_occurred();
|
| }
|
| }
|
|
|
|
|