summaryrefslogtreecommitdiffstats
path: root/chrome/browser/sync/notifier/chrome_invalidation_client.h
diff options
context:
space:
mode:
authorKristian Monsen <kristianm@google.com>2011-06-28 21:49:31 +0100
committerKristian Monsen <kristianm@google.com>2011-07-08 17:55:00 +0100
commitddb351dbec246cf1fab5ec20d2d5520909041de1 (patch)
tree158e3fb57bdcac07c7f1e767fde3c70687c9fbb1 /chrome/browser/sync/notifier/chrome_invalidation_client.h
parent6b92e04f5f151c896e3088e86f70db7081009308 (diff)
downloadexternal_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.h52
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);
};