1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- // 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 <cstddef>
- #include <cstdint>
- #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_
|