6#ifndef HUFFMANENCODER_HPP
7#define HUFFMANENCODER_HPP
uint8_t space_left
Indicates the remaining unused bits in the current buffer element.
Definition HuffmanEncoder.hpp:34
const HuffmanTree * tree
Pointer to the Huffman tree used for encoding.
Definition HuffmanEncoder.hpp:44
HuffmanEncoder(const string &fn, const HuffmanTree *root)
Constructs a HuffmanEncoder with output file and tree reference.
Definition HuffmanEncoder.cpp:83
void writeHeader()
Writes the header of the encoded file, including code map sizes and padding info.
Definition HuffmanEncoder.cpp:5
void writeEncodedString()
Encodes the string using the Huffman tree and writes the resulting bitstream.
Definition HuffmanEncoder.cpp:50
void insertToBuffer(const bitset< 32 > &code)
Inserts a 32-bit code into the internal buffer, managing space and alignment.
Definition HuffmanEncoder.cpp:130
vector< u_int32_t > buffer
A buffer that stores 32-bit chunks of the encoded bitstream.
Definition HuffmanEncoder.hpp:29
void writeMapToBinary()
Serializes the Huffman code maps (8b/16b/32b) to the output file in binary format.
Definition HuffmanEncoder.cpp:16
ofstream outFile
Output file stream to which encoded data is written.
Definition HuffmanEncoder.hpp:39
void encodeToFile(const vector< uint8_t > str)
Encodes a byte vector and writes it to the output file.
Definition HuffmanEncoder.cpp:91
Constructs and manages a Huffman tree for encoding.
Definition Huffman.hpp:94