diff options
author | Kristian Monsen <kristianm@google.com> | 2011-06-28 21:49:31 +0100 |
---|---|---|
committer | Kristian Monsen <kristianm@google.com> | 2011-07-08 17:55:00 +0100 |
commit | ddb351dbec246cf1fab5ec20d2d5520909041de1 (patch) | |
tree | 158e3fb57bdcac07c7f1e767fde3c70687c9fbb1 /chrome/browser/sync/notifier/chrome_invalidation_client.h | |
parent | 6b92e04f5f151c896e3088e86f70db7081009308 (diff) | |
download | external_chromium-ddb351dbec246cf1fab5ec20d2d5520909041de1.zip external_chromium-ddb351dbec246cf1fab5ec20d2d5520909041de1.tar.gz external_chromium-ddb351dbec246cf1fab5ec20d2d5520909041de1.tar.bz2 |
Merge Chromium at r12.0.742.93: Initial merge by git
Change-Id: Ic5ee2fec31358bbee305f7e915442377bfa6cda6
Diffstat (limited to 'chrome/browser/sync/notifier/chrome_invalidation_client.h')
-rw-r--r-- | chrome/browser/sync/notifier/chrome_invalidation_client.h | 52 |
1 files changed, 26 insertions, 26 deletions
diff --git a/chrome/browser/sync/notifier/chrome_invalidation_client.h b/chrome/browser/sync/notifier/chrome_invalidation_client.h index 904b91d..7ab0f3a 100644 --- a/chrome/browser/sync/notifier/chrome_invalidation_client.h +++ b/chrome/browser/sync/notifier/chrome_invalidation_client.h @@ -1,4 +1,4 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Copyright (c) 2011 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. // @@ -9,18 +9,25 @@ #define CHROME_BROWSER_SYNC_NOTIFIER_CHROME_INVALIDATION_CLIENT_H_ #pragma once +#include <map> #include <string> #include "base/basictypes.h" -#include "base/scoped_callback_factory.h" -#include "base/scoped_ptr.h" +#include "base/compiler_specific.h" +#include "base/memory/scoped_callback_factory.h" +#include "base/memory/scoped_ptr.h" +#include "base/memory/weak_ptr.h" #include "base/threading/non_thread_safe.h" -#include "base/weak_ptr.h" #include "chrome/browser/sync/notifier/chrome_system_resources.h" #include "chrome/browser/sync/notifier/state_writer.h" #include "chrome/browser/sync/syncable/model_type.h" +#include "chrome/browser/sync/syncable/model_type_payload_map.h" #include "google/cacheinvalidation/invalidation-client.h" +// TODO(akalin): Move invalidation::InvalidationListener into its own +// file and include that instead of invalidation-client.h (which +// includes generated protobuf header files). + namespace talk_base { class Task; } // namespace @@ -30,9 +37,6 @@ namespace sync_notifier { class CacheInvalidationPacketHandler; class RegistrationManager; -// TODO(akalin): Hook this up to a NetworkChangeNotifier so we can -// properly notify invalidation_client_. - class ChromeInvalidationClient : public invalidation::InvalidationListener, public StateWriter { @@ -41,10 +45,10 @@ class ChromeInvalidationClient public: virtual ~Listener(); - virtual void OnInvalidate(syncable::ModelType model_type, - const std::string& payload) = 0; + virtual void OnInvalidate( + const syncable::ModelTypePayloadMap& type_payloads) = 0; - virtual void OnInvalidateAll() = 0; + virtual void OnSessionStatusChanged(bool has_session) = 0; }; ChromeInvalidationClient(); @@ -67,31 +71,22 @@ class ChromeInvalidationClient void ChangeBaseTask(base::WeakPtr<talk_base::Task> base_task); // Register the sync types that we're interested in getting - // notifications for. Must only be called between calls to Start() - // and Stop(). + // notifications for. May be called at any time. void RegisterTypes(const syncable::ModelTypeSet& types); // invalidation::InvalidationListener implementation. - // - // TODO(akalin): Move these into a private inner class. - virtual void Invalidate(const invalidation::Invalidation& invalidation, - invalidation::Closure* callback); - - virtual void InvalidateAll(invalidation::Closure* callback); - + invalidation::Closure* callback) OVERRIDE; + virtual void InvalidateAll(invalidation::Closure* callback) OVERRIDE; virtual void RegistrationStateChanged( const invalidation::ObjectId& object_id, invalidation::RegistrationState new_state, - const invalidation::UnknownHint& unknown_hint); - - virtual void AllRegistrationsLost(invalidation::Closure* callback); - - virtual void RegistrationLost(const invalidation::ObjectId& object_id, - invalidation::Closure* callback); + const invalidation::UnknownHint& unknown_hint) OVERRIDE; + virtual void AllRegistrationsLost(invalidation::Closure* callback) OVERRIDE; + virtual void SessionStatusChanged(bool has_session) OVERRIDE; // StateWriter implementation. - virtual void WriteState(const std::string& state); + virtual void WriteState(const std::string& state) OVERRIDE; private: friend class ChromeInvalidationClientTest; @@ -99,6 +94,8 @@ class ChromeInvalidationClient // Should only be called between calls to Start() and Stop(). void HandleOutboundPacket( invalidation::NetworkEndpoint* const& network_endpoint); + void EmitInvalidation( + const syncable::ModelTypeSet& types, const std::string& payload); base::NonThreadSafe non_thread_safe_; ChromeSystemResources chrome_system_resources_; @@ -111,6 +108,9 @@ class ChromeInvalidationClient scoped_ptr<CacheInvalidationPacketHandler> cache_invalidation_packet_handler_; scoped_ptr<RegistrationManager> registration_manager_; + std::map<syncable::ModelType, int64> max_invalidation_versions_; + // Stored to pass to |registration_manager_| on start. + syncable::ModelTypeSet registered_types_; DISALLOW_COPY_AND_ASSIGN(ChromeInvalidationClient); }; |