OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include <cstddef> | 5 #include <cstddef> |
6 #include <cstdio> | 6 #include <cstdio> |
7 #include <string> | 7 #include <string> |
8 | 8 |
9 #include "base/at_exit.h" | 9 #include "base/at_exit.h" |
10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
81 | 81 |
82 virtual ~MyTestURLRequestContext() {} | 82 virtual ~MyTestURLRequestContext() {} |
83 }; | 83 }; |
84 | 84 |
85 class MyTestURLRequestContextGetter : public net::TestURLRequestContextGetter { | 85 class MyTestURLRequestContextGetter : public net::TestURLRequestContextGetter { |
86 public: | 86 public: |
87 explicit MyTestURLRequestContextGetter( | 87 explicit MyTestURLRequestContextGetter( |
88 const scoped_refptr<base::SingleThreadTaskRunner>& io_task_runner) | 88 const scoped_refptr<base::SingleThreadTaskRunner>& io_task_runner) |
89 : TestURLRequestContextGetter(io_task_runner) {} | 89 : TestURLRequestContextGetter(io_task_runner) {} |
90 | 90 |
91 virtual net::TestURLRequestContext* GetURLRequestContext() OVERRIDE { | 91 virtual net::TestURLRequestContext* GetURLRequestContext() override { |
92 // Construct |context_| lazily so it gets constructed on the right | 92 // Construct |context_| lazily so it gets constructed on the right |
93 // thread (the IO thread). | 93 // thread (the IO thread). |
94 if (!context_) | 94 if (!context_) |
95 context_.reset(new MyTestURLRequestContext()); | 95 context_.reset(new MyTestURLRequestContext()); |
96 return context_.get(); | 96 return context_.get(); |
97 } | 97 } |
98 | 98 |
99 private: | 99 private: |
100 virtual ~MyTestURLRequestContextGetter() {} | 100 virtual ~MyTestURLRequestContextGetter() {} |
101 | 101 |
102 scoped_ptr<MyTestURLRequestContext> context_; | 102 scoped_ptr<MyTestURLRequestContext> context_; |
103 }; | 103 }; |
104 | 104 |
105 // TODO(akalin): Use system encryptor once it's moved to sync/. | 105 // TODO(akalin): Use system encryptor once it's moved to sync/. |
106 class NullEncryptor : public Encryptor { | 106 class NullEncryptor : public Encryptor { |
107 public: | 107 public: |
108 virtual ~NullEncryptor() {} | 108 virtual ~NullEncryptor() {} |
109 | 109 |
110 virtual bool EncryptString(const std::string& plaintext, | 110 virtual bool EncryptString(const std::string& plaintext, |
111 std::string* ciphertext) OVERRIDE { | 111 std::string* ciphertext) override { |
112 *ciphertext = plaintext; | 112 *ciphertext = plaintext; |
113 return true; | 113 return true; |
114 } | 114 } |
115 | 115 |
116 virtual bool DecryptString(const std::string& ciphertext, | 116 virtual bool DecryptString(const std::string& ciphertext, |
117 std::string* plaintext) OVERRIDE { | 117 std::string* plaintext) override { |
118 *plaintext = ciphertext; | 118 *plaintext = ciphertext; |
119 return true; | 119 return true; |
120 } | 120 } |
121 }; | 121 }; |
122 | 122 |
123 std::string ValueToString(const base::Value& value) { | 123 std::string ValueToString(const base::Value& value) { |
124 std::string str; | 124 std::string str; |
125 base::JSONWriter::Write(&value, &str); | 125 base::JSONWriter::Write(&value, &str); |
126 return str; | 126 return str; |
127 } | 127 } |
128 | 128 |
129 class LoggingChangeDelegate : public SyncManager::ChangeDelegate { | 129 class LoggingChangeDelegate : public SyncManager::ChangeDelegate { |
130 public: | 130 public: |
131 virtual ~LoggingChangeDelegate() {} | 131 virtual ~LoggingChangeDelegate() {} |
132 | 132 |
133 virtual void OnChangesApplied( | 133 virtual void OnChangesApplied( |
134 ModelType model_type, | 134 ModelType model_type, |
135 int64 model_version, | 135 int64 model_version, |
136 const BaseTransaction* trans, | 136 const BaseTransaction* trans, |
137 const ImmutableChangeRecordList& changes) OVERRIDE { | 137 const ImmutableChangeRecordList& changes) override { |
138 LOG(INFO) << "Changes applied for " | 138 LOG(INFO) << "Changes applied for " |
139 << ModelTypeToString(model_type); | 139 << ModelTypeToString(model_type); |
140 size_t i = 1; | 140 size_t i = 1; |
141 size_t change_count = changes.Get().size(); | 141 size_t change_count = changes.Get().size(); |
142 for (ChangeRecordList::const_iterator it = | 142 for (ChangeRecordList::const_iterator it = |
143 changes.Get().begin(); it != changes.Get().end(); ++it) { | 143 changes.Get().begin(); it != changes.Get().end(); ++it) { |
144 scoped_ptr<base::DictionaryValue> change_value(it->ToValue()); | 144 scoped_ptr<base::DictionaryValue> change_value(it->ToValue()); |
145 LOG(INFO) << "Change (" << i << "/" << change_count << "): " | 145 LOG(INFO) << "Change (" << i << "/" << change_count << "): " |
146 << ValueToString(*change_value); | 146 << ValueToString(*change_value); |
147 if (it->action != ChangeRecord::ACTION_DELETE) { | 147 if (it->action != ChangeRecord::ACTION_DELETE) { |
148 ReadNode node(trans); | 148 ReadNode node(trans); |
149 CHECK_EQ(node.InitByIdLookup(it->id), BaseNode::INIT_OK); | 149 CHECK_EQ(node.InitByIdLookup(it->id), BaseNode::INIT_OK); |
150 scoped_ptr<base::DictionaryValue> details(node.ToValue()); | 150 scoped_ptr<base::DictionaryValue> details(node.ToValue()); |
151 VLOG(1) << "Details: " << ValueToString(*details); | 151 VLOG(1) << "Details: " << ValueToString(*details); |
152 } | 152 } |
153 ++i; | 153 ++i; |
154 } | 154 } |
155 } | 155 } |
156 | 156 |
157 virtual void OnChangesComplete(ModelType model_type) OVERRIDE { | 157 virtual void OnChangesComplete(ModelType model_type) override { |
158 LOG(INFO) << "Changes complete for " | 158 LOG(INFO) << "Changes complete for " |
159 << ModelTypeToString(model_type); | 159 << ModelTypeToString(model_type); |
160 } | 160 } |
161 }; | 161 }; |
162 | 162 |
163 class LoggingUnrecoverableErrorHandler | 163 class LoggingUnrecoverableErrorHandler |
164 : public UnrecoverableErrorHandler { | 164 : public UnrecoverableErrorHandler { |
165 public: | 165 public: |
166 virtual ~LoggingUnrecoverableErrorHandler() {} | 166 virtual ~LoggingUnrecoverableErrorHandler() {} |
167 | 167 |
168 virtual void OnUnrecoverableError(const tracked_objects::Location& from_here, | 168 virtual void OnUnrecoverableError(const tracked_objects::Location& from_here, |
169 const std::string& message) OVERRIDE { | 169 const std::string& message) override { |
170 if (LOG_IS_ON(ERROR)) { | 170 if (LOG_IS_ON(ERROR)) { |
171 logging::LogMessage(from_here.file_name(), from_here.line_number(), | 171 logging::LogMessage(from_here.file_name(), from_here.line_number(), |
172 logging::LOG_ERROR).stream() | 172 logging::LOG_ERROR).stream() |
173 << message; | 173 << message; |
174 } | 174 } |
175 } | 175 } |
176 }; | 176 }; |
177 | 177 |
178 class LoggingJsEventHandler | 178 class LoggingJsEventHandler |
179 : public JsEventHandler, | 179 : public JsEventHandler, |
180 public base::SupportsWeakPtr<LoggingJsEventHandler> { | 180 public base::SupportsWeakPtr<LoggingJsEventHandler> { |
181 public: | 181 public: |
182 virtual ~LoggingJsEventHandler() {} | 182 virtual ~LoggingJsEventHandler() {} |
183 | 183 |
184 virtual void HandleJsEvent( | 184 virtual void HandleJsEvent( |
185 const std::string& name, | 185 const std::string& name, |
186 const JsEventDetails& details) OVERRIDE { | 186 const JsEventDetails& details) override { |
187 VLOG(1) << name << ": " << details.ToString(); | 187 VLOG(1) << name << ": " << details.ToString(); |
188 } | 188 } |
189 }; | 189 }; |
190 | 190 |
191 class InvalidationAdapter : public syncer::InvalidationInterface { | 191 class InvalidationAdapter : public syncer::InvalidationInterface { |
192 public: | 192 public: |
193 explicit InvalidationAdapter(const syncer::Invalidation& invalidation) | 193 explicit InvalidationAdapter(const syncer::Invalidation& invalidation) |
194 : invalidation_(invalidation) {} | 194 : invalidation_(invalidation) {} |
195 virtual ~InvalidationAdapter() {} | 195 virtual ~InvalidationAdapter() {} |
196 | 196 |
197 virtual bool IsUnknownVersion() const OVERRIDE { | 197 virtual bool IsUnknownVersion() const override { |
198 return invalidation_.is_unknown_version(); | 198 return invalidation_.is_unknown_version(); |
199 } | 199 } |
200 | 200 |
201 virtual const std::string& GetPayload() const OVERRIDE { | 201 virtual const std::string& GetPayload() const override { |
202 return invalidation_.payload(); | 202 return invalidation_.payload(); |
203 } | 203 } |
204 | 204 |
205 virtual int64 GetVersion() const OVERRIDE { | 205 virtual int64 GetVersion() const override { |
206 return invalidation_.version(); | 206 return invalidation_.version(); |
207 } | 207 } |
208 | 208 |
209 virtual void Acknowledge() OVERRIDE { | 209 virtual void Acknowledge() override { |
210 invalidation_.Acknowledge(); | 210 invalidation_.Acknowledge(); |
211 } | 211 } |
212 | 212 |
213 virtual void Drop() OVERRIDE { | 213 virtual void Drop() override { |
214 invalidation_.Drop(); | 214 invalidation_.Drop(); |
215 } | 215 } |
216 | 216 |
217 private: | 217 private: |
218 syncer::Invalidation invalidation_; | 218 syncer::Invalidation invalidation_; |
219 }; | 219 }; |
220 | 220 |
221 class InvalidatorShim : public InvalidationHandler { | 221 class InvalidatorShim : public InvalidationHandler { |
222 public: | 222 public: |
223 explicit InvalidatorShim(SyncManager* sync_manager) | 223 explicit InvalidatorShim(SyncManager* sync_manager) |
224 : sync_manager_(sync_manager) {} | 224 : sync_manager_(sync_manager) {} |
225 | 225 |
226 virtual void OnInvalidatorStateChange(InvalidatorState state) OVERRIDE { | 226 virtual void OnInvalidatorStateChange(InvalidatorState state) override { |
227 sync_manager_->SetInvalidatorEnabled(state == INVALIDATIONS_ENABLED); | 227 sync_manager_->SetInvalidatorEnabled(state == INVALIDATIONS_ENABLED); |
228 } | 228 } |
229 | 229 |
230 virtual void OnIncomingInvalidation( | 230 virtual void OnIncomingInvalidation( |
231 const ObjectIdInvalidationMap& invalidation_map) OVERRIDE { | 231 const ObjectIdInvalidationMap& invalidation_map) override { |
232 syncer::ObjectIdSet ids = invalidation_map.GetObjectIds(); | 232 syncer::ObjectIdSet ids = invalidation_map.GetObjectIds(); |
233 for (syncer::ObjectIdSet::const_iterator ids_it = ids.begin(); | 233 for (syncer::ObjectIdSet::const_iterator ids_it = ids.begin(); |
234 ids_it != ids.end(); | 234 ids_it != ids.end(); |
235 ++ids_it) { | 235 ++ids_it) { |
236 syncer::ModelType type; | 236 syncer::ModelType type; |
237 if (!NotificationTypeToRealModelType(ids_it->name(), &type)) { | 237 if (!NotificationTypeToRealModelType(ids_it->name(), &type)) { |
238 DLOG(WARNING) << "Notification has invalid id: " | 238 DLOG(WARNING) << "Notification has invalid id: " |
239 << syncer::ObjectIdToString(*ids_it); | 239 << syncer::ObjectIdToString(*ids_it); |
240 } else { | 240 } else { |
241 syncer::SingleObjectInvalidationSet invalidation_set = | 241 syncer::SingleObjectInvalidationSet invalidation_set = |
242 invalidation_map.ForObject(*ids_it); | 242 invalidation_map.ForObject(*ids_it); |
243 for (syncer::SingleObjectInvalidationSet::const_iterator inv_it = | 243 for (syncer::SingleObjectInvalidationSet::const_iterator inv_it = |
244 invalidation_set.begin(); | 244 invalidation_set.begin(); |
245 inv_it != invalidation_set.end(); | 245 inv_it != invalidation_set.end(); |
246 ++inv_it) { | 246 ++inv_it) { |
247 scoped_ptr<syncer::InvalidationInterface> inv_adapter( | 247 scoped_ptr<syncer::InvalidationInterface> inv_adapter( |
248 new InvalidationAdapter(*inv_it)); | 248 new InvalidationAdapter(*inv_it)); |
249 sync_manager_->OnIncomingInvalidation(type, inv_adapter.Pass()); | 249 sync_manager_->OnIncomingInvalidation(type, inv_adapter.Pass()); |
250 } | 250 } |
251 } | 251 } |
252 } | 252 } |
253 } | 253 } |
254 | 254 |
255 virtual std::string GetOwnerName() const OVERRIDE { | 255 virtual std::string GetOwnerName() const override { |
256 return "InvalidatorShim"; | 256 return "InvalidatorShim"; |
257 } | 257 } |
258 | 258 |
259 private: | 259 private: |
260 SyncManager* sync_manager_; | 260 SyncManager* sync_manager_; |
261 }; | 261 }; |
262 | 262 |
263 void LogUnrecoverableErrorContext() { | 263 void LogUnrecoverableErrorContext() { |
264 base::debug::StackTrace().Print(); | 264 base::debug::StackTrace().Print(); |
265 } | 265 } |
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
464 io_thread.Stop(); | 464 io_thread.Stop(); |
465 return 0; | 465 return 0; |
466 } | 466 } |
467 | 467 |
468 } // namespace | 468 } // namespace |
469 } // namespace syncer | 469 } // namespace syncer |
470 | 470 |
471 int main(int argc, char* argv[]) { | 471 int main(int argc, char* argv[]) { |
472 return syncer::SyncClientMain(argc, argv); | 472 return syncer::SyncClientMain(argc, argv); |
473 } | 473 } |
OLD | NEW |