Class CompressExtension

    • Field Detail

      • TAIL_BYTES

        protected static final byte[] TAIL_BYTES
      • TAIL_BYTES_BUF

        protected static final java.nio.ByteBuffer TAIL_BYTES_BUF
      • LOG

        private static final org.eclipse.jetty.util.log.Logger LOG
      • TAIL_DROP_NEVER

        protected static final int TAIL_DROP_NEVER
        Never drop tail bytes 0000FFFF, from any frame type
        See Also:
        Constant Field Values
      • TAIL_DROP_ALWAYS

        protected static final int TAIL_DROP_ALWAYS
        Always drop tail bytes 0000FFFF, from all frame types
        See Also:
        Constant Field Values
      • TAIL_DROP_FIN_ONLY

        protected static final int TAIL_DROP_FIN_ONLY
        Only drop tail bytes 0000FFFF, from fin==true frames
        See Also:
        Constant Field Values
      • RSV_USE_ALWAYS

        protected static final int RSV_USE_ALWAYS
        Always set RSV flag, on all frame types
        See Also:
        Constant Field Values
      • RSV_USE_ONLY_FIRST

        protected static final int RSV_USE_ONLY_FIRST
        Only set RSV flag on first frame in multi-frame messages.

        Note: this automatically means no-continuation frames have the RSV bit set

        See Also:
        Constant Field Values
      • INFLATE_BUFFER_SIZE

        protected static final int INFLATE_BUFFER_SIZE
        Inflater / Decompressed Buffer Size
        See Also:
        Constant Field Values
      • INPUT_MAX_BUFFER_SIZE

        protected static final int INPUT_MAX_BUFFER_SIZE
        Deflater / Inflater: Maximum Input Buffer Size
        See Also:
        Constant Field Values
      • DECOMPRESS_BUF_SIZE

        private static final int DECOMPRESS_BUF_SIZE
        Inflater : Output Buffer Size
        See Also:
        Constant Field Values
      • flusher

        private final org.eclipse.jetty.util.IteratingCallback flusher
      • deflaterPool

        private org.eclipse.jetty.util.compression.DeflaterPool deflaterPool
      • inflaterPool

        private org.eclipse.jetty.util.compression.InflaterPool inflaterPool
      • deflaterImpl

        private java.util.zip.Deflater deflaterImpl
      • inflaterImpl

        private java.util.zip.Inflater inflaterImpl
      • decompressCount

        protected java.util.concurrent.atomic.AtomicInteger decompressCount
      • tailDrop

        private int tailDrop
      • rsvUse

        private int rsvUse
    • Constructor Detail

      • CompressExtension

        protected CompressExtension()
    • Method Detail

      • setInflaterPool

        public void setInflaterPool​(org.eclipse.jetty.util.compression.InflaterPool inflaterPool)
      • setDeflaterPool

        public void setDeflaterPool​(org.eclipse.jetty.util.compression.DeflaterPool deflaterPool)
      • getDeflater

        public java.util.zip.Deflater getDeflater()
      • getInflater

        public java.util.zip.Inflater getInflater()
      • isRsv1User

        public boolean isRsv1User()
        Indicates use of RSV1 flag for indicating deflation is in use.
        Specified by:
        isRsv1User in interface Extension
        Overrides:
        isRsv1User in class AbstractExtension
        Returns:
        true if extension uses RSV1 for its own purposes.
      • getRsvUseMode

        abstract int getRsvUseMode()
        Return the mode of operation for RSV flag use in frames generate by compress (outgoing)
        Returns:
        either RSV_USE_ALWAYS or RSV_USE_ONLY_FIRST
      • decompress

        protected void decompress​(ByteAccumulator accumulator,
                                  java.nio.ByteBuffer buf)
                           throws java.util.zip.DataFormatException
        Throws:
        java.util.zip.DataFormatException
      • outgoingFrame

        public void outgoingFrame​(Frame frame,
                                  WriteCallback callback,
                                  BatchMode batchMode)
        Description copied from interface: OutgoingFrames
        A frame, and optional callback, intended for the network layer.

        Note: the frame can undergo many transformations in the various layers and extensions present in the implementation.

        If you are implementing a mutation, you are obliged to handle the incoming WriteCallback appropriately.

        Parameters:
        frame - the frame to eventually write to the network layer.
        callback - the callback to notify when the frame is written.
        batchMode - the batch mode requested by the sender.
      • notifyCallbackSuccess

        protected void notifyCallbackSuccess​(WriteCallback callback)
      • notifyCallbackFailure

        protected void notifyCallbackFailure​(WriteCallback callback,
                                             java.lang.Throwable failure)
      • supplyInput

        private static boolean supplyInput​(java.util.zip.Inflater inflater,
                                           java.nio.ByteBuffer buf)
      • supplyInput

        private static boolean supplyInput​(java.util.zip.Deflater deflater,
                                           java.nio.ByteBuffer buf)
      • toDetail

        private static java.lang.String toDetail​(java.util.zip.Inflater inflater)
      • toDetail

        private static java.lang.String toDetail​(java.util.zip.Deflater deflater)
      • endsWithTail

        public static boolean endsWithTail​(java.nio.ByteBuffer buf)
      • doStop

        protected void doStop()
                       throws java.lang.Exception
        Overrides:
        doStop in class org.eclipse.jetty.util.component.AbstractLifeCycle
        Throws:
        java.lang.Exception