Package io.undertow.channels
Class DetachableStreamSinkChannel
- java.lang.Object
-
- io.undertow.channels.DetachableStreamSinkChannel
-
- All Implemented Interfaces:
Closeable
,AutoCloseable
,Channel
,GatheringByteChannel
,InterruptibleChannel
,WritableByteChannel
,org.xnio.channels.CloseableChannel
,org.xnio.channels.Configurable
,org.xnio.channels.StreamSinkChannel
,org.xnio.channels.SuspendableWriteChannel
public abstract class DetachableStreamSinkChannel extends Object implements org.xnio.channels.StreamSinkChannel
Stream sink channel. When this channel is considered detached it will no longer forward calls to the delegate- Author:
- Stuart Douglas
-
-
Field Summary
Fields Modifier and Type Field Description protected org.xnio.ChannelListener.SimpleSetter<DetachableStreamSinkChannel>
closeSetter
protected org.xnio.channels.StreamSinkChannel
delegate
protected org.xnio.ChannelListener.SimpleSetter<DetachableStreamSinkChannel>
writeSetter
-
Constructor Summary
Constructors Constructor Description DetachableStreamSinkChannel(org.xnio.channels.StreamSinkChannel delegate)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
awaitWritable()
void
awaitWritable(long time, TimeUnit timeUnit)
void
close()
boolean
flush()
org.xnio.ChannelListener.Setter<? extends org.xnio.channels.StreamSinkChannel>
getCloseSetter()
org.xnio.XnioIoThread
getIoThread()
<T> T
getOption(org.xnio.Option<T> option)
org.xnio.XnioWorker
getWorker()
org.xnio.ChannelListener.Setter<? extends org.xnio.channels.StreamSinkChannel>
getWriteSetter()
org.xnio.XnioExecutor
getWriteThread()
protected abstract boolean
isFinished()
boolean
isOpen()
boolean
isWriteResumed()
void
responseDone()
void
resumeWrites()
<T> T
setOption(org.xnio.Option<T> option, T value)
void
shutdownWrites()
boolean
supportsOption(org.xnio.Option<?> option)
void
suspendWrites()
long
transferFrom(FileChannel src, long position, long count)
long
transferFrom(org.xnio.channels.StreamSourceChannel source, long count, ByteBuffer throughBuffer)
void
wakeupWrites()
int
write(ByteBuffer src)
long
write(ByteBuffer[] srcs)
long
write(ByteBuffer[] srcs, int offset, int length)
int
writeFinal(ByteBuffer src)
long
writeFinal(ByteBuffer[] srcs)
long
writeFinal(ByteBuffer[] srcs, int offset, int length)
-
-
-
Field Detail
-
delegate
protected final org.xnio.channels.StreamSinkChannel delegate
-
writeSetter
protected org.xnio.ChannelListener.SimpleSetter<DetachableStreamSinkChannel> writeSetter
-
closeSetter
protected org.xnio.ChannelListener.SimpleSetter<DetachableStreamSinkChannel> closeSetter
-
-
Method Detail
-
isFinished
protected abstract boolean isFinished()
-
suspendWrites
public void suspendWrites()
- Specified by:
suspendWrites
in interfaceorg.xnio.channels.SuspendableWriteChannel
-
isWriteResumed
public boolean isWriteResumed()
- Specified by:
isWriteResumed
in interfaceorg.xnio.channels.SuspendableWriteChannel
-
shutdownWrites
public void shutdownWrites() throws IOException
- Specified by:
shutdownWrites
in interfaceorg.xnio.channels.SuspendableWriteChannel
- Throws:
IOException
-
awaitWritable
public void awaitWritable() throws IOException
- Specified by:
awaitWritable
in interfaceorg.xnio.channels.SuspendableWriteChannel
- Throws:
IOException
-
awaitWritable
public void awaitWritable(long time, TimeUnit timeUnit) throws IOException
- Specified by:
awaitWritable
in interfaceorg.xnio.channels.SuspendableWriteChannel
- Throws:
IOException
-
getWriteThread
public org.xnio.XnioExecutor getWriteThread()
- Specified by:
getWriteThread
in interfaceorg.xnio.channels.SuspendableWriteChannel
-
isOpen
public boolean isOpen()
-
close
public void close() throws IOException
- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceChannel
- Specified by:
close
in interfaceCloseable
- Specified by:
close
in interfaceorg.xnio.channels.CloseableChannel
- Specified by:
close
in interfaceInterruptibleChannel
- Specified by:
close
in interfaceorg.xnio.channels.SuspendableWriteChannel
- Throws:
IOException
-
flush
public boolean flush() throws IOException
- Specified by:
flush
in interfaceorg.xnio.channels.SuspendableWriteChannel
- Throws:
IOException
-
transferFrom
public long transferFrom(FileChannel src, long position, long count) throws IOException
- Specified by:
transferFrom
in interfaceorg.xnio.channels.StreamSinkChannel
- Throws:
IOException
-
transferFrom
public long transferFrom(org.xnio.channels.StreamSourceChannel source, long count, ByteBuffer throughBuffer) throws IOException
- Specified by:
transferFrom
in interfaceorg.xnio.channels.StreamSinkChannel
- Throws:
IOException
-
getWriteSetter
public org.xnio.ChannelListener.Setter<? extends org.xnio.channels.StreamSinkChannel> getWriteSetter()
- Specified by:
getWriteSetter
in interfaceorg.xnio.channels.StreamSinkChannel
- Specified by:
getWriteSetter
in interfaceorg.xnio.channels.SuspendableWriteChannel
-
getCloseSetter
public org.xnio.ChannelListener.Setter<? extends org.xnio.channels.StreamSinkChannel> getCloseSetter()
- Specified by:
getCloseSetter
in interfaceorg.xnio.channels.CloseableChannel
- Specified by:
getCloseSetter
in interfaceorg.xnio.channels.StreamSinkChannel
- Specified by:
getCloseSetter
in interfaceorg.xnio.channels.SuspendableWriteChannel
-
getWorker
public org.xnio.XnioWorker getWorker()
- Specified by:
getWorker
in interfaceorg.xnio.channels.CloseableChannel
-
getIoThread
public org.xnio.XnioIoThread getIoThread()
- Specified by:
getIoThread
in interfaceorg.xnio.channels.CloseableChannel
-
write
public long write(ByteBuffer[] srcs, int offset, int length) throws IOException
- Specified by:
write
in interfaceGatheringByteChannel
- Throws:
IOException
-
write
public long write(ByteBuffer[] srcs) throws IOException
- Specified by:
write
in interfaceGatheringByteChannel
- Throws:
IOException
-
writeFinal
public int writeFinal(ByteBuffer src) throws IOException
- Specified by:
writeFinal
in interfaceorg.xnio.channels.StreamSinkChannel
- Throws:
IOException
-
writeFinal
public long writeFinal(ByteBuffer[] srcs, int offset, int length) throws IOException
- Specified by:
writeFinal
in interfaceorg.xnio.channels.StreamSinkChannel
- Throws:
IOException
-
writeFinal
public long writeFinal(ByteBuffer[] srcs) throws IOException
- Specified by:
writeFinal
in interfaceorg.xnio.channels.StreamSinkChannel
- Throws:
IOException
-
supportsOption
public boolean supportsOption(org.xnio.Option<?> option)
- Specified by:
supportsOption
in interfaceorg.xnio.channels.Configurable
-
getOption
public <T> T getOption(org.xnio.Option<T> option) throws IOException
- Specified by:
getOption
in interfaceorg.xnio.channels.Configurable
- Throws:
IOException
-
setOption
public <T> T setOption(org.xnio.Option<T> option, T value) throws IllegalArgumentException, IOException
- Specified by:
setOption
in interfaceorg.xnio.channels.Configurable
- Throws:
IllegalArgumentException
IOException
-
write
public int write(ByteBuffer src) throws IOException
- Specified by:
write
in interfaceWritableByteChannel
- Throws:
IOException
-
resumeWrites
public void resumeWrites()
- Specified by:
resumeWrites
in interfaceorg.xnio.channels.SuspendableWriteChannel
-
wakeupWrites
public void wakeupWrites()
- Specified by:
wakeupWrites
in interfaceorg.xnio.channels.SuspendableWriteChannel
-
responseDone
public void responseDone()
-
-