You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
1.2 KiB
34 lines
1.2 KiB
// 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_TWO_LEVEL_ITERATOR_H_ |
|
#define STORAGE_LEVELDB_TABLE_TWO_LEVEL_ITERATOR_H_ |
|
|
|
#include "leveldb/iterator.h" |
|
|
|
namespace leveldb { |
|
|
|
struct ReadOptions; |
|
|
|
// Return a new two level iterator. A two-level iterator contains an |
|
// index iterator whose values point to a sequence of blocks where |
|
// each block is itself a sequence of key,value pairs. The returned |
|
// two-level iterator yields the concatenation of all key/value pairs |
|
// in the sequence of blocks. Takes ownership of "index_iter" and |
|
// will delete it when no longer needed. |
|
// |
|
// Uses a supplied function to convert an index_iter value into |
|
// an iterator over the contents of the corresponding block. |
|
extern Iterator* NewTwoLevelIterator( |
|
Iterator* index_iter, |
|
Iterator* (*block_function)( |
|
void* arg, |
|
const ReadOptions& options, |
|
const Slice& index_value), |
|
void* arg, |
|
const ReadOptions& options); |
|
|
|
} // namespace leveldb |
|
|
|
#endif // STORAGE_LEVELDB_TABLE_TWO_LEVEL_ITERATOR_H_
|
|
|