Israel Ors' HuffmanAlgorithm Documentation

JadBenAutho.Tools Namespace

This Namespace holds the HuffmanAlgorithm object, that enables easy extracting\archiving operations on any type of stream.

Namespace hierarchy

Classes

Class Description
HuffmanAlgorithm Implementing the Huffman shrinking algorithm. This algorithm was ment to be highly fast efficient, it's supports Data streams with size of up to 2^32 - 1 bytes.
HuffmanAlgorithm.FileHeader This is the file/stream header that attached to each archived file or stream at the begining.
HuffmanAlgorithm.FrequencyTable FrequencyTable build from bytes and their repeatition in the stream. this is achieved by using 2 arrays with the of same size.
HuffmanAlgorithm.HuffmanTree HuffmanTree is the iplementation of a Huffman algorithm tree. It's used to translate bytes to bits sequence when archiving, and bits sequence to bytes when extracting.
HuffmanAlgorithm.TreeNode This is a node that the HuffmanTree made of. It's used to translate bytes to bits sequence when archiving, and bits sequence to bytes when extracting.

Structures

Structure Description
HuffmanAlgorithm.BitsStack This is a stack of 8 bits (1 byte) uses to manipulate the bits of a stream(when been extracted or archived). It's pushing and poping acts more like a queue then a stack.

Delegates

Delegate Description
PercentCompletedEventHandler Invoked from all xxxxWithProgress functions whenever another 1 percent of the function is done.
WrongPasswordEventHandler Handles attempt to extract archive that is protected with password, by using wrong password.