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

Side by Side Diff: sync/notifier/invalidation_util.cc

Issue 387733004: Move sync/notifier to components/invalidation (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: (GN) Comment out dependency on internal target Created 6 years, 5 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « sync/notifier/invalidation_util.h ('k') | sync/notifier/invalidator.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "sync/notifier/invalidation_util.h"
6
7 #include <ostream>
8 #include <sstream>
9
10 #include "base/json/json_writer.h"
11 #include "base/memory/scoped_ptr.h"
12 #include "base/values.h"
13 #include "google/cacheinvalidation/include/types.h"
14 #include "google/cacheinvalidation/types.pb.h"
15 #include "sync/internal_api/public/base/invalidation.h"
16
17 namespace invalidation {
18 void PrintTo(const invalidation::ObjectId& id, std::ostream* os) {
19 *os << syncer::ObjectIdToString(id);
20 }
21 } // namespace invalidation
22
23 namespace syncer {
24
25 bool ObjectIdLessThan::operator()(const invalidation::ObjectId& lhs,
26 const invalidation::ObjectId& rhs) const {
27 return (lhs.source() < rhs.source()) ||
28 (lhs.source() == rhs.source() && lhs.name() < rhs.name());
29 }
30
31 bool InvalidationVersionLessThan::operator()(
32 const Invalidation& a,
33 const Invalidation& b) const {
34 DCHECK(a.object_id() == b.object_id())
35 << "a: " << ObjectIdToString(a.object_id()) << ", "
36 << "b: " << ObjectIdToString(a.object_id());
37
38 if (a.is_unknown_version() && !b.is_unknown_version())
39 return true;
40
41 if (!a.is_unknown_version() && b.is_unknown_version())
42 return false;
43
44 if (a.is_unknown_version() && b.is_unknown_version())
45 return false;
46
47 return a.version() < b.version();
48 }
49
50 bool RealModelTypeToObjectId(ModelType model_type,
51 invalidation::ObjectId* object_id) {
52 std::string notification_type;
53 if (!RealModelTypeToNotificationType(model_type, &notification_type)) {
54 return false;
55 }
56 object_id->Init(ipc::invalidation::ObjectSource::CHROME_SYNC,
57 notification_type);
58 return true;
59 }
60
61 bool ObjectIdToRealModelType(const invalidation::ObjectId& object_id,
62 ModelType* model_type) {
63 return NotificationTypeToRealModelType(object_id.name(), model_type);
64 }
65
66 scoped_ptr<base::DictionaryValue> ObjectIdToValue(
67 const invalidation::ObjectId& object_id) {
68 scoped_ptr<base::DictionaryValue> value(new base::DictionaryValue());
69 value->SetInteger("source", object_id.source());
70 value->SetString("name", object_id.name());
71 return value.Pass();
72 }
73
74 bool ObjectIdFromValue(const base::DictionaryValue& value,
75 invalidation::ObjectId* out) {
76 *out = invalidation::ObjectId();
77 std::string name;
78 int source = 0;
79 if (!value.GetInteger("source", &source) ||
80 !value.GetString("name", &name)) {
81 return false;
82 }
83 *out = invalidation::ObjectId(source, name);
84 return true;
85 }
86
87 std::string ObjectIdToString(
88 const invalidation::ObjectId& object_id) {
89 scoped_ptr<base::DictionaryValue> value(ObjectIdToValue(object_id));
90 std::string str;
91 base::JSONWriter::Write(value.get(), &str);
92 return str;
93 }
94
95 ObjectIdSet ModelTypeSetToObjectIdSet(ModelTypeSet model_types) {
96 ObjectIdSet ids;
97 for (ModelTypeSet::Iterator it = model_types.First(); it.Good(); it.Inc()) {
98 invalidation::ObjectId model_type_as_id;
99 if (!RealModelTypeToObjectId(it.Get(), &model_type_as_id)) {
100 DLOG(WARNING) << "Invalid model type " << it.Get();
101 continue;
102 }
103 ids.insert(model_type_as_id);
104 }
105 return ids;
106 }
107
108 ModelTypeSet ObjectIdSetToModelTypeSet(const ObjectIdSet& ids) {
109 ModelTypeSet model_types;
110 for (ObjectIdSet::const_iterator it = ids.begin(); it != ids.end(); ++it) {
111 ModelType model_type;
112 if (!ObjectIdToRealModelType(*it, &model_type)) {
113 DLOG(WARNING) << "Invalid object ID " << ObjectIdToString(*it);
114 continue;
115 }
116 model_types.Put(model_type);
117 }
118 return model_types;
119 }
120
121 std::string InvalidationToString(
122 const invalidation::Invalidation& invalidation) {
123 std::stringstream ss;
124 ss << "{ ";
125 ss << "object_id: " << ObjectIdToString(invalidation.object_id()) << ", ";
126 ss << "version: " << invalidation.version();
127 ss << " }";
128 return ss.str();
129 }
130
131 } // namespace syncer
OLDNEW
« no previous file with comments | « sync/notifier/invalidation_util.h ('k') | sync/notifier/invalidator.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698