summaryrefslogtreecommitdiffstats
path: root/content/browser/indexed_db/leveldb/leveldb_write_batch.cc
diff options
context:
space:
mode:
Diffstat (limited to 'content/browser/indexed_db/leveldb/leveldb_write_batch.cc')
-rw-r--r--content/browser/indexed_db/leveldb/leveldb_write_batch.cc37
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