This class defines a set of bit fields of the same length which are to be stored in a contiguous piece of memory to avoid multiple memory allocation/deallocation. More...
#include <chomp/struct/bitfield.h>
Public Member Functions | |
SetOfBitFields (int_t len, int_t maxelem) | |
The constructor of a set of a fixed maximal number of bit fields, each of the same length. | |
~SetOfBitFields () | |
The destructor. | |
int | add (const BitField &b, int value) |
Adds a bit field to the set. | |
int | check (const BitField &b) const |
Returns the value of the given bit field value or return -1 if the bit field is not in the set. | |
int | used (void) const |
Returns the number of bit fields contained in the set. | |
void | forget () |
Forgets all the bit fields and deallocates the memory. | |
Private Attributes | |
int | avail |
The number of bit fields that still can be stored. | |
int | usedcount |
The number of bit fields used. | |
int_t | size |
The actual size of the table. | |
int_t | length |
The length of bit fields. | |
BitField * | bf |
The table of bit fields. | |
BitField | values |
The values of bit fields. | |
unsigned char * | buf |
The memory buffer used for bit fields. | |
unsigned char * | bufcur |
The current position in the buffer. |
This class defines a set of bit fields of the same length which are to be stored in a contiguous piece of memory to avoid multiple memory allocation/deallocation.
Each bit field in the set is assigned a value 1 or 0. Hashing is used for quick retrieval of the values of bit fields.
Definition at line 243 of file bitfield.h.
chomp::homology::SetOfBitFields::SetOfBitFields | ( | int_t | len, |
int_t | maxelem | ||
) |
The constructor of a set of a fixed maximal number of bit fields, each of the same length.
The set is initially empty.
chomp::homology::SetOfBitFields::~SetOfBitFields | ( | ) | [inline] |
int chomp::homology::SetOfBitFields::add | ( | const BitField & | b, |
int | value | ||
) |
Adds a bit field to the set.
If it already was there then returns its value. If there is no room available for the bit field then returns -1. Otherwise returns 2.
int chomp::homology::SetOfBitFields::check | ( | const BitField & | b ) | const |
Returns the value of the given bit field value or return -1 if the bit field is not in the set.
void chomp::homology::SetOfBitFields::forget | ( | ) | [inline] |
int chomp::homology::SetOfBitFields::used | ( | void | ) | const [inline] |
Returns the number of bit fields contained in the set.
Definition at line 308 of file bitfield.h.
References usedcount.
int chomp::homology::SetOfBitFields::avail [private] |
The number of bit fields that still can be stored.
Definition at line 270 of file bitfield.h.
Referenced by forget().
BitField* chomp::homology::SetOfBitFields::bf [private] |
The table of bit fields.
Definition at line 282 of file bitfield.h.
Referenced by forget(), and ~SetOfBitFields().
unsigned char* chomp::homology::SetOfBitFields::buf [private] |
The memory buffer used for bit fields.
Definition at line 288 of file bitfield.h.
Referenced by forget(), and ~SetOfBitFields().
unsigned char* chomp::homology::SetOfBitFields::bufcur [private] |
The current position in the buffer.
Definition at line 291 of file bitfield.h.
int_t chomp::homology::SetOfBitFields::length [private] |
The length of bit fields.
Definition at line 279 of file bitfield.h.
Referenced by forget(), and ~SetOfBitFields().
int_t chomp::homology::SetOfBitFields::size [private] |
int chomp::homology::SetOfBitFields::usedcount [private] |
The values of bit fields.
Definition at line 285 of file bitfield.h.
Referenced by forget(), and ~SetOfBitFields().