ALib C++ Library
Library Version: 2412 R0
Documentation generated by doxygen
Loading...
Searching...
No Matches
BitBufferLocal< TCapacity > Class Template Reference

Description:

template<uinteger TCapacity>
class alib::bitbuffer::BitBufferLocal< TCapacity >

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.

See also
Two alternatives are provided with BitBuffer and BitBufferMA.
Template Parameters
TCapacityThe number of bits to reserve internally

Definition at line 562 of file bitbuffer.hpp.

#include <bitbuffer.hpp>

Inheritance diagram for BitBufferLocal< TCapacity >:
[legend]
Collaboration diagram for BitBufferLocal< TCapacity >:
[legend]

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))
 
TStorageData () 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
TStoragedata
 

Additional Inherited Members

- Public Type Index: inherited from BitBufferBase
using TStorage = unsigned int
 

Field Details:

◆ storage

template<uinteger TCapacity>
TStorage storage[(TCapacity+bitsof(TStorage) - 1)/bitsof(TStorage)]
protected

The array that holds the data.

Definition at line 566 of file bitbuffer.hpp.

Constructor(s) / Destructor Details:

◆ BitBufferLocal()

template<uinteger TCapacity>
BitBufferLocal ( )
inlinenoexcept

Constructor.

Definition at line 572 of file bitbuffer.hpp.

Method Details:

◆ Capacity()

template<uinteger TCapacity>
virtual uinteger Capacity ( ) const
inlineoverridevirtual

Returns the (in this case fixed size!) capacity.

Returns
The size of the internal storage in bits.

Implements BitBufferBase.

Definition at line 581 of file bitbuffer.hpp.

◆ EnsureCapacity()

template<uinteger TCapacity>
virtual bool EnsureCapacity ( uinteger bitsRequired,
BitBufferBase::Index idx )
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.

Parameters
bitsRequiredThe number of bits required.
idxThe index of current buffer use.
Returns
true if the space is available or could be made available, false otherwise.

Implements BitBufferBase.

Definition at line 596 of file bitbuffer.hpp.

Here is the call graph for this function:

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