1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "content/browser/indexed_db/leveldb/leveldb_write_batch.h" 6 7 #include "base/strings/string_piece.h" 8 #include "third_party/leveldatabase/src/include/leveldb/slice.h" 9 #include "third_party/leveldatabase/src/include/leveldb/write_batch.h" 10 11 namespace content { 12 13 scoped_ptr<LevelDBWriteBatch> LevelDBWriteBatch::Create() { 14 return make_scoped_ptr(new LevelDBWriteBatch); 15 } 16 17 LevelDBWriteBatch::LevelDBWriteBatch() 18 : write_batch_(new leveldb::WriteBatch) {} 19 20 LevelDBWriteBatch::~LevelDBWriteBatch() {} 21 22 static leveldb::Slice MakeSlice(const base::StringPiece& s) { 23 return leveldb::Slice(s.begin(), s.size()); 24 } 25 26 void LevelDBWriteBatch::Put(const base::StringPiece& key, 27 const base::StringPiece& value) { 28 write_batch_->Put(MakeSlice(key), MakeSlice(value)); 29 } 30 31 void LevelDBWriteBatch::Remove(const base::StringPiece& key) { 32 write_batch_->Delete(MakeSlice(key)); 33 } 34 35 void LevelDBWriteBatch::Clear() { write_batch_->Clear(); } 36 37 } // namespace content 38