Tesseract
3.02
|
#include <bitvector.h>
Public Member Functions | |
BitVector () | |
BitVector (int length) | |
BitVector (const BitVector &src) | |
BitVector & | operator= (const BitVector &src) |
~BitVector () | |
void | Init (int length) |
int | size () const |
bool | Serialize (FILE *fp) const |
bool | DeSerialize (bool swap, FILE *fp) |
void | SetAllFalse () |
void | SetAllTrue () |
void | SetBit (int index) |
void | ResetBit (int index) |
void | SetValue (int index, bool value) |
bool | At (int index) const |
bool | operator[] (int index) const |
Definition at line 34 of file bitvector.h.
tesseract::BitVector::BitVector | ( | ) |
Definition at line 28 of file bitvector.cpp.
: bit_size_(0), array_(NULL) {}
tesseract::BitVector::BitVector | ( | int | length | ) | [explicit] |
Definition at line 30 of file bitvector.cpp.
: bit_size_(length) { array_ = new uinT32[WordLength()]; SetAllFalse(); }
tesseract::BitVector::BitVector | ( | const BitVector & | src | ) |
Definition at line 35 of file bitvector.cpp.
: bit_size_(src.bit_size_) { array_ = new uinT32[WordLength()]; memcpy(array_, src.array_, ByteLength()); }
tesseract::BitVector::~BitVector | ( | ) |
Definition at line 46 of file bitvector.cpp.
{
delete [] array_;
}
bool tesseract::BitVector::At | ( | int | index | ) | const [inline] |
Definition at line 75 of file bitvector.h.
{
return (array_[WordIndex(index)] & BitMask(index)) != 0;
}
bool tesseract::BitVector::DeSerialize | ( | bool | swap, |
FILE * | fp | ||
) |
Definition at line 66 of file bitvector.cpp.
{ uinT32 new_bit_size; if (fread(&new_bit_size, sizeof(new_bit_size), 1, fp) != 1) return false; if (swap) { ReverseN(&new_bit_size, sizeof(new_bit_size)); } Alloc(new_bit_size); int wordlen = WordLength(); if (fread(array_, sizeof(*array_), wordlen, fp) != wordlen) return false; if (swap) { for (int i = 0; i < wordlen; ++i) ReverseN(&array_[i], sizeof(array_[i])); } return true; }
void tesseract::BitVector::Init | ( | int | length | ) |
Definition at line 51 of file bitvector.cpp.
{ Alloc(length); SetAllFalse(); }
Definition at line 40 of file bitvector.cpp.
{ Alloc(src.bit_size_); memcpy(array_, src.array_, ByteLength()); return *this; }
bool tesseract::BitVector::operator[] | ( | int | index | ) | const [inline] |
Definition at line 78 of file bitvector.h.
{
return (array_[WordIndex(index)] & BitMask(index)) != 0;
}
void tesseract::BitVector::ResetBit | ( | int | index | ) | [inline] |
Definition at line 66 of file bitvector.h.
{ array_[WordIndex(index)] &= ~BitMask(index); }
bool tesseract::BitVector::Serialize | ( | FILE * | fp | ) | const |
Definition at line 57 of file bitvector.cpp.
{ if (fwrite(&bit_size_, sizeof(bit_size_), 1, fp) != 1) return false; int wordlen = WordLength(); if (fwrite(array_, sizeof(*array_), wordlen, fp) != wordlen) return false; return true; }
void tesseract::BitVector::SetAllFalse | ( | ) |
Definition at line 82 of file bitvector.cpp.
{ memset(array_, 0, ByteLength()); }
void tesseract::BitVector::SetAllTrue | ( | ) |
Definition at line 85 of file bitvector.cpp.
{ memset(array_, ~0, ByteLength()); }
void tesseract::BitVector::SetBit | ( | int | index | ) | [inline] |
Definition at line 63 of file bitvector.h.
{ array_[WordIndex(index)] |= BitMask(index); }
void tesseract::BitVector::SetValue | ( | int | index, |
bool | value | ||
) | [inline] |
Definition at line 69 of file bitvector.h.
int tesseract::BitVector::size | ( | ) | const [inline] |
Definition at line 47 of file bitvector.h.
{
return bit_size_;
}