leveldb_write_batch.cc revision 868fa2fe829687343ffae624259930155e16dbd8
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 "content/browser/indexed_db/leveldb/leveldb_slice.h"
8#include "third_party/leveldatabase/src/include/leveldb/slice.h"
9#include "third_party/leveldatabase/src/include/leveldb/write_batch.h"
10
11namespace content {
12
13scoped_ptr<LevelDBWriteBatch> LevelDBWriteBatch::Create() {
14  return make_scoped_ptr(new LevelDBWriteBatch);
15}
16
17LevelDBWriteBatch::LevelDBWriteBatch()
18    : write_batch_(new leveldb::WriteBatch) {}
19
20LevelDBWriteBatch::~LevelDBWriteBatch() {}
21
22static leveldb::Slice MakeSlice(const LevelDBSlice& s) {
23  return leveldb::Slice(s.begin(), s.end() - s.begin());
24}
25
26void LevelDBWriteBatch::Put(const LevelDBSlice& key,
27                            const LevelDBSlice& value) {
28  write_batch_->Put(MakeSlice(key), MakeSlice(value));
29}
30
31void LevelDBWriteBatch::Remove(const LevelDBSlice& key) {
32  write_batch_->Delete(MakeSlice(key));
33}
34
35void LevelDBWriteBatch::Clear() { write_batch_->Clear(); }
36
37}  // namespace content
38