fork of https://github.com/oxigraph/rocksdb and https://github.com/facebook/rocksdb for nextgraph and oxigraph
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
1.3 KiB
50 lines
1.3 KiB
14 years ago
|
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
||
|
// Use of this source code is governed by a BSD-style license that can be
|
||
|
// found in the LICENSE file. See the AUTHORS file for names of contributors.
|
||
|
//
|
||
|
// WriteBatch holds a collection of updates to apply atomically to a DB.
|
||
|
//
|
||
|
// The updates are applied in the order in which they are added
|
||
|
// to the WriteBatch. For example, the value of "key" will be "v3"
|
||
|
// after the following batch is written:
|
||
|
//
|
||
|
// batch.Put("key", "v1");
|
||
|
// batch.Delete("key");
|
||
|
// batch.Put("key", "v2");
|
||
|
// batch.Put("key", "v3");
|
||
|
|
||
|
#ifndef STORAGE_LEVELDB_INCLUDE_WRITE_BATCH_H_
|
||
|
#define STORAGE_LEVELDB_INCLUDE_WRITE_BATCH_H_
|
||
|
|
||
|
#include <string>
|
||
|
|
||
|
namespace leveldb {
|
||
|
|
||
|
class Slice;
|
||
|
|
||
|
class WriteBatch {
|
||
|
public:
|
||
|
WriteBatch();
|
||
|
~WriteBatch();
|
||
|
|
||
|
// Store the mapping "key->value" in the database.
|
||
|
void Put(const Slice& key, const Slice& value);
|
||
|
|
||
|
// If the database contains a mapping for "key", erase it. Else do nothing.
|
||
|
void Delete(const Slice& key);
|
||
|
|
||
|
// Clear all updates buffered in this batch.
|
||
|
void Clear();
|
||
|
|
||
|
private:
|
||
|
friend class WriteBatchInternal;
|
||
|
|
||
|
std::string rep_; // See comment in write_batch.cc for the format of rep_
|
||
|
|
||
|
// Intentionally copyable
|
||
|
};
|
||
|
|
||
|
}
|
||
|
|
||
|
#endif // STORAGE_LEVELDB_INCLUDE_WRITE_BATCH_H_
|