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

Side by Side Diff: chrome/browser/sync_file_system/drive_backend/leveldb_wrapper.cc

Issue 461823002: [SyncFS] Support Delete operation on LevelDBWrapper::Iterator (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 4 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
OLDNEW
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 10
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
60 db_iterator_->Next(); 60 db_iterator_->Next();
61 if (comp >= 0) 61 if (comp >= 0)
62 ++map_iterator_; 62 ++map_iterator_;
63 } else { 63 } else {
64 ++map_iterator_; 64 ++map_iterator_;
65 } 65 }
66 66
67 AdvanceIterators(); 67 AdvanceIterators();
68 } 68 }
69 69
70 void LevelDBWrapper::Iterator::Delete() {
71 DCHECK(Valid());
72
73 const std::string key_str = key().ToString();
74 db_->Delete(key_str);
75 Seek(key_str);
tzik 2014/08/12 03:37:32 Can this be like below? map_iterator->second = T
peria 2014/08/12 05:46:36 As we chatted offline, it does not work if |db_->p
76 }
77
70 leveldb::Slice LevelDBWrapper::Iterator::key() { 78 leveldb::Slice LevelDBWrapper::Iterator::key() {
71 DCHECK(Valid()); 79 DCHECK(Valid());
72 80
73 if (!db_iterator_->Valid()) 81 if (!db_iterator_->Valid())
74 return map_iterator_->first; 82 return map_iterator_->first;
75 if (map_iterator_ == db_->pending_.end()) 83 if (map_iterator_ == db_->pending_.end())
76 return db_iterator_->key(); 84 return db_iterator_->key();
77 85
78 const leveldb::Slice db_key = db_iterator_->key(); 86 const leveldb::Slice db_key = db_iterator_->key();
79 const leveldb::Slice map_key = map_iterator_->first; 87 const leveldb::Slice map_key = map_iterator_->first;
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
192 void LevelDBWrapper::Clear() { 200 void LevelDBWrapper::Clear() {
193 pending_.clear(); 201 pending_.clear();
194 } 202 }
195 203
196 leveldb::DB* LevelDBWrapper::GetLevelDB() { 204 leveldb::DB* LevelDBWrapper::GetLevelDB() {
197 return db_.get(); 205 return db_.get();
198 } 206 }
199 207
200 } // namespace drive_backend 208 } // namespace drive_backend
201 } // namespace sync_file_system 209 } // namespace sync_file_system
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698