Class ModifiableContentSinkConduit

java.lang.Object
org.xnio.conduits.AbstractConduit<D>
org.xnio.conduits.AbstractSinkConduit<D>
org.xnio.conduits.AbstractStreamSinkConduit<org.xnio.conduits.StreamSinkConduit>
org.restheart.handlers.ModifiableContentSinkConduit
All Implemented Interfaces:
org.xnio.conduits.Conduit, org.xnio.conduits.SinkConduit, org.xnio.conduits.StreamSinkConduit

public class ModifiableContentSinkConduit extends org.xnio.conduits.AbstractStreamSinkConduit<org.xnio.conduits.StreamSinkConduit>
A conduit that buffers data allowing to modify it. It is also responsible of executing response interceptors. terminateWrites() is called
Author:
Andrea Di Cesare <[email protected]>
  • Field Summary

    Fields inherited from class org.xnio.conduits.AbstractConduit

    next
  • Constructor Summary

    Constructors
    Constructor
    Description
    ModifiableContentSinkConduit(org.xnio.conduits.StreamSinkConduit next, io.undertow.server.HttpServerExchange exchange)
    Construct a new instance.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
     
    long
    transferFrom(FileChannel src, long position, long count)
     
    long
    transferFrom(org.xnio.channels.StreamSourceChannel source, long count, ByteBuffer throughBuffer)
     
    int
     
    long
    write(ByteBuffer[] dsts, int offs, int len)
     
    int
     
    long
    writeFinal(ByteBuffer[] srcs, int offset, int length)
     

    Methods inherited from class org.xnio.conduits.AbstractSinkConduit

    awaitWritable, awaitWritable, flush, getWriteThread, isWriteResumed, isWriteShutdown, resumeWrites, setWriteReadyHandler, suspendWrites, truncateWrites, wakeupWrites

    Methods inherited from class org.xnio.conduits.AbstractConduit

    getWorker

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface org.xnio.conduits.Conduit

    getWorker

    Methods inherited from interface org.xnio.conduits.SinkConduit

    awaitWritable, awaitWritable, flush, getWriteThread, isWriteResumed, isWriteShutdown, resumeWrites, setWriteReadyHandler, suspendWrites, truncateWrites, wakeupWrites
  • Constructor Details

    • ModifiableContentSinkConduit

      public ModifiableContentSinkConduit(org.xnio.conduits.StreamSinkConduit next, io.undertow.server.HttpServerExchange exchange)
      Construct a new instance.
      Parameters:
      next - the delegate conduit to set
      exchange -
  • Method Details

    • write

      public int write(ByteBuffer src) throws IOException
      Specified by:
      write in interface org.xnio.conduits.StreamSinkConduit
      Overrides:
      write in class org.xnio.conduits.AbstractStreamSinkConduit<org.xnio.conduits.StreamSinkConduit>
      Throws:
      IOException
    • write

      public long write(ByteBuffer[] dsts, int offs, int len) throws IOException
      Specified by:
      write in interface org.xnio.conduits.StreamSinkConduit
      Overrides:
      write in class org.xnio.conduits.AbstractStreamSinkConduit<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
      Overrides:
      transferFrom in class org.xnio.conduits.AbstractStreamSinkConduit<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
      Overrides:
      transferFrom in class org.xnio.conduits.AbstractStreamSinkConduit<org.xnio.conduits.StreamSinkConduit>
      Throws:
      IOException
    • writeFinal

      public int writeFinal(ByteBuffer src) throws IOException
      Specified by:
      writeFinal in interface org.xnio.conduits.StreamSinkConduit
      Overrides:
      writeFinal in class org.xnio.conduits.AbstractStreamSinkConduit<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
      Overrides:
      writeFinal in class org.xnio.conduits.AbstractStreamSinkConduit<org.xnio.conduits.StreamSinkConduit>
      Throws:
      IOException
    • terminateWrites

      public void terminateWrites() throws IOException
      Specified by:
      terminateWrites in interface org.xnio.conduits.SinkConduit
      Overrides:
      terminateWrites in class org.xnio.conduits.AbstractSinkConduit<org.xnio.conduits.StreamSinkConduit>
      Throws:
      IOException