#include "table/two_level_iterator.h"
#include "leveldb/table.h"
#include "table/block.h"
#include "table/format.h"
#include "table/iterator_wrapper.h"
namespace leveldb {
namespace {
BlockFunction;
class TwoLevelIterator : public Iterator { … };
TwoLevelIterator::TwoLevelIterator(Iterator* index_iter,
BlockFunction block_function, void* arg,
const ReadOptions& options)
: … { … }
TwoLevelIterator::~TwoLevelIterator() = default;
void TwoLevelIterator::Seek(const Slice& target) { … }
void TwoLevelIterator::SeekToFirst() { … }
void TwoLevelIterator::SeekToLast() { … }
void TwoLevelIterator::Next() { … }
void TwoLevelIterator::Prev() { … }
void TwoLevelIterator::SkipEmptyDataBlocksForward() { … }
void TwoLevelIterator::SkipEmptyDataBlocksBackward() { … }
void TwoLevelIterator::SetDataIterator(Iterator* data_iter) { … }
void TwoLevelIterator::InitDataBlock() { … }
}
Iterator* NewTwoLevelIterator(Iterator* index_iter,
BlockFunction block_function, void* arg,
const ReadOptions& options) { … }
}