Lucene++ - a full-featured, c++ search engine
API Documentation
Main Page
Related Pages
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Pages
include
BitVector.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 BITVECTOR_H
8
#define BITVECTOR_H
9
10
#include "
LuceneObject.h
"
11
12
namespace
Lucene
13
{
15
class
LPPAPI
BitVector
:
public
LuceneObject
16
{
17
public
:
19
BitVector
(int32_t n = 0);
20
21
BitVector
(ByteArray bits, int32_t size);
22
25
BitVector
(
DirectoryPtr
d,
const
String& name);
26
27
virtual
~
BitVector
();
28
29
LUCENE_CLASS
(
BitVector
);
30
31
protected
:
32
ByteArray bits;
33
int32_t
_size
;
34
int32_t
_count
;
35
36
static
const
uint8_t BYTE_COUNTS[];
// table of bits/byte
37
38
public
:
40
virtual
LuceneObjectPtr
clone(
LuceneObjectPtr
other =
LuceneObjectPtr
());
41
43
void
set(int32_t bit);
44
46
bool
getAndSet(int32_t bit);
47
49
void
clear(int32_t bit);
50
52
bool
get
(int32_t bit);
53
56
int32_t size();
57
61
int32_t count();
62
64
int32_t getRecomputedCount();
65
68
void
write(
DirectoryPtr
d,
const
String& name);
69
74
BitVectorPtr
subset(int32_t start, int32_t end);
75
76
protected
:
78
void
writeBits(
IndexOutputPtr
output);
79
81
void
writeDgaps(
IndexOutputPtr
output);
82
85
bool
isSparse();
86
88
void
readBits(
IndexInputPtr
input);
89
91
void
readDgaps(
IndexInputPtr
input);
92
};
93
}
94
95
#endif
clucene.sourceforge.net