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 548 of file bitbuffer.inl.
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 alib::bitbuffer::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_DLL 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_DLL Index | Terminate (Index writerIndex) |
| ALIB_DLL void | ToLittleEndianEncoding (const Index &startIndex, const Index &endIndex) |
| ALIB_DLL 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 alib::bitbuffer::BitBufferBase | |
| TStorage * | data |
Additional Inherited Members | |
Public Type Index: inherited from alib::bitbuffer::BitBufferBase | |
| using | TStorage = unsigned int |
|
protected |
The array that holds the data.
Definition at line 552 of file bitbuffer.inl.
|
inlinenoexcept |
Constructor.
Definition at line 558 of file bitbuffer.inl.
|
inlineoverridevirtual |
Returns the (in this case fixed size!) capacity.
Implements alib::bitbuffer::BitBufferBase.
Definition at line 567 of file bitbuffer.inl.
|
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 alib::bitbuffer::BitBufferBase.
Definition at line 582 of file bitbuffer.inl.