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

Unified Diff: chrome/browser/sync/engine/syncapi.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/all_status.cc ('k') | chrome/browser/sync/engine/syncer.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/sync/engine/syncapi.cc
diff --git a/chrome/browser/sync/engine/syncapi.cc b/chrome/browser/sync/engine/syncapi.cc
index aef26391513b7e4c66bf4bacd9bbe0c262d1f320..68ebe6aa7e5f30df1be6ee49e622fbfa8f035eac 100644
--- a/chrome/browser/sync/engine/syncapi.cc
+++ b/chrome/browser/sync/engine/syncapi.cc
@@ -777,7 +777,9 @@ class BridgedGaiaAuthenticator : public gaia::GaiaAuthenticator {
// SyncManager's implementation: SyncManager::SyncInternal
class SyncManager::SyncInternal
: public net::NetworkChangeNotifier::Observer,
- public TalkMediator::Delegate {
+ public TalkMediator::Delegate,
+ public browser_sync::ChannelEventHandler<syncable::DirectoryChangeEvent>,
+ public browser_sync::ChannelEventHandler<SyncerEvent>{
static const int kDefaultNudgeDelayMilliseconds;
static const int kPreferencesNudgeDelayMilliseconds;
public:
@@ -845,7 +847,7 @@ class SyncManager::SyncInternal
// This listener is called upon completion of a syncable transaction, and
// builds the list of sync-engine initiated changes that will be forwarded to
// the SyncManager's Observers.
- void HandleChangeEvent(const syncable::DirectoryChangeEvent& event);
+ virtual void HandleChannelEvent(const syncable::DirectoryChangeEvent& event);
void HandleTransactionCompleteChangeEvent(
const syncable::DirectoryChangeEvent& event);
void HandleCalculateChangesChangeEventFromSyncApi(
@@ -854,7 +856,7 @@ class SyncManager::SyncInternal
const syncable::DirectoryChangeEvent& event);
// This listener is called by the syncer channel for all syncer events.
- void HandleSyncerEvent(const SyncerEvent& event);
+ virtual void HandleChannelEvent(const SyncerEvent& event);
// We have a direct hookup to the authwatcher to be notified for auth failures
// on startup, to serve our UI needs.
@@ -1068,10 +1070,11 @@ class SyncManager::SyncInternal
ChangeReorderBuffer change_buffers_[syncable::MODEL_TYPE_COUNT];
// The event listener hookup that is registered for HandleChangeEvent.
- scoped_ptr<EventListenerHookup> dir_change_hookup_;
+ scoped_ptr<browser_sync::ChannelHookup<syncable::DirectoryChangeEvent> >
+ dir_change_hookup_;
// The event listener hookup registered for HandleSyncerEvent.
- scoped_ptr<EventListenerHookup> syncer_event_;
+ scoped_ptr<browser_sync::ChannelHookup<SyncerEvent> > syncer_event_;
// The event listener hookup registered for HandleAuthWatcherEvent.
scoped_ptr<EventListenerHookup> authwatcher_hookup_;
@@ -1275,9 +1278,7 @@ bool SyncManager::SyncInternal::Init(
allstatus_.WatchSyncerThread(syncer_thread());
// Subscribe to the syncer thread's channel.
- syncer_event_.reset(
- NewEventListenerHookup(syncer_thread()->relay_channel(), this,
- &SyncInternal::HandleSyncerEvent));
+ syncer_event_.reset(syncer_thread()->relay_channel()->AddObserver(this));
bool attempting_auth = false;
std::string username, auth_token;
@@ -1502,7 +1503,7 @@ void SyncManager::SyncInternal::OnIPAddressChanged() {
// Listen to model changes, filter out ones initiated by the sync API, and
// saves the rest (hopefully just backend Syncer changes resulting from
// ApplyUpdates) to data_->changelist.
-void SyncManager::SyncInternal::HandleChangeEvent(
+void SyncManager::SyncInternal::HandleChannelEvent(
const syncable::DirectoryChangeEvent& event) {
if (event.todo == syncable::DirectoryChangeEvent::TRANSACTION_COMPLETE) {
HandleTransactionCompleteChangeEvent(event);
@@ -1675,7 +1676,7 @@ SyncManager::Status SyncManager::SyncInternal::ComputeAggregatedStatus() {
return return_status;
}
-void SyncManager::SyncInternal::HandleSyncerEvent(const SyncerEvent& event) {
+void SyncManager::SyncInternal::HandleChannelEvent(const SyncerEvent& event) {
if (!initialized()) {
// This could be the first time that the syncer has completed a full
// download; if so, we should signal that initialization is complete.
@@ -1759,9 +1760,7 @@ void SyncManager::SyncInternal::HandleAuthWatcherEvent(
<< "up directory change event listener!";
return;
}
- dir_change_hookup_.reset(NewEventListenerHookup(
- lookup->changes_channel(), this,
- &SyncInternal::HandleChangeEvent));
+ dir_change_hookup_.reset(lookup->AddChangeObserver(this));
}
if (InitialSyncEndedForAllEnabledTypes())
MarkAndNotifyInitializationComplete();
@@ -1923,9 +1922,7 @@ void SyncManager::SyncInternal::SetupForTestMode(
<< "up directory change event listener!";
return;
}
- dir_change_hookup_.reset(NewEventListenerHookup(
- lookup->changes_channel(), this,
- &SyncInternal::HandleChangeEvent));
+ dir_change_hookup_.reset(lookup->AddChangeObserver(this));
}
MarkAndNotifyInitializationComplete();
}
« no previous file with comments | « chrome/browser/sync/engine/all_status.cc ('k') | chrome/browser/sync/engine/syncer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698