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


Loading...
Searching...
No Matches
BitVector.h
Go to the documentation of this file.
1
2// Copyright (c) 2009-2014 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 BITVECTOR_H
8#define BITVECTOR_H
9
10#include "LuceneObject.h"
11
12namespace Lucene {
13
15class LPPAPI BitVector : public LuceneObject {
16public:
18 BitVector(int32_t n = 0);
19
20 BitVector(ByteArray bits, int32_t size);
21
24 BitVector(const DirectoryPtr& d, const String& name);
25
26 virtual ~BitVector();
27
29
30protected:
31 ByteArray bits;
32 int32_t _size;
33 int32_t _count;
34
35 static const uint8_t BYTE_COUNTS[]; // table of bits/byte
36
37public:
40
42 void set(int32_t bit);
43
45 bool getAndSet(int32_t bit);
46
48 void clear(int32_t bit);
49
51 bool get(int32_t bit);
52
55 int32_t size();
56
60 int32_t count();
61
64
67 void write(const DirectoryPtr& d, const String& name);
68
73 BitVectorPtr subset(int32_t start, int32_t end);
74
75protected:
77 void writeBits(const IndexOutputPtr& output);
78
80 void writeDgaps(const IndexOutputPtr& output);
81
84 bool isSparse();
85
87 void readBits(const IndexInputPtr& input);
88
90 void readDgaps(const IndexInputPtr& input);
91};
92
93}
94
95#endif
#define LUCENE_CLASS(Name)
Definition LuceneObject.h:24
Optimized implementation of a vector of bits.
Definition BitVector.h:15
void clear(int32_t bit)
Sets the value of bit to zero.
BitVector(const DirectoryPtr &d, const String &name)
Constructs a bit vector from the file name in Directory d, as written by the write method.
virtual ~BitVector()
BitVector(int32_t n=0)
Constructs a vector capable of holding n bits.
int32_t count()
Returns the total number of one bits in this vector. This is efficiently computed and cached,...
int32_t getRecomputedCount()
For testing.
void writeBits(const IndexOutputPtr &output)
Write as a bit set.
int32_t _size
Definition BitVector.h:32
void readDgaps(const IndexInputPtr &input)
Read as a d-gaps list.
void writeDgaps(const IndexOutputPtr &output)
Write as a d-gaps list.
ByteArray bits
Definition BitVector.h:31
virtual LuceneObjectPtr clone(const LuceneObjectPtr &other=LuceneObjectPtr())
Clone this vector.
bool get(int32_t bit)
Returns true if bit is one and false if it is zero.
void set(int32_t bit)
Sets the value of bit to one.
BitVector(ByteArray bits, int32_t size)
void write(const DirectoryPtr &d, const String &name)
Writes this vector to the file name in Directory d, in a format that can be read by the constructor B...
int32_t _count
Definition BitVector.h:33
BitVectorPtr subset(int32_t start, int32_t end)
Retrieve a subset of this BitVector.
void readBits(const IndexInputPtr &input)
Read as a bit set.
int32_t size()
Returns the number of bits in this vector. This is also one greater than the number of the largest va...
bool getAndSet(int32_t bit)
Sets the value of bit to true, and returns true if bit was already set.
bool isSparse()
Indicates if the bit vector is sparse and should be saved as a d-gaps list, or dense,...
Base class for all Lucene classes.
Definition LuceneObject.h:31
Definition AbstractAllTermDocs.h:12
boost::shared_ptr< LuceneObject > LuceneObjectPtr
Definition LuceneTypes.h:539
boost::shared_ptr< BitVector > BitVectorPtr
Definition LuceneTypes.h:523
boost::shared_ptr< IndexInput > IndexInputPtr
Definition LuceneTypes.h:493
boost::shared_ptr< Directory > DirectoryPtr
Definition LuceneTypes.h:489
boost::shared_ptr< IndexOutput > IndexOutputPtr
Definition LuceneTypes.h:494

clucene.sourceforge.net