| Index: sync/notifier/invalidation_notifier.cc
|
| diff --git a/sync/notifier/invalidation_notifier.cc b/sync/notifier/invalidation_notifier.cc
|
| index 0c629c609ce11f2461b3da65eb4d3e5076089482..3a72f32fa61ace7acc53ca566d9ccfe210599e51 100644
|
| --- a/sync/notifier/invalidation_notifier.cc
|
| +++ b/sync/notifier/invalidation_notifier.cc
|
| @@ -34,14 +34,10 @@ InvalidationNotifier::~InvalidationNotifier() {
|
| DCHECK(CalledOnValidThread());
|
| }
|
|
|
| -void InvalidationNotifier::AddObserver(SyncNotifierObserver* observer) {
|
| +void InvalidationNotifier::UpdateRegisteredIds(SyncNotifierObserver* handler,
|
| + const ObjectIdSet& ids) {
|
| DCHECK(CalledOnValidThread());
|
| - observers_.AddObserver(observer);
|
| -}
|
| -
|
| -void InvalidationNotifier::RemoveObserver(SyncNotifierObserver* observer) {
|
| - DCHECK(CalledOnValidThread());
|
| - observers_.RemoveObserver(observer);
|
| + invalidation_client_.RegisterIds(helper_.UpdateRegisteredIds(handler, ids));
|
| }
|
|
|
| void InvalidationNotifier::SetUniqueId(const std::string& unique_id) {
|
| @@ -85,22 +81,6 @@ void InvalidationNotifier::UpdateCredentials(
|
| invalidation_client_.UpdateCredentials(email, token);
|
| }
|
|
|
| -void InvalidationNotifier::UpdateEnabledTypes(ModelTypeSet enabled_types) {
|
| - DCHECK(CalledOnValidThread());
|
| - CHECK(!invalidation_client_id_.empty());
|
| - ObjectIdSet ids;
|
| - for (ModelTypeSet::Iterator it = enabled_types.First(); it.Good();
|
| - it.Inc()) {
|
| - invalidation::ObjectId id;
|
| - if (!RealModelTypeToObjectId(it.Get(), &id)) {
|
| - DLOG(WARNING) << "Invalid model type " << it.Get();
|
| - continue;
|
| - }
|
| - ids.insert(id);
|
| - }
|
| - invalidation_client_.RegisterIds(ids);
|
| -}
|
| -
|
| void InvalidationNotifier::SendNotification(ModelTypeSet changed_types) {
|
| DCHECK(CalledOnValidThread());
|
| // Do nothing.
|
| @@ -108,33 +88,18 @@ void InvalidationNotifier::SendNotification(ModelTypeSet changed_types) {
|
|
|
| void InvalidationNotifier::OnInvalidate(const ObjectIdPayloadMap& id_payloads) {
|
| DCHECK(CalledOnValidThread());
|
| - // TODO(dcheng): This should probably be a utility function somewhere...
|
| - ModelTypePayloadMap type_payloads;
|
| - for (ObjectIdPayloadMap::const_iterator it = id_payloads.begin();
|
| - it != id_payloads.end(); ++it) {
|
| - ModelType model_type;
|
| - if (!ObjectIdToRealModelType(it->first, &model_type)) {
|
| - DLOG(WARNING) << "Invalid object ID: " << ObjectIdToString(it->first);
|
| - continue;
|
| - }
|
| - type_payloads[model_type] = it->second;
|
| - }
|
| - FOR_EACH_OBSERVER(
|
| - SyncNotifierObserver, observers_,
|
| - OnIncomingNotification(type_payloads, REMOTE_NOTIFICATION));
|
| + helper_.DispatchInvalidationsToHandlers(id_payloads, REMOTE_NOTIFICATION);
|
| }
|
|
|
| void InvalidationNotifier::OnNotificationsEnabled() {
|
| DCHECK(CalledOnValidThread());
|
| - FOR_EACH_OBSERVER(SyncNotifierObserver, observers_,
|
| - OnNotificationsEnabled());
|
| + helper_.EmitOnNotificationsEnabled();
|
| }
|
|
|
| void InvalidationNotifier::OnNotificationsDisabled(
|
| NotificationsDisabledReason reason) {
|
| DCHECK(CalledOnValidThread());
|
| - FOR_EACH_OBSERVER(SyncNotifierObserver, observers_,
|
| - OnNotificationsDisabled(reason));
|
| + helper_.EmitOnNotificationsDisabled(reason);
|
| }
|
|
|
| } // namespace syncer
|
|
|