ATLAS Offline Software
|
Pack a set of values bitwise into a stream. More...
#include <BitPacker.h>
Public Member Functions | |
BitPacker (uint8_t nbits, STREAM &stream) | |
Constructor. More... | |
~BitPacker () | |
Destructor. More... | |
void | pack (uint32_t x) |
Pack one value to the stream. More... | |
Private Attributes | |
uint32_t | m_buf |
Buffer for the current words being packed. More... | |
uint8_t | m_nbuf |
Number of valid bits currently buffered. More... | |
uint8_t | m_nbits |
Number of bits to use for each item. More... | |
STREAM & | m_stream |
The output stream. More... | |
Pack a set of values bitwise into a stream.
This helper can be used to pack a set of values into 32-bit words and write them to a stream. The number of bits taken by each value is configurable.
STREAM
should support output (operator<<) with uint32_t
(satisfied by a ROOT TBuffer).
Definition at line 38 of file BitPacker.h.
CxxUtils::BitPacker< STREAM >::BitPacker | ( | uint8_t | nbits, |
STREAM & | stream | ||
) |
Constructor.
nbits | Number of bits per item to use in the packed representation. |
stream | Output stream object. |
CxxUtils::BitPacker< STREAM >::~BitPacker | ( | ) |
Destructor.
This may flush buffered data to the output stream.
void CxxUtils::BitPacker< STREAM >::pack | ( | uint32_t | x | ) |
Pack one value to the stream.
x | The value to pack. The upper bits should all be clear. |
|
private |
Buffer for the current words being packed.
Definition at line 67 of file BitPacker.h.
|
private |
Number of bits to use for each item.
Definition at line 73 of file BitPacker.h.
|
private |
Number of valid bits currently buffered.
Definition at line 70 of file BitPacker.h.
|
private |
The output stream.
Definition at line 76 of file BitPacker.h.