• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
Create()13 scoped_ptr<LevelDBWriteBatch> LevelDBWriteBatch::Create() {
14   return make_scoped_ptr(new LevelDBWriteBatch);
15 }
16 
LevelDBWriteBatch()17 LevelDBWriteBatch::LevelDBWriteBatch()
18     : write_batch_(new leveldb::WriteBatch) {}
19 
~LevelDBWriteBatch()20 LevelDBWriteBatch::~LevelDBWriteBatch() {}
21 
MakeSlice(const base::StringPiece & s)22 static leveldb::Slice MakeSlice(const base::StringPiece& s) {
23   return leveldb::Slice(s.begin(), s.size());
24 }
25 
Put(const base::StringPiece & key,const base::StringPiece & value)26 void LevelDBWriteBatch::Put(const base::StringPiece& key,
27                             const base::StringPiece& value) {
28   write_batch_->Put(MakeSlice(key), MakeSlice(value));
29 }
30 
Remove(const base::StringPiece & key)31 void LevelDBWriteBatch::Remove(const base::StringPiece& key) {
32   write_batch_->Delete(MakeSlice(key));
33 }
34 
Clear()35 void LevelDBWriteBatch::Clear() { write_batch_->Clear(); }
36 
37 }  // namespace content
38