Branch data Line data Source code
1 : : // Copyright (c) 2011 The LevelDB Authors. All rights reserved.
2 : : // Use of this source code is governed by a BSD-style license that can be
3 : : // found in the LICENSE file. See the AUTHORS file for names of contributors.
4 : :
5 : : #ifndef STORAGE_LEVELDB_DB_WRITE_BATCH_INTERNAL_H_
6 : : #define STORAGE_LEVELDB_DB_WRITE_BATCH_INTERNAL_H_
7 : :
8 : : #include "db/dbformat.h"
9 : : #include "leveldb/write_batch.h"
10 : :
11 : : namespace leveldb {
12 : :
13 : : class MemTable;
14 : :
15 : : // WriteBatchInternal provides static methods for manipulating a
16 : : // WriteBatch that we don't want in the public WriteBatch interface.
17 : : class WriteBatchInternal {
18 : : public:
19 : : // Return the number of entries in the batch.
20 : : static int Count(const WriteBatch* batch);
21 : :
22 : : // Set the count for the number of entries in the batch.
23 : : static void SetCount(WriteBatch* batch, int n);
24 : :
25 : : // Return the sequence number for the start of this batch.
26 : : static SequenceNumber Sequence(const WriteBatch* batch);
27 : :
28 : : // Store the specified number as the sequence number for the start of
29 : : // this batch.
30 : : static void SetSequence(WriteBatch* batch, SequenceNumber seq);
31 : :
32 [ - + + - ]: 41172 : static Slice Contents(const WriteBatch* batch) { return Slice(batch->rep_); }
33 : :
34 [ - + + + : 41172 : static size_t ByteSize(const WriteBatch* batch) { return batch->rep_.size(); }
- - - - ]
35 : :
36 : : static void SetContents(WriteBatch* batch, const Slice& contents);
37 : :
38 : : static Status InsertInto(const WriteBatch* batch, MemTable* memtable);
39 : :
40 : : static void Append(WriteBatch* dst, const WriteBatch* src);
41 : : };
42 : :
43 : : } // namespace leveldb
44 : :
45 : : #endif // STORAGE_LEVELDB_DB_WRITE_BATCH_INTERNAL_H_
|