LCOV - code coverage report
Current view: top level - src/leveldb/table - block_builder.h (source / functions) Hit Total Coverage
Test: total_coverage.info Lines: 2 2 100.0 %
Date: 2015-10-12 22:39:14 Functions: 1 1 100.0 %
Legend: Lines: hit not hit

          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_TABLE_BLOCK_BUILDER_H_
       6             : #define STORAGE_LEVELDB_TABLE_BLOCK_BUILDER_H_
       7             : 
       8             : #include <vector>
       9             : 
      10             : #include <stdint.h>
      11             : #include "leveldb/slice.h"
      12             : 
      13             : namespace leveldb {
      14             : 
      15             : struct Options;
      16             : 
      17        1464 : class BlockBuilder {
      18             :  public:
      19             :   explicit BlockBuilder(const Options* options);
      20             : 
      21             :   // Reset the contents as if the BlockBuilder was just constructed.
      22             :   void Reset();
      23             : 
      24             :   // REQUIRES: Finish() has not been called since the last call to Reset().
      25             :   // REQUIRES: key is larger than any previously added key
      26             :   void Add(const Slice& key, const Slice& value);
      27             : 
      28             :   // Finish building the block and return a slice that refers to the
      29             :   // block contents.  The returned slice will remain valid for the
      30             :   // lifetime of this builder or until Reset() is called.
      31             :   Slice Finish();
      32             : 
      33             :   // Returns an estimate of the current (uncompressed) size of the block
      34             :   // we are building.
      35             :   size_t CurrentSizeEstimate() const;
      36             : 
      37             :   // Return true iff no entries have been added since the last Reset()
      38             :   bool empty() const {
      39         912 :     return buffer_.empty();
      40             :   }
      41             : 
      42             :  private:
      43             :   const Options*        options_;
      44             :   std::string           buffer_;      // Destination buffer
      45             :   std::vector<uint32_t> restarts_;    // Restart points
      46             :   int                   counter_;     // Number of entries emitted since restart
      47             :   bool                  finished_;    // Has Finish() been called?
      48             :   std::string           last_key_;
      49             : 
      50             :   // No copying allowed
      51             :   BlockBuilder(const BlockBuilder&);
      52             :   void operator=(const BlockBuilder&);
      53             : };
      54             : 
      55             : }  // namespace leveldb
      56             : 
      57             : #endif  // STORAGE_LEVELDB_TABLE_BLOCK_BUILDER_H_

Generated by: LCOV version 1.11