1868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)// Copyright (c) 2013 The Chromium Authors. All rights reserved.
2868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
3868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)// found in the LICENSE file.
4868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)
5868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "content/browser/indexed_db/leveldb/leveldb_write_batch.h"
6868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)
77dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "base/strings/string_piece.h"
8868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "third_party/leveldatabase/src/include/leveldb/slice.h"
9868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "third_party/leveldatabase/src/include/leveldb/write_batch.h"
10868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)
11868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)namespace content {
12868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)
13868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)scoped_ptr<LevelDBWriteBatch> LevelDBWriteBatch::Create() {
14868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)  return make_scoped_ptr(new LevelDBWriteBatch);
15868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)}
16868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)
17868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)LevelDBWriteBatch::LevelDBWriteBatch()
18868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)    : write_batch_(new leveldb::WriteBatch) {}
19868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)
20868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)LevelDBWriteBatch::~LevelDBWriteBatch() {}
21868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)
227dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochstatic leveldb::Slice MakeSlice(const base::StringPiece& s) {
237dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  return leveldb::Slice(s.begin(), s.size());
24868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)}
25868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)
267dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochvoid LevelDBWriteBatch::Put(const base::StringPiece& key,
277dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch                            const base::StringPiece& value) {
28868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)  write_batch_->Put(MakeSlice(key), MakeSlice(value));
29868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)}
30868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)
317dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochvoid LevelDBWriteBatch::Remove(const base::StringPiece& key) {
32868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)  write_batch_->Delete(MakeSlice(key));
33868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)}
34868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)
35868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)void LevelDBWriteBatch::Clear() { write_batch_->Clear(); }
36868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)
37868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)}  // namespace content
38