| // 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_ |