| 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 |