summaryrefslogtreecommitdiffstats
path: root/chrome/browser/sync/notifier/chrome_invalidation_client.h
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/sync/notifier/chrome_invalidation_client.h')
-rw-r--r--chrome/browser/sync/notifier/chrome_invalidation_client.h16
1 files changed, 12 insertions, 4 deletions
diff --git a/chrome/browser/sync/notifier/chrome_invalidation_client.h b/chrome/browser/sync/notifier/chrome_invalidation_client.h
index 6d87d70..7cbc3f8 100644
--- a/chrome/browser/sync/notifier/chrome_invalidation_client.h
+++ b/chrome/browser/sync/notifier/chrome_invalidation_client.h
@@ -16,6 +16,7 @@
#include "base/scoped_ptr.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 "google/cacheinvalidation/invalidation-client.h"
@@ -31,7 +32,9 @@ class RegistrationManager;
// TODO(akalin): Hook this up to a NetworkChangeNotifier so we can
// properly notify invalidation_client_.
-class ChromeInvalidationClient : public invalidation::InvalidationListener {
+class ChromeInvalidationClient
+ : public invalidation::InvalidationListener,
+ public StateWriter {
public:
class Listener {
public:
@@ -47,10 +50,11 @@ class ChromeInvalidationClient : public invalidation::InvalidationListener {
// Calls Stop().
virtual ~ChromeInvalidationClient();
- // Does not take ownership of |listener|. |base_task| must still be
- // non-NULL.
+ // Does not take ownership of |listener| or |state_writer|.
+ // |base_task| must still be non-NULL.
void Start(
- const std::string& client_id, Listener* listener,
+ const std::string& client_id, const std::string& state,
+ Listener* listener, StateWriter* state_writer,
base::WeakPtr<talk_base::Task> base_task);
void Stop();
@@ -74,10 +78,14 @@ class ChromeInvalidationClient : public invalidation::InvalidationListener {
virtual void RegistrationLost(const invalidation::ObjectId& object_id,
invalidation::Closure* callback);
+ // StateWriter implementation.
+ virtual void WriteState(const std::string& state);
+
private:
NonThreadSafe non_thread_safe_;
ChromeSystemResources chrome_system_resources_;
Listener* listener_;
+ StateWriter* state_writer_;
scoped_ptr<invalidation::InvalidationClient> invalidation_client_;
scoped_ptr<CacheInvalidationPacketHandler>
cache_invalidation_packet_handler_;