Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(624)

Unified Diff: sync/notifier/ordered_invalidation_list.cc

Issue 23754021: Invalidation trickles mega-patch (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « sync/notifier/ordered_invalidation_list.h ('k') | sync/notifier/p2p_invalidator.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: sync/notifier/ordered_invalidation_list.cc
diff --git a/sync/notifier/ordered_invalidation_list.cc b/sync/notifier/ordered_invalidation_list.cc
new file mode 100644
index 0000000000000000000000000000000000000000..b52b755af73ca1dd44314a8cd401b7513f9e5652
--- /dev/null
+++ b/sync/notifier/ordered_invalidation_list.cc
@@ -0,0 +1,89 @@
+// Copyright 2013 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/ordered_invalidation_list.h"
+
+#include "base/values.h"
+#include "sync/notifier/invalidation_util.h"
+
+namespace syncer {
+
+OrderedInvalidationList::OrderedInvalidationList() {}
+
+OrderedInvalidationList::~OrderedInvalidationList() {}
+
+void OrderedInvalidationList::Insert(const Invalidation& invalidation) {
+ invalidations_.insert(invalidation);
+}
+
+void OrderedInvalidationList::InsertAll(const OrderedInvalidationList& other) {
+ invalidations_.insert(other.begin(), other.end());
+}
+
+void OrderedInvalidationList::Clear() {
+ invalidations_.clear();
+}
+
+bool OrderedInvalidationList::StartsWithUnknownVersion() const {
+ return invalidations_.begin()->IsUnknownVersion();
+}
+
+size_t OrderedInvalidationList::GetSize() const {
+ return invalidations_.size();
+}
+
+bool OrderedInvalidationList::IsEmpty() const {
+ return invalidations_.empty();
+}
+
+bool OrderedInvalidationList::operator==(
+ const OrderedInvalidationList& other) const {
+ return invalidations_ == other.invalidations_;
+}
+
+OrderedInvalidationList::const_iterator OrderedInvalidationList::begin() const {
+ return invalidations_.begin();
+}
+
+OrderedInvalidationList::const_iterator OrderedInvalidationList::end() const {
+ return invalidations_.end();
+}
+
+OrderedInvalidationList::const_reverse_iterator
+OrderedInvalidationList::rbegin() const {
+ return invalidations_.rbegin();
+}
+
+OrderedInvalidationList::const_reverse_iterator
+OrderedInvalidationList::rend() const {
+ return invalidations_.rend();
+}
+
+const Invalidation& OrderedInvalidationList::back() const {
+ return *invalidations_.rbegin();
+}
+
+scoped_ptr<base::ListValue> OrderedInvalidationList::ToValue() const {
+ scoped_ptr<base::ListValue> value(new ListValue);
+ for (InvalidationsSet::const_iterator it = invalidations_.begin();
+ it != invalidations_.end(); ++it) {
+ value->Append(it->ToValue().release());
+ }
+ return value.Pass();
+}
+
+bool OrderedInvalidationList::ResetFromValue(const base::ListValue& list) {
+ for (size_t i = 0; i < list.GetSize(); ++i) {
+ Invalidation invalidation;
+ const base::DictionaryValue* dict;
+ if (!list.GetDictionary(i, &dict) || !invalidation.ResetFromValue(*dict)) {
+ DLOG(WARNING) << "Failed to parse invalidation at index " << i;
+ return false;
+ }
+ invalidations_.insert(invalidation);
+ }
+ return true;
+}
+
+} // namespace syncer
« no previous file with comments | « sync/notifier/ordered_invalidation_list.h ('k') | sync/notifier/p2p_invalidator.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698