// Copyright 2016 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef NET_TOOLS_HUFFMAN_TRIE_HUFFMAN_HUFFMAN_BUILDER_H_ #define NET_TOOLS_HUFFMAN_TRIE_HUFFMAN_HUFFMAN_BUILDER_H_ #include <stdint.h> #include <map> #include <memory> #include <vector> namespace net::huffman_trie { namespace { class HuffmanNode; } // namespace struct HuffmanRepresentation { … }; // A HuffmanRepresentationTable maps the original characters to their Huffman // representation. The Huffman representation consists of the number of bits // needed to represent the character and the actual bits. HuffmanRepresentationTable; HuffmanRepresentationPair; // This class tracks the number of times each character is used and calculates // a space efficient way to represent all tracked characters by constructing a // Huffman tree based on the number of times each character is seen. class HuffmanBuilder { … }; } // namespace net::huffman_trie #endif // NET_TOOLS_HUFFMAN_TRIE_HUFFMAN_HUFFMAN_BUILDER_H_