| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "google_apis/gcm/engine/gcm_store_impl.h" | 5 #include "google_apis/gcm/engine/gcm_store_impl.h" |
| 6 | 6 |
| 7 #include "base/basictypes.h" | 7 #include "base/basictypes.h" |
| 8 #include "base/bind.h" | 8 #include "base/bind.h" |
| 9 #include "base/callback.h" | 9 #include "base/callback.h" |
| 10 #include "base/files/file_path.h" | 10 #include "base/files/file_path.h" |
| (...skipping 534 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 545 | 545 |
| 546 void GCMStoreImpl::Backend::SetGServicesSettings( | 546 void GCMStoreImpl::Backend::SetGServicesSettings( |
| 547 const std::map<std::string, std::string>& settings, | 547 const std::map<std::string, std::string>& settings, |
| 548 const std::string& settings_digest, | 548 const std::string& settings_digest, |
| 549 const UpdateCallback& callback) { | 549 const UpdateCallback& callback) { |
| 550 leveldb::WriteBatch write_batch; | 550 leveldb::WriteBatch write_batch; |
| 551 | 551 |
| 552 // Remove all existing settings. | 552 // Remove all existing settings. |
| 553 leveldb::ReadOptions read_options; | 553 leveldb::ReadOptions read_options; |
| 554 read_options.verify_checksums = true; | 554 read_options.verify_checksums = true; |
| 555 scoped_ptr<leveldb::Iterator> db_iter(db_->NewIterator(read_options)); | 555 scoped_ptr<leveldb::Iterator> iter(db_->NewIterator(read_options)); |
| 556 for (db_iter->Seek(MakeSlice(kGServiceSettingKeyStart)); | 556 for (iter->Seek(MakeSlice(kGServiceSettingKeyStart)); |
| 557 db_iter->Valid() && db_iter->key().ToString() < kGServiceSettingKeyEnd; | 557 iter->Valid() && iter->key().ToString() < kGServiceSettingKeyEnd; |
| 558 db_iter->Next()) { | 558 iter->Next()) { |
| 559 write_batch.Delete(db_iter->key()); | 559 write_batch.Delete(iter->key()); |
| 560 } | 560 } |
| 561 | 561 |
| 562 // Add the new settings. | 562 // Add the new settings. |
| 563 for (std::map<std::string, std::string>::const_iterator iter = | 563 for (std::map<std::string, std::string>::const_iterator iter = |
| 564 settings.begin(); | 564 settings.begin(); |
| 565 iter != settings.end(); ++iter) { | 565 iter != settings.end(); ++iter) { |
| 566 write_batch.Put(MakeSlice(MakeGServiceSettingKey(iter->first)), | 566 write_batch.Put(MakeSlice(MakeGServiceSettingKey(iter->first)), |
| 567 MakeSlice(iter->second)); | 567 MakeSlice(iter->second)); |
| 568 } | 568 } |
| 569 | 569 |
| (...skipping 567 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1137 removed_message_counts.begin(); | 1137 removed_message_counts.begin(); |
| 1138 iter != removed_message_counts.end(); ++iter) { | 1138 iter != removed_message_counts.end(); ++iter) { |
| 1139 DCHECK_NE(app_message_counts_.count(iter->first), 0U); | 1139 DCHECK_NE(app_message_counts_.count(iter->first), 0U); |
| 1140 app_message_counts_[iter->first] -= iter->second; | 1140 app_message_counts_[iter->first] -= iter->second; |
| 1141 DCHECK_GE(app_message_counts_[iter->first], 0); | 1141 DCHECK_GE(app_message_counts_[iter->first], 0); |
| 1142 } | 1142 } |
| 1143 callback.Run(true); | 1143 callback.Run(true); |
| 1144 } | 1144 } |
| 1145 | 1145 |
| 1146 } // namespace gcm | 1146 } // namespace gcm |
| OLD | NEW |