Class HPackHuffman


  • public class HPackHuffman
    extends java.lang.Object
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      protected static class  HPackHuffman.HuffmanCode  
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected static StringManager sm  
    • Constructor Summary

      Constructors 
      Constructor Description
      HPackHuffman()  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static void decode​(java.nio.ByteBuffer data, int length, java.lang.StringBuilder target)
      Decodes a huffman encoded string into the target StringBuilder.
      static boolean encode​(java.nio.ByteBuffer buffer, java.lang.String toEncode, boolean forceLowercase)
      Encodes the given string into the buffer.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • HPackHuffman

        public HPackHuffman()
    • Method Detail

      • decode

        public static void decode​(java.nio.ByteBuffer data,
                                  int length,
                                  java.lang.StringBuilder target)
                           throws org.apache.coyote.http2.HpackException
        Decodes a huffman encoded string into the target StringBuilder. There must be enough space left in the buffer for this method to succeed.
        Parameters:
        data - The byte buffer
        length - The length of data from the buffer to decode
        target - The target for the decompressed data
        Throws:
        org.apache.coyote.http2.HpackException - If the Huffman encoded value in HPACK headers did not end with EOS padding
      • encode

        public static boolean encode​(java.nio.ByteBuffer buffer,
                                     java.lang.String toEncode,
                                     boolean forceLowercase)
        Encodes the given string into the buffer. If there is not enough space in the buffer, or the encoded version is bigger than the original it will return false and not modify the buffers position.
        Parameters:
        buffer - The buffer to encode into
        toEncode - The string to encode
        forceLowercase - If the string should be encoded in lower case
        Returns:
        true if encoding succeeded