Lucene++ - a full-featured, c++ search engine
API Documentation


 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
SortedVIntList.h
Go to the documentation of this file.
1 // Copyright (c) 2009-2011 Alan Wright. All rights reserved.
3 // Distributable under the terms of either the Apache License (Version 2.0)
4 // or the GNU Lesser General Public License.
6 
7 #ifndef SORTEDVINTLIST_H
8 #define SORTEDVINTLIST_H
9 
10 #include "DocIdSet.h"
11 
12 namespace Lucene
13 {
22  class LPPAPI SortedVIntList : public DocIdSet
23  {
24  public:
28 
32  SortedVIntList(Collection<int32_t> sortedInts, int32_t inputSize);
33 
37 
41 
46  SortedVIntList(DocIdSetIteratorPtr docIdSetIterator);
47 
48  virtual ~SortedVIntList();
49 
51 
52  public:
55  static const int32_t BITS2VINTLIST_SIZE;
56 
57  protected:
58  static const int32_t VB1;
59  static const int32_t BIT_SHIFT;
60  static const int32_t MAX_BYTES_PER_INT;
61 
62  int32_t _size;
63  ByteArray bytes;
64  int32_t lastBytePos;
65  int32_t lastInt;
66 
67  public:
69  int32_t size();
70 
72  int32_t getByteSize();
73 
75  virtual bool isCacheable();
76 
78  virtual DocIdSetIteratorPtr iterator();
79 
80  protected:
81  void initBytes();
82  void addInt(int32_t nextInt);
83 
84  friend class SortedDocIdSetIterator;
85  };
86 }
87 
88 #endif

clucene.sourceforge.net