Merge commit 'e8893e96780685b9e39447199d946739e565fef5' as 'src/hyperleveldb'

This commit is contained in:
Vinnie Falco
2013-09-11 09:58:13 -07:00
139 changed files with 27199 additions and 0 deletions

View File

@@ -0,0 +1,34 @@
// 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_HYPERLEVELDB_TABLE_TWO_LEVEL_ITERATOR_H_
#define STORAGE_HYPERLEVELDB_TABLE_TWO_LEVEL_ITERATOR_H_
#include "../hyperleveldb/iterator.h"
namespace hyperleveldb {
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 hyperleveldb
#endif // STORAGE_HYPERLEVELDB_TABLE_TWO_LEVEL_ITERATOR_H_