Tesseract  3.02
tesseract::BitVector Class Reference

#include <bitvector.h>

List of all members.

Public Member Functions

 BitVector ()
 BitVector (int length)
 BitVector (const BitVector &src)
BitVectoroperator= (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

Detailed Description

Definition at line 34 of file bitvector.h.


Constructor & Destructor Documentation

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_;
}

Member Function Documentation

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();
}
BitVector & tesseract::BitVector::operator= ( const BitVector src)

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.

                                       {
    if (value)
      SetBit(index);
    else
      ResetBit(index);
  }
int tesseract::BitVector::size ( ) const [inline]

Definition at line 47 of file bitvector.h.

                   {
    return bit_size_;
  }

The documentation for this class was generated from the following files: