Exemple #1
0
        public void HuffmanCompression()
        {
            var compressor = new HuffmanCompressionProcessor();

            const string input = "cabacabaababbababcacacacaedfghijklmnopqrstuvwxyz"
                                 + "Adsasd131221453!~[]{}{}~~`\'\\!@#$%^&*()_+=90klasdmnvzxcciuhakdkasdfioads"
                                 + "ADBSADLGUCJNZCXNJSLKDGYSADHIASDMNKJLDBOCXBVCXJIMSAD<NSKLDBHCBIUXHCXZNCMSN"
                                 + ",<>?|";

            var inputBytes = Encoding.UTF8.GetBytes(input);

            var now = DateTime.Now.Millisecond;

            var compressed   = compressor.Compress(inputBytes);
            var decompressed = compressor.Decompress(compressed);

            var newNow = DateTime.Now.Millisecond;

            var output = Encoding.UTF8.GetString(decompressed);

            Assert.Equal(input, output);

            Console.WriteLine("Compress/decompress time: " + (newNow - now));
            Console.WriteLine("Input length: " + input.Length);
        }
Exemple #2
0
        public CompressionProcessor()
        {
            /* 12 -> 6.5.2
             * The initial value is 4,096 bytes. */
            _maxHeaderByteSize = 4096;
            _isSettingHeaderTableSizeReceived = false;

            /* 07 -> 3.1.2
             * The header table is initially empty. */
            _remoteHeadersTable = new HeadersList();
            _localHeadersTable  = new HeadersList();

            _remoteRefSet = new HeadersList();
            _localRefSet  = new HeadersList();

            _huffmanProc = new HuffmanCompressionProcessor();

            InitCompressor();
            InitDecompressor();
        }