Initial import into git.
[galago.git] / cpp / galago / include / BinOrderedBinnedIterator.hpp
blob962bab9f9d5b865ecbfe6fd547b4b580ea8c692e
2 //
3 // BinOrderedBinnedIterator
4 //
5 // 6 January 2007 -- tds
6 //
8 #ifndef GALAGO_BINORDEREDBINNEDTITERATOR_HPP
9 #define GALAGO_BINORDEREDBINNEDTITERATOR_HPP
11 #include "indri/indri-platform.h"
12 #include "indri/greedy_vector"
14 class BinOrderedBinnedIterator {
15 private:
16 struct BinInfo {
17 UINT32 bin;
19 UINT64 binStart;
20 UINT64 binLength;
21 UINT64 dataStart;
22 UINT64 dataLength;
23 UINT64 skipStart;
24 UINT64 skipLength;
27 const char* invertedData;
29 indri::utility::greedy_vector<BinInfo> _termBins;
30 int _termBinIndex;
31 UINT64 _postingsLength;
32 UINT64 _documentCount;
34 const BinInfo& _currentBinInfo() const;
36 void _readTermHeader( UINT64 startPosition, UINT64 endPosition );
38 public:
39 BinOrderedBinnedIterator( const char* data, UINT64 start, UINT64 end );
41 int bin();
42 bool next();
43 void reset();
45 const char* binData();
46 UINT64 binDataLength();
47 const char* skipData();
48 UINT64 skipDataLength();
49 UINT64 postingsDataLength() const;
50 UINT64 documentCount() const;
53 #endif // GALAGO_BINORDEREDBINNEDTITERATOR_HPP