summaryrefslogtreecommitdiffstats
path: root/sync/tools
diff options
context:
space:
mode:
authordcheng@chromium.org <dcheng@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-12-05 05:31:12 +0000
committerdcheng@chromium.org <dcheng@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-12-05 05:31:12 +0000
commit0e7f2b7f4023f10cc1d4d4a9eabca701faedec01 (patch)
tree5eed13dfa3d07adf11853b833434fa785ee34776 /sync/tools
parent5fbd63798b997475fded3cc90f456425c607edcd (diff)
downloadchromium_src-0e7f2b7f4023f10cc1d4d4a9eabca701faedec01.zip
chromium_src-0e7f2b7f4023f10cc1d4d4a9eabca701faedec01.tar.gz
chromium_src-0e7f2b7f4023f10cc1d4d4a9eabca701faedec01.tar.bz2
Implement features needed for local ack handling in InvalidationStateTracker.
Adds the ability to save payloads in InvalidationStateTracker, and also adds the functionality to generate, track, and acknowledge local ack handles. BUG=124149 Review URL: https://codereview.chromium.org/11415049 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@171165 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'sync/tools')
-rw-r--r--sync/tools/null_invalidation_state_tracker.cc66
-rw-r--r--sync/tools/null_invalidation_state_tracker.h40
-rw-r--r--sync/tools/sync_client.cc37
-rw-r--r--sync/tools/sync_listen_notifications.cc38
4 files changed, 108 insertions, 73 deletions
diff --git a/sync/tools/null_invalidation_state_tracker.cc b/sync/tools/null_invalidation_state_tracker.cc
new file mode 100644
index 0000000..5eb5f78
--- /dev/null
+++ b/sync/tools/null_invalidation_state_tracker.cc
@@ -0,0 +1,66 @@
+// 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/tools/null_invalidation_state_tracker.h"
+
+#include "base/base64.h"
+#include "base/bind.h"
+#include "base/callback.h"
+#include "base/location.h"
+#include "base/logging.h"
+#include "base/task_runner.h"
+#include "sync/notifier/invalidation_util.h"
+
+namespace syncer {
+
+NullInvalidationStateTracker::NullInvalidationStateTracker() {}
+NullInvalidationStateTracker::~NullInvalidationStateTracker() {}
+
+InvalidationStateMap
+NullInvalidationStateTracker::GetAllInvalidationStates() const {
+ return InvalidationStateMap();
+}
+
+void NullInvalidationStateTracker::SetMaxVersionAndPayload(
+ const invalidation::ObjectId& id,
+ int64 max_invalidation_version,
+ const std::string& payload) {
+ LOG(INFO) << "Setting max invalidation version for "
+ << ObjectIdToString(id) << " to " << max_invalidation_version
+ << " with payload " << payload;
+}
+
+void NullInvalidationStateTracker::Forget(const ObjectIdSet& ids) {
+ for (ObjectIdSet::const_iterator it = ids.begin(); it != ids.end(); ++it) {
+ LOG(INFO) << "Forgetting invalidation state for " << ObjectIdToString(*it);
+ }
+}
+
+std::string NullInvalidationStateTracker::GetBootstrapData() const {
+ return std::string();
+}
+
+void NullInvalidationStateTracker::SetBootstrapData(const std::string& data) {
+ std::string base64_data;
+ CHECK(base::Base64Encode(data, &base64_data));
+ LOG(INFO) << "Setting bootstrap data to: " << base64_data;
+}
+
+void NullInvalidationStateTracker::GenerateAckHandles(
+ const ObjectIdSet& ids,
+ const scoped_refptr<base::TaskRunner>& task_runner,
+ base::Callback<void(const AckHandleMap&)> callback) {
+ AckHandleMap ack_handles;
+ for (ObjectIdSet::const_iterator it = ids.begin(); it != ids.end(); ++it) {
+ ack_handles.insert(std::make_pair(*it, AckHandle::InvalidAckHandle()));
+ }
+ CHECK(task_runner->PostTask(FROM_HERE, base::Bind(callback, ack_handles)));
+}
+
+void NullInvalidationStateTracker::Acknowledge(const invalidation::ObjectId& id,
+ const AckHandle& ack_handle) {
+ LOG(INFO) << "Received ack for " << ObjectIdToString(id);
+}
+
+} // namespace syncer
diff --git a/sync/tools/null_invalidation_state_tracker.h b/sync/tools/null_invalidation_state_tracker.h
new file mode 100644
index 0000000..13e55c7
--- /dev/null
+++ b/sync/tools/null_invalidation_state_tracker.h
@@ -0,0 +1,40 @@
+// 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.
+
+#ifndef SYNC_TOOLS_NULL_INVALIDATION_STATE_TRACKER_H_
+#define SYNC_TOOLS_NULL_INVALIDATION_STATE_TRACKER_H_
+
+#include "base/compiler_specific.h"
+#include "base/memory/weak_ptr.h"
+#include "sync/notifier/invalidation_state_tracker.h"
+
+namespace syncer {
+
+class NullInvalidationStateTracker
+ : public base::SupportsWeakPtr<NullInvalidationStateTracker>,
+ public InvalidationStateTracker {
+ public:
+ NullInvalidationStateTracker();
+ virtual ~NullInvalidationStateTracker();
+
+ virtual InvalidationStateMap GetAllInvalidationStates() const OVERRIDE;
+ virtual void SetMaxVersionAndPayload(const invalidation::ObjectId& id,
+ int64 max_invalidation_version,
+ const std::string& payload) OVERRIDE;
+ virtual void Forget(const ObjectIdSet& ids) OVERRIDE;
+
+ virtual std::string GetBootstrapData() const OVERRIDE;
+ virtual void SetBootstrapData(const std::string& data) OVERRIDE;
+
+ virtual void GenerateAckHandles(
+ const ObjectIdSet& ids,
+ const scoped_refptr<base::TaskRunner>& task_runner,
+ base::Callback<void(const AckHandleMap&)> callback) OVERRIDE;
+ virtual void Acknowledge(const invalidation::ObjectId& id,
+ const AckHandle& ack_handle) OVERRIDE;
+};
+
+} // namespace syncer
+
+#endif // SYNC_TOOLS_NULL_INVALIDATION_STATE_TRACKER_H_
diff --git a/sync/tools/sync_client.cc b/sync/tools/sync_client.cc
index c2dc657..d973093 100644
--- a/sync/tools/sync_client.cc
+++ b/sync/tools/sync_client.cc
@@ -7,7 +7,6 @@
#include <string>
#include "base/at_exit.h"
-#include "base/base64.h"
#include "base/command_line.h"
#include "base/compiler_specific.h"
#include "base/debug/stack_trace.h"
@@ -44,6 +43,7 @@
#include "sync/notifier/invalidator.h"
#include "sync/notifier/invalidator_factory.h"
#include "sync/test/fake_encryptor.h"
+#include "sync/tools/null_invalidation_state_tracker.h"
#if defined(OS_MACOSX)
#include "base/mac/scoped_nsautorelease_pool.h"
@@ -65,41 +65,6 @@ const char kXmppAllowInsecureConnectionSwitch[] =
"xmpp-allow-insecure-connection";
const char kNotificationMethodSwitch[] = "notification-method";
-class NullInvalidationStateTracker
- : public base::SupportsWeakPtr<NullInvalidationStateTracker>,
- public InvalidationStateTracker {
- public:
- NullInvalidationStateTracker() {}
- virtual ~NullInvalidationStateTracker() {}
-
- virtual InvalidationStateMap GetAllInvalidationStates() const OVERRIDE {
- return InvalidationStateMap();
- }
-
- virtual void SetMaxVersion(
- const invalidation::ObjectId& id,
- int64 max_invalidation_version) OVERRIDE {
- VLOG(1) << "Setting max invalidation version for "
- << ObjectIdToString(id) << " to " << max_invalidation_version;
- }
-
- virtual void Forget(const ObjectIdSet& ids) OVERRIDE {
- for (ObjectIdSet::const_iterator it = ids.begin(); it != ids.end(); ++it) {
- VLOG(1) << "Forgetting invalidation state for " << ObjectIdToString(*it);
- }
- }
-
- virtual std::string GetBootstrapData() const OVERRIDE {
- return std::string();
- }
-
- virtual void SetBootstrapData(const std::string& data) OVERRIDE {
- std::string base64_data;
- CHECK(base::Base64Encode(data, &base64_data));
- VLOG(1) << "Setting bootstrap data to: " << base64_data;
- }
-};
-
// Needed to use a real host resolver.
class MyTestURLRequestContext : public net::TestURLRequestContext {
public:
diff --git a/sync/tools/sync_listen_notifications.cc b/sync/tools/sync_listen_notifications.cc
index bc90088..ce901a4 100644
--- a/sync/tools/sync_listen_notifications.cc
+++ b/sync/tools/sync_listen_notifications.cc
@@ -7,13 +7,11 @@
#include <string>
#include "base/at_exit.h"
-#include "base/base64.h"
#include "base/command_line.h"
#include "base/compiler_specific.h"
#include "base/logging.h"
#include "base/memory/ref_counted.h"
#include "base/memory/scoped_ptr.h"
-#include "base/memory/weak_ptr.h"
#include "base/message_loop.h"
#include "base/threading/thread.h"
#include "jingle/notifier/base/notification_method.h"
@@ -30,6 +28,7 @@
#include "sync/notifier/invalidation_util.h"
#include "sync/notifier/invalidator_factory.h"
#include "sync/notifier/invalidator.h"
+#include "sync/tools/null_invalidation_state_tracker.h"
#if defined(OS_MACOSX)
#include "base/mac/scoped_nsautorelease_pool.h"
@@ -78,41 +77,6 @@ class NotificationPrinter : public InvalidationHandler {
DISALLOW_COPY_AND_ASSIGN(NotificationPrinter);
};
-class NullInvalidationStateTracker
- : public base::SupportsWeakPtr<NullInvalidationStateTracker>,
- public InvalidationStateTracker {
- public:
- NullInvalidationStateTracker() {}
- virtual ~NullInvalidationStateTracker() {}
-
- virtual InvalidationStateMap GetAllInvalidationStates() const OVERRIDE {
- return InvalidationStateMap();
- }
-
- virtual void SetMaxVersion(
- const invalidation::ObjectId& id,
- int64 max_invalidation_version) OVERRIDE {
- LOG(INFO) << "Setting max invalidation version for "
- << ObjectIdToString(id) << " to " << max_invalidation_version;
- }
-
- virtual void Forget(const ObjectIdSet& ids) OVERRIDE {
- for (ObjectIdSet::const_iterator it = ids.begin(); it != ids.end(); ++it) {
- LOG(INFO) << "Forgetting saved state for " << ObjectIdToString(*it);
- }
- }
-
- virtual std::string GetBootstrapData() const OVERRIDE {
- return std::string();
- }
-
- virtual void SetBootstrapData(const std::string& data) OVERRIDE {
- std::string base64_data;
- CHECK(base::Base64Encode(data, &base64_data));
- LOG(INFO) << "Setting bootstrap data to: " << base64_data;
- }
-};
-
// Needed to use a real host resolver.
class MyTestURLRequestContext : public net::TestURLRequestContext {
public: