ALib C++ Library
Library Version: 2402 R1
Documentation generated by doxygen
No Matches
BitBufferMA Class Reference


A bit buffer using monotonic allocation.

See also
Two alternatives are provided with BitBuffer and BitBufferLocal .

Definition at line 529 of file bitbuffer.hpp.

#include <bitbuffer.hpp>

Inheritance diagram for BitBufferMA:
Collaboration diagram for BitBufferMA:

Public Method Index:

 BitBufferMA (std::shared_ptr< MonoAllocator > monoAllocator, uinteger initialCapacity)
virtual uinteger Capacity () const override
virtual bool EnsureCapacity (uinteger bitsRequired, BitBufferBase::Index idx) override
std::shared_ptr< MonoAllocatorGetAllocator ()
- Public Method Index: inherited from BitBufferBase
 BitBufferBase () noexcept
virtual ~BitBufferBase ()
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)

Additional Inherited Members

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

Field Details:

◆ ma

std::shared_ptr<MonoAllocator> ma

An external monotonic allocator to be used internally to allocate the storage provided with construction of this class.

Definition at line 534 of file bitbuffer.hpp.

◆ storage

std::vector<TStorage, alib::StdContMAOptional<TStorage> > storage

The vector that holds the data.

Definition at line 537 of file bitbuffer.hpp.

Constructor(s) / Destructor Details::

◆ BitBufferMA()

BitBufferMA ( std::shared_ptr< MonoAllocator > monoAllocator,
uinteger initialCapacity )

Constructor taking an external monotonic allocator and the initial capacity.

monoAllocatorA reference to a monotonic allocator to use to allocate buffer storage data.
initialCapacityThe requested initial capacity of the buffer in bits.

Definition at line 546 of file bitbuffer.hpp.

Here is the call graph for this function:

Method Details:

◆ Capacity()

virtual uinteger Capacity ( ) const

Returns the (currently allocated) capacity.

The size of the internal storage in bits.

Implements BitBufferBase.

Definition at line 557 of file bitbuffer.hpp.

◆ EnsureCapacity()

virtual bool EnsureCapacity ( uinteger bitsRequired,
BitBufferBase::Index idx )

Checks if the given required storage space is internally reserved. If not, the internal capacity is doubled, or, if more is required, set to the required space.

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

Implements BitBufferBase.

Definition at line 571 of file bitbuffer.hpp.

Here is the call graph for this function:

◆ GetAllocator()

std::shared_ptr< MonoAllocator > GetAllocator ( )

Returns the internal monotonic allocator for external use.

The monotonic allocator given on construction.

Definition at line 586 of file bitbuffer.hpp.

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