Class DeflatingStreamSinkConduit

java.lang.Object
io.undertow.conduits.DeflatingStreamSinkConduit
All Implemented Interfaces:
org.xnio.conduits.Conduit, org.xnio.conduits.SinkConduit, org.xnio.conduits.StreamSinkConduit
Direct Known Subclasses:
GzipStreamSinkConduit

public class DeflatingStreamSinkConduit extends Object implements org.xnio.conduits.StreamSinkConduit
Channel that handles deflate compression
Author:
Stuart Douglas
  • Field Details

    • deflater

      protected volatile Deflater deflater
    • pooledObject

      protected final PooledObject<Deflater> pooledObject
    • currentBuffer

      protected PooledByteBuffer currentBuffer
      The streams buffer. This is freed when the next is shutdown
  • Constructor Details

  • Method Details

    • newInstanceDeflaterPool

      public static ObjectPool<Deflater> newInstanceDeflaterPool(int deflateLevel)
    • simpleDeflaterPool

      public static ObjectPool<Deflater> simpleDeflaterPool(int poolSize, int deflateLevel)
    • write

      public int write(ByteBuffer src) throws IOException
      Specified by:
      write in interface org.xnio.conduits.StreamSinkConduit
      Throws:
      IOException
    • preDeflate

      protected void preDeflate(byte[] data)
    • write

      public long write(ByteBuffer[] srcs, int offset, int length) throws IOException
      Specified by:
      write in interface org.xnio.conduits.StreamSinkConduit
      Throws:
      IOException
    • writeFinal

      public int writeFinal(ByteBuffer src) throws IOException
      Specified by:
      writeFinal in interface org.xnio.conduits.StreamSinkConduit
      Throws:
      IOException
    • writeFinal

      public long writeFinal(ByteBuffer[] srcs, int offset, int length) throws IOException
      Specified by:
      writeFinal in interface org.xnio.conduits.StreamSinkConduit
      Throws:
      IOException
    • transferFrom

      public long transferFrom(FileChannel src, long position, long count) throws IOException
      Specified by:
      transferFrom in interface org.xnio.conduits.StreamSinkConduit
      Throws:
      IOException
    • transferFrom

      public long transferFrom(org.xnio.channels.StreamSourceChannel source, long count, ByteBuffer throughBuffer) throws IOException
      Specified by:
      transferFrom in interface org.xnio.conduits.StreamSinkConduit
      Throws:
      IOException
    • getWorker

      public org.xnio.XnioWorker getWorker()
      Specified by:
      getWorker in interface org.xnio.conduits.Conduit
    • suspendWrites

      public void suspendWrites()
      Specified by:
      suspendWrites in interface org.xnio.conduits.SinkConduit
    • isWriteResumed

      public boolean isWriteResumed()
      Specified by:
      isWriteResumed in interface org.xnio.conduits.SinkConduit
    • wakeupWrites

      public void wakeupWrites()
      Specified by:
      wakeupWrites in interface org.xnio.conduits.SinkConduit
    • resumeWrites

      public void resumeWrites()
      Specified by:
      resumeWrites in interface org.xnio.conduits.SinkConduit
    • terminateWrites

      public void terminateWrites() throws IOException
      Specified by:
      terminateWrites in interface org.xnio.conduits.SinkConduit
      Throws:
      IOException
    • isWriteShutdown

      public boolean isWriteShutdown()
      Specified by:
      isWriteShutdown in interface org.xnio.conduits.SinkConduit
    • awaitWritable

      public void awaitWritable() throws IOException
      Specified by:
      awaitWritable in interface org.xnio.conduits.SinkConduit
      Throws:
      IOException
    • awaitWritable

      public void awaitWritable(long time, TimeUnit timeUnit) throws IOException
      Specified by:
      awaitWritable in interface org.xnio.conduits.SinkConduit
      Throws:
      IOException
    • getWriteThread

      public org.xnio.XnioIoThread getWriteThread()
      Specified by:
      getWriteThread in interface org.xnio.conduits.SinkConduit
    • setWriteReadyHandler

      public void setWriteReadyHandler(org.xnio.conduits.WriteReadyHandler handler)
      Specified by:
      setWriteReadyHandler in interface org.xnio.conduits.SinkConduit
    • flush

      public boolean flush() throws IOException
      Specified by:
      flush in interface org.xnio.conduits.SinkConduit
      Throws:
      IOException
    • getTrailer

      protected byte[] getTrailer()
      called before the stream is finally flushed.
    • truncateWrites

      public void truncateWrites() throws IOException
      Specified by:
      truncateWrites in interface org.xnio.conduits.SinkConduit
      Throws:
      IOException