| Index: sync/notifier/non_blocking_invalidation_notifier.cc
|
| diff --git a/sync/notifier/non_blocking_invalidation_notifier.cc b/sync/notifier/non_blocking_invalidation_notifier.cc
|
| deleted file mode 100644
|
| index 89fb19a3432fe6490363f4d7b3f415e1a6bcc765..0000000000000000000000000000000000000000
|
| --- a/sync/notifier/non_blocking_invalidation_notifier.cc
|
| +++ /dev/null
|
| @@ -1,274 +0,0 @@
|
| -// Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include "sync/notifier/non_blocking_invalidation_notifier.h"
|
| -
|
| -#include <cstddef>
|
| -
|
| -#include "base/location.h"
|
| -#include "base/logging.h"
|
| -#include "base/memory/scoped_ptr.h"
|
| -#include "base/single_thread_task_runner.h"
|
| -#include "base/thread_task_runner_handle.h"
|
| -#include "base/threading/thread.h"
|
| -#include "jingle/notifier/listener/push_client.h"
|
| -#include "sync/notifier/invalidation_notifier.h"
|
| -
|
| -namespace syncer {
|
| -
|
| -class NonBlockingInvalidationNotifier::Core
|
| - : public base::RefCountedThreadSafe<NonBlockingInvalidationNotifier::Core>,
|
| - // SyncNotifierObserver to observe the InvalidationNotifier we create.
|
| - public SyncNotifierObserver {
|
| - public:
|
| - // Called on parent thread. |delegate_observer| should be
|
| - // initialized.
|
| - explicit Core(
|
| - const WeakHandle<SyncNotifierObserver>& delegate_observer);
|
| -
|
| - // Helpers called on I/O thread.
|
| - void Initialize(
|
| - const notifier::NotifierOptions& notifier_options,
|
| - const InvalidationVersionMap& initial_max_invalidation_versions,
|
| - const std::string& initial_invalidation_state,
|
| - const WeakHandle<InvalidationStateTracker>& invalidation_state_tracker,
|
| - const std::string& client_info);
|
| - void Teardown();
|
| - void UpdateRegisteredIds(const ObjectIdSet& ids);
|
| - void SetUniqueId(const std::string& unique_id);
|
| - void SetStateDeprecated(const std::string& state);
|
| - void UpdateCredentials(const std::string& email, const std::string& token);
|
| -
|
| - // SyncNotifierObserver implementation (all called on I/O thread by
|
| - // InvalidationNotifier).
|
| - virtual void OnNotificationsEnabled() OVERRIDE;
|
| - virtual void OnNotificationsDisabled(
|
| - NotificationsDisabledReason reason) OVERRIDE;
|
| - virtual void OnIncomingNotification(
|
| - const ObjectIdStateMap& id_state_map,
|
| - IncomingNotificationSource source) OVERRIDE;
|
| -
|
| - private:
|
| - friend class
|
| - base::RefCountedThreadSafe<NonBlockingInvalidationNotifier::Core>;
|
| - // Called on parent or I/O thread.
|
| - ~Core();
|
| -
|
| - // The variables below should be used only on the I/O thread.
|
| - const WeakHandle<SyncNotifierObserver> delegate_observer_;
|
| - scoped_ptr<InvalidationNotifier> invalidation_notifier_;
|
| - scoped_refptr<base::SingleThreadTaskRunner> network_task_runner_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(Core);
|
| -};
|
| -
|
| -NonBlockingInvalidationNotifier::Core::Core(
|
| - const WeakHandle<SyncNotifierObserver>& delegate_observer)
|
| - : delegate_observer_(delegate_observer) {
|
| - DCHECK(delegate_observer_.IsInitialized());
|
| -}
|
| -
|
| -NonBlockingInvalidationNotifier::Core::~Core() {
|
| -}
|
| -
|
| -void NonBlockingInvalidationNotifier::Core::Initialize(
|
| - const notifier::NotifierOptions& notifier_options,
|
| - const InvalidationVersionMap& initial_max_invalidation_versions,
|
| - const std::string& initial_invalidation_state,
|
| - const WeakHandle<InvalidationStateTracker>& invalidation_state_tracker,
|
| - const std::string& client_info) {
|
| - DCHECK(notifier_options.request_context_getter);
|
| - DCHECK_EQ(notifier::NOTIFICATION_SERVER,
|
| - notifier_options.notification_method);
|
| - network_task_runner_ = notifier_options.request_context_getter->
|
| - GetNetworkTaskRunner();
|
| - DCHECK(network_task_runner_->BelongsToCurrentThread());
|
| - invalidation_notifier_.reset(
|
| - new InvalidationNotifier(
|
| - notifier::PushClient::CreateDefaultOnIOThread(notifier_options),
|
| - initial_max_invalidation_versions,
|
| - initial_invalidation_state,
|
| - invalidation_state_tracker,
|
| - client_info));
|
| - invalidation_notifier_->RegisterHandler(this);
|
| -}
|
| -
|
| -void NonBlockingInvalidationNotifier::Core::Teardown() {
|
| - DCHECK(network_task_runner_->BelongsToCurrentThread());
|
| - invalidation_notifier_->UnregisterHandler(this);
|
| - invalidation_notifier_.reset();
|
| - network_task_runner_ = NULL;
|
| -}
|
| -
|
| -void NonBlockingInvalidationNotifier::Core::UpdateRegisteredIds(
|
| - const ObjectIdSet& ids) {
|
| - DCHECK(network_task_runner_->BelongsToCurrentThread());
|
| - invalidation_notifier_->UpdateRegisteredIds(this, ids);
|
| -}
|
| -
|
| -void NonBlockingInvalidationNotifier::Core::SetUniqueId(
|
| - const std::string& unique_id) {
|
| - DCHECK(network_task_runner_->BelongsToCurrentThread());
|
| - invalidation_notifier_->SetUniqueId(unique_id);
|
| -}
|
| -
|
| -void NonBlockingInvalidationNotifier::Core::SetStateDeprecated(
|
| - const std::string& state) {
|
| - DCHECK(network_task_runner_->BelongsToCurrentThread());
|
| - invalidation_notifier_->SetStateDeprecated(state);
|
| -}
|
| -
|
| -void NonBlockingInvalidationNotifier::Core::UpdateCredentials(
|
| - const std::string& email, const std::string& token) {
|
| - DCHECK(network_task_runner_->BelongsToCurrentThread());
|
| - invalidation_notifier_->UpdateCredentials(email, token);
|
| -}
|
| -
|
| -void NonBlockingInvalidationNotifier::Core::OnNotificationsEnabled() {
|
| - DCHECK(network_task_runner_->BelongsToCurrentThread());
|
| - delegate_observer_.Call(FROM_HERE,
|
| - &SyncNotifierObserver::OnNotificationsEnabled);
|
| -}
|
| -
|
| -void NonBlockingInvalidationNotifier::Core::OnNotificationsDisabled(
|
| - NotificationsDisabledReason reason) {
|
| - DCHECK(network_task_runner_->BelongsToCurrentThread());
|
| - delegate_observer_.Call(
|
| - FROM_HERE, &SyncNotifierObserver::OnNotificationsDisabled, reason);
|
| -}
|
| -
|
| -void NonBlockingInvalidationNotifier::Core::OnIncomingNotification(
|
| - const ObjectIdStateMap& id_state_map, IncomingNotificationSource source) {
|
| - DCHECK(network_task_runner_->BelongsToCurrentThread());
|
| - delegate_observer_.Call(FROM_HERE,
|
| - &SyncNotifierObserver::OnIncomingNotification,
|
| - id_state_map,
|
| - source);
|
| -}
|
| -
|
| -NonBlockingInvalidationNotifier::NonBlockingInvalidationNotifier(
|
| - const notifier::NotifierOptions& notifier_options,
|
| - const InvalidationVersionMap& initial_max_invalidation_versions,
|
| - const std::string& initial_invalidation_state,
|
| - const WeakHandle<InvalidationStateTracker>&
|
| - invalidation_state_tracker,
|
| - const std::string& client_info)
|
| - : weak_ptr_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)),
|
| - core_(
|
| - new Core(MakeWeakHandle(weak_ptr_factory_.GetWeakPtr()))),
|
| - parent_task_runner_(
|
| - base::ThreadTaskRunnerHandle::Get()),
|
| - network_task_runner_(notifier_options.request_context_getter->
|
| - GetNetworkTaskRunner()) {
|
| - if (!network_task_runner_->PostTask(
|
| - FROM_HERE,
|
| - base::Bind(
|
| - &NonBlockingInvalidationNotifier::Core::Initialize,
|
| - core_.get(),
|
| - notifier_options,
|
| - initial_max_invalidation_versions,
|
| - initial_invalidation_state,
|
| - invalidation_state_tracker,
|
| - client_info))) {
|
| - NOTREACHED();
|
| - }
|
| -}
|
| -
|
| -NonBlockingInvalidationNotifier::~NonBlockingInvalidationNotifier() {
|
| - DCHECK(parent_task_runner_->BelongsToCurrentThread());
|
| - if (!network_task_runner_->PostTask(
|
| - FROM_HERE,
|
| - base::Bind(&NonBlockingInvalidationNotifier::Core::Teardown,
|
| - core_.get()))) {
|
| - NOTREACHED();
|
| - }
|
| -}
|
| -
|
| -void NonBlockingInvalidationNotifier::RegisterHandler(
|
| - SyncNotifierObserver* handler) {
|
| - DCHECK(parent_task_runner_->BelongsToCurrentThread());
|
| - registrar_.RegisterHandler(handler);
|
| -}
|
| -
|
| -void NonBlockingInvalidationNotifier::UpdateRegisteredIds(
|
| - SyncNotifierObserver* handler,
|
| - const ObjectIdSet& ids) {
|
| - DCHECK(parent_task_runner_->BelongsToCurrentThread());
|
| - registrar_.UpdateRegisteredIds(handler, ids);
|
| - if (!network_task_runner_->PostTask(
|
| - FROM_HERE,
|
| - base::Bind(
|
| - &NonBlockingInvalidationNotifier::Core::UpdateRegisteredIds,
|
| - core_.get(),
|
| - registrar_.GetAllRegisteredIds()))) {
|
| - NOTREACHED();
|
| - }
|
| -}
|
| -
|
| -void NonBlockingInvalidationNotifier::UnregisterHandler(
|
| - SyncNotifierObserver* handler) {
|
| - DCHECK(parent_task_runner_->BelongsToCurrentThread());
|
| - registrar_.UnregisterHandler(handler);
|
| -}
|
| -
|
| -void NonBlockingInvalidationNotifier::SetUniqueId(
|
| - const std::string& unique_id) {
|
| - DCHECK(parent_task_runner_->BelongsToCurrentThread());
|
| - if (!network_task_runner_->PostTask(
|
| - FROM_HERE,
|
| - base::Bind(&NonBlockingInvalidationNotifier::Core::SetUniqueId,
|
| - core_.get(), unique_id))) {
|
| - NOTREACHED();
|
| - }
|
| -}
|
| -
|
| -void NonBlockingInvalidationNotifier::SetStateDeprecated(
|
| - const std::string& state) {
|
| - DCHECK(parent_task_runner_->BelongsToCurrentThread());
|
| - if (!network_task_runner_->PostTask(
|
| - FROM_HERE,
|
| - base::Bind(
|
| - &NonBlockingInvalidationNotifier::Core::SetStateDeprecated,
|
| - core_.get(), state))) {
|
| - NOTREACHED();
|
| - }
|
| -}
|
| -
|
| -void NonBlockingInvalidationNotifier::UpdateCredentials(
|
| - const std::string& email, const std::string& token) {
|
| - DCHECK(parent_task_runner_->BelongsToCurrentThread());
|
| - if (!network_task_runner_->PostTask(
|
| - FROM_HERE,
|
| - base::Bind(&NonBlockingInvalidationNotifier::Core::UpdateCredentials,
|
| - core_.get(), email, token))) {
|
| - NOTREACHED();
|
| - }
|
| -}
|
| -
|
| -void NonBlockingInvalidationNotifier::SendNotification(
|
| - ModelTypeSet changed_types) {
|
| - DCHECK(parent_task_runner_->BelongsToCurrentThread());
|
| - // InvalidationClient doesn't implement SendNotification(), so no
|
| - // need to forward on the call.
|
| -}
|
| -
|
| -void NonBlockingInvalidationNotifier::OnNotificationsEnabled() {
|
| - DCHECK(parent_task_runner_->BelongsToCurrentThread());
|
| - registrar_.EmitOnNotificationsEnabled();
|
| -}
|
| -
|
| -void NonBlockingInvalidationNotifier::OnNotificationsDisabled(
|
| - NotificationsDisabledReason reason) {
|
| - DCHECK(parent_task_runner_->BelongsToCurrentThread());
|
| - registrar_.EmitOnNotificationsDisabled(reason);
|
| -}
|
| -
|
| -void NonBlockingInvalidationNotifier::OnIncomingNotification(
|
| - const ObjectIdStateMap& id_state_map,
|
| - IncomingNotificationSource source) {
|
| - DCHECK(parent_task_runner_->BelongsToCurrentThread());
|
| - registrar_.DispatchInvalidationsToHandlers(id_state_map, source);
|
| -}
|
| -
|
| -} // namespace syncer
|
|
|