| 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 "chrome/browser/sync_file_system/drive_backend/leveldb_wrapper.h" | 5 #include "chrome/browser/sync_file_system/drive_backend/leveldb_wrapper.h" |
| 6 | 6 |
| 7 #include <map> | 7 #include <map> |
| 8 #include <set> | 8 #include <set> |
| 9 #include <string> | 9 #include <string> |
| 10 #include <utility> | 10 #include <utility> |
| 11 | 11 |
| 12 #include "base/logging.h" | 12 #include "base/logging.h" |
| 13 #include "base/memory/ptr_util.h" |
| 13 #include "third_party/leveldatabase/src/include/leveldb/db.h" | 14 #include "third_party/leveldatabase/src/include/leveldb/db.h" |
| 14 #include "third_party/leveldatabase/src/include/leveldb/iterator.h" | 15 #include "third_party/leveldatabase/src/include/leveldb/iterator.h" |
| 15 #include "third_party/leveldatabase/src/include/leveldb/slice.h" | 16 #include "third_party/leveldatabase/src/include/leveldb/slice.h" |
| 16 #include "third_party/leveldatabase/src/include/leveldb/status.h" | 17 #include "third_party/leveldatabase/src/include/leveldb/status.h" |
| 17 #include "third_party/leveldatabase/src/include/leveldb/write_batch.h" | 18 #include "third_party/leveldatabase/src/include/leveldb/write_batch.h" |
| 18 | 19 |
| 19 namespace sync_file_system { | 20 namespace sync_file_system { |
| 20 namespace drive_backend { | 21 namespace drive_backend { |
| 21 | 22 |
| 22 LevelDBWrapper::Iterator::Iterator(LevelDBWrapper* db) | 23 LevelDBWrapper::Iterator::Iterator(LevelDBWrapper* db) |
| (...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 137 return; | 138 return; |
| 138 | 139 |
| 139 while (map_iterator_ != db_->pending_.end() && | 140 while (map_iterator_ != db_->pending_.end() && |
| 140 map_iterator_->second.first == DELETE_OPERATION) | 141 map_iterator_->second.first == DELETE_OPERATION) |
| 141 ++map_iterator_; | 142 ++map_iterator_; |
| 142 } | 143 } |
| 143 | 144 |
| 144 // --------------------------------------------------------------------------- | 145 // --------------------------------------------------------------------------- |
| 145 // LevelDBWrapper class | 146 // LevelDBWrapper class |
| 146 // --------------------------------------------------------------------------- | 147 // --------------------------------------------------------------------------- |
| 147 LevelDBWrapper::LevelDBWrapper(scoped_ptr<leveldb::DB> db) | 148 LevelDBWrapper::LevelDBWrapper(std::unique_ptr<leveldb::DB> db) |
| 148 : db_(std::move(db)), num_puts_(0), num_deletes_(0) { | 149 : db_(std::move(db)), num_puts_(0), num_deletes_(0) { |
| 149 DCHECK(db_); | 150 DCHECK(db_); |
| 150 } | 151 } |
| 151 | 152 |
| 152 LevelDBWrapper::~LevelDBWrapper() {} | 153 LevelDBWrapper::~LevelDBWrapper() {} |
| 153 | 154 |
| 154 void LevelDBWrapper::Put(const std::string& key, const std::string& value) { | 155 void LevelDBWrapper::Put(const std::string& key, const std::string& value) { |
| 155 pending_[key] = Transaction(PUT_OPERATION, value); | 156 pending_[key] = Transaction(PUT_OPERATION, value); |
| 156 ++num_puts_; | 157 ++num_puts_; |
| 157 } | 158 } |
| (...skipping 14 matching lines...) Expand all Loading... |
| 172 case PUT_OPERATION: | 173 case PUT_OPERATION: |
| 173 *value = transaction.second; | 174 *value = transaction.second; |
| 174 return leveldb::Status(); | 175 return leveldb::Status(); |
| 175 case DELETE_OPERATION: | 176 case DELETE_OPERATION: |
| 176 return leveldb::Status::NotFound(leveldb::Slice()); | 177 return leveldb::Status::NotFound(leveldb::Slice()); |
| 177 } | 178 } |
| 178 NOTREACHED(); | 179 NOTREACHED(); |
| 179 return leveldb::Status::NotSupported("Not supported operation."); | 180 return leveldb::Status::NotSupported("Not supported operation."); |
| 180 } | 181 } |
| 181 | 182 |
| 182 scoped_ptr<LevelDBWrapper::Iterator> LevelDBWrapper::NewIterator() { | 183 std::unique_ptr<LevelDBWrapper::Iterator> LevelDBWrapper::NewIterator() { |
| 183 return make_scoped_ptr(new Iterator(this)); | 184 return base::WrapUnique(new Iterator(this)); |
| 184 } | 185 } |
| 185 | 186 |
| 186 leveldb::Status LevelDBWrapper::Commit() { | 187 leveldb::Status LevelDBWrapper::Commit() { |
| 187 leveldb::WriteBatch batch; | 188 leveldb::WriteBatch batch; |
| 188 for (PendingOperationMap::iterator itr = pending_.begin(); | 189 for (PendingOperationMap::iterator itr = pending_.begin(); |
| 189 itr != pending_.end(); ++itr) { | 190 itr != pending_.end(); ++itr) { |
| 190 const leveldb::Slice key(itr->first); | 191 const leveldb::Slice key(itr->first); |
| 191 const Transaction& transaction = itr->second; | 192 const Transaction& transaction = itr->second; |
| 192 switch (transaction.first) { | 193 switch (transaction.first) { |
| 193 case PUT_OPERATION: | 194 case PUT_OPERATION: |
| (...skipping 18 matching lines...) Expand all Loading... |
| 212 num_puts_ = 0; | 213 num_puts_ = 0; |
| 213 num_deletes_ = 0; | 214 num_deletes_ = 0; |
| 214 } | 215 } |
| 215 | 216 |
| 216 leveldb::DB* LevelDBWrapper::GetLevelDB() { | 217 leveldb::DB* LevelDBWrapper::GetLevelDB() { |
| 217 return db_.get(); | 218 return db_.get(); |
| 218 } | 219 } |
| 219 | 220 |
| 220 } // namespace drive_backend | 221 } // namespace drive_backend |
| 221 } // namespace sync_file_system | 222 } // namespace sync_file_system |
| OLD | NEW |