git / moonbite-core / src/leveldb/table/block.h · raw

// 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.#ifndef STORAGE_LEVELDB_TABLE_BLOCK_H_#define STORAGE_LEVELDB_TABLE_BLOCK_H_#include <stddef.h>#include <stdint.h>#include "leveldb/iterator.h"namespace leveldb {struct BlockContents;class Comparator;class Block { public:  // Initialize the block with the specified contents.  explicit Block(const BlockContents& contents);  Block(const Block&) = delete;  Block& operator=(const Block&) = delete;  ~Block();  size_t size() const { return size_; }  Iterator* NewIterator(const Comparator* comparator); private:  class Iter;  uint32_t NumRestarts() const;  const char* data_;  size_t size_;  uint32_t restart_offset_;  // Offset in data_ of restart array  bool owned_;               // Block owns data_[]};}  // namespace leveldb#endif  // STORAGE_LEVELDB_TABLE_BLOCK_H_