diff options
Diffstat (limited to 'content/browser/indexed_db/leveldb/leveldb_write_batch.cc')
-rw-r--r-- | content/browser/indexed_db/leveldb/leveldb_write_batch.cc | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/content/browser/indexed_db/leveldb/leveldb_write_batch.cc b/content/browser/indexed_db/leveldb/leveldb_write_batch.cc new file mode 100644 index 0000000..b15c4fa --- /dev/null +++ b/content/browser/indexed_db/leveldb/leveldb_write_batch.cc @@ -0,0 +1,37 @@ +// Copyright (c) 2013 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "content/browser/indexed_db/leveldb/leveldb_write_batch.h" + +#include "content/browser/indexed_db/leveldb/leveldb_slice.h" +#include "third_party/leveldatabase/src/include/leveldb/slice.h" +#include "third_party/leveldatabase/src/include/leveldb/write_batch.h" + +namespace content { + +scoped_ptr<LevelDBWriteBatch> LevelDBWriteBatch::Create() { + return make_scoped_ptr(new LevelDBWriteBatch); +} + +LevelDBWriteBatch::LevelDBWriteBatch() + : write_batch_(new leveldb::WriteBatch) {} + +LevelDBWriteBatch::~LevelDBWriteBatch() {} + +static leveldb::Slice MakeSlice(const LevelDBSlice& s) { + return leveldb::Slice(s.begin(), s.end() - s.begin()); +} + +void LevelDBWriteBatch::Put(const LevelDBSlice& key, + const LevelDBSlice& value) { + write_batch_->Put(MakeSlice(key), MakeSlice(value)); +} + +void LevelDBWriteBatch::Remove(const LevelDBSlice& key) { + write_batch_->Delete(MakeSlice(key)); +} + +void LevelDBWriteBatch::Clear() { write_batch_->Clear(); } + +} // namespace content |