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

Unified Diff: chrome/browser/sync/engine/syncer_thread.cc

Issue 2075012: Replace changes_channel with an observer list. (Closed)
Patch Set: Ready for checkin Created 10 years, 6 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/sync/engine/syncer_thread.h ('k') | chrome/browser/sync/engine/syncer_thread_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/sync/engine/syncer_thread.cc
diff --git a/chrome/browser/sync/engine/syncer_thread.cc b/chrome/browser/sync/engine/syncer_thread.cc
index ed8b023c141ffa615963561055edf2127503a08b..9fc69d4f2ffba583054024b78e8771b856159482 100644
--- a/chrome/browser/sync/engine/syncer_thread.cc
+++ b/chrome/browser/sync/engine/syncer_thread.cc
@@ -74,8 +74,7 @@ SyncerThread::SyncerThread(sessions::SyncSessionContext* context,
session_context_(context),
disable_idle_detection_(false) {
DCHECK(context);
- syncer_event_relay_channel_.reset(new SyncerEventChannel(SyncerEvent(
- SyncerEvent::SHUTDOWN_USE_WITH_CARE)));
+ syncer_event_relay_channel_.reset(new SyncerEventChannel());
if (context->directory_manager()) {
directory_manager_hookup_.reset(NewEventListenerHookup(
@@ -90,6 +89,8 @@ SyncerThread::SyncerThread(sessions::SyncSessionContext* context,
SyncerThread::~SyncerThread() {
conn_mgr_hookup_.reset();
+ syncer_event_relay_channel_->Notify(SyncerEvent(
+ SyncerEvent::SHUTDOWN_USE_WITH_CARE));
syncer_event_relay_channel_.reset();
directory_manager_hookup_.reset();
syncer_events_.reset();
@@ -305,7 +306,7 @@ void SyncerThread::ThreadMainLoop() {
void SyncerThread::PauseUntilResumedOrQuit() {
LOG(INFO) << "Syncer thread entering pause.";
SyncerEvent event(SyncerEvent::PAUSED);
- relay_channel()->NotifyListeners(event);
+ relay_channel()->Notify(event);
// Thread will get stuck here until either a resume is requested
// or shutdown is started.
@@ -315,7 +316,7 @@ void SyncerThread::PauseUntilResumedOrQuit() {
// Notify that we have resumed if we are not shutting down.
if (!vault_.stop_syncer_thread_) {
SyncerEvent event(SyncerEvent::RESUMED);
- relay_channel()->NotifyListeners(event);
+ relay_channel()->Notify(event);
}
LOG(INFO) << "Syncer thread exiting pause.";
}
@@ -479,9 +480,9 @@ void SyncerThread::SetUpdatesSource(bool nudged, NudgeSource nudge_source,
vault_.syncer_->set_updates_source(updates_source);
}
-void SyncerThread::HandleSyncerEvent(const SyncerEvent& event) {
+void SyncerThread::HandleChannelEvent(const SyncerEvent& event) {
AutoLock lock(lock_);
- relay_channel()->NotifyListeners(event);
+ relay_channel()->Notify(event);
if (SyncerEvent::REQUEST_SYNC_NUDGE != event.what_happened) {
return;
}
@@ -500,9 +501,8 @@ void SyncerThread::HandleDirectoryManagerEvent(
session_context_->set_account_name(event.dirname);
vault_.syncer_ = new Syncer(session_context_.get());
- syncer_events_.reset(NewEventListenerHookup(
- session_context_->syncer_event_channel(), this,
- &SyncerThread::HandleSyncerEvent));
+ syncer_events_.reset(
+ session_context_->syncer_event_channel()->AddObserver(this));
vault_field_changed_.Broadcast();
}
}
« no previous file with comments | « chrome/browser/sync/engine/syncer_thread.h ('k') | chrome/browser/sync/engine/syncer_thread_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698