A bit buffer using local storage, which means a fixed size internal array. If used as function member, the storage is located on the stack and hence its size has platform-specific limitations.
This class is useful to read and write smaller pieces of data, for example header information of binary data files which furthermore are filled/loaded with bit buffers using of other memory allocations.
TCapacity | The number of bits to reserve internally |
Definition at line 562 of file bitbuffer.hpp.
#include <bitbuffer.hpp>
Public Method Index: | |
BitBufferLocal () noexcept | |
Constructor. | |
virtual uinteger | Capacity () const override |
virtual bool | EnsureCapacity (uinteger bitsRequired, BitBufferBase::Index idx) override |
Public Method Index: inherited from BitBufferBase | |
BitBufferBase () noexcept | |
Default Constructor (the only one). | |
virtual | ~BitBufferBase () |
Virtual destructor (does nothing, needed for abstract virtual class). | |
char * | CharStream (Index idx=Index(0, 0)) |
TStorage * | Data () const |
ALIB_API void | FromLittleEndianEncoding (const Index &startIndex, const Index &endIndex) |
TStorage | GetWord (const Index &index) const |
uinteger | RemainingSize (const Index &idx) const |
void | SetWord (const Index &index, TStorage value) |
ALIB_API Index | Terminate (Index writerIndex) |
ALIB_API void | ToLittleEndianEncoding (const Index &startIndex, const Index &endIndex) |
ALIB_API Index | Unterminate (Index terminationIndex) |
Protected Field Index: | |
TStorage | storage [(TCapacity+bitsof(TStorage) - 1)/bitsof(TStorage)] |
The array that holds the data. | |
Protected Field Index: inherited from BitBufferBase | |
TStorage * | data |
Additional Inherited Members | |
Public Type Index: inherited from BitBufferBase | |
using | TStorage = unsigned int |
|
protected |
The array that holds the data.
Definition at line 566 of file bitbuffer.hpp.
|
inlinenoexcept |
Constructor.
Definition at line 572 of file bitbuffer.hpp.
Returns the (in this case fixed size!) capacity.
Implements BitBufferBase.
Definition at line 581 of file bitbuffer.hpp.
|
inlineoverridevirtual |
Checks if the given required storage space is internally reserved. If not, in debug compilations, an ALib assertion is raised, as this is a fixed size buffer.
bitsRequired | The number of bits required. |
idx | The index of current buffer use. |
true
if the space is available or could be made available, false
otherwise. Implements BitBufferBase.
Definition at line 596 of file bitbuffer.hpp.