github.com/cellofellow/gopkg@v0.0.0-20140722061823-eec0544a62ad/database/leveldb.chai2010/include/db/write_batch_internal.h (about)

     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 "leveldb/write_batch.h"
     9  
    10  namespace leveldb {
    11  
    12  class MemTable;
    13  
    14  // WriteBatchInternal provides static methods for manipulating a
    15  // WriteBatch that we don't want in the public WriteBatch interface.
    16  class WriteBatchInternal {
    17   public:
    18    // Return the number of entries in the batch.
    19    static int Count(const WriteBatch* batch);
    20  
    21    // Set the count for the number of entries in the batch.
    22    static void SetCount(WriteBatch* batch, int n);
    23  
    24    // Return the seqeunce number for the start of this batch.
    25    static SequenceNumber Sequence(const WriteBatch* batch);
    26  
    27    // Store the specified number as the seqeunce number for the start of
    28    // this batch.
    29    static void SetSequence(WriteBatch* batch, SequenceNumber seq);
    30  
    31    static Slice Contents(const WriteBatch* batch) {
    32      return Slice(batch->rep_);
    33    }
    34  
    35    static size_t ByteSize(const WriteBatch* batch) {
    36      return batch->rep_.size();
    37    }
    38  
    39    static void SetContents(WriteBatch* batch, const Slice& contents);
    40  
    41    static Status InsertInto(const WriteBatch* batch, MemTable* memtable);
    42  
    43    static void Append(WriteBatch* dst, const WriteBatch* src);
    44  };
    45  
    46  }  // namespace leveldb
    47  
    48  
    49  #endif  // STORAGE_LEVELDB_DB_WRITE_BATCH_INTERNAL_H_