Package io.undertow.channels
Class DetachableStreamSourceChannel
- java.lang.Object
-
- io.undertow.channels.DetachableStreamSourceChannel
-
- All Implemented Interfaces:
Closeable,AutoCloseable,Channel,InterruptibleChannel,ReadableByteChannel,ScatteringByteChannel,org.xnio.channels.CloseableChannel,org.xnio.channels.Configurable,org.xnio.channels.StreamSourceChannel,org.xnio.channels.SuspendableReadChannel
public abstract class DetachableStreamSourceChannel extends Object implements org.xnio.channels.StreamSourceChannel
A stream source channel that can be marked as detached. Once this is marked as detached then calls will no longer be forwarded to the delegate.- Author:
- Stuart Douglas
-
-
Field Summary
Fields Modifier and Type Field Description protected org.xnio.ChannelListener.SimpleSetter<DetachableStreamSourceChannel>closeSetterprotected org.xnio.channels.StreamSourceChanneldelegateprotected org.xnio.ChannelListener.SimpleSetter<DetachableStreamSourceChannel>readSetter
-
Constructor Summary
Constructors Constructor Description DetachableStreamSourceChannel(org.xnio.channels.StreamSourceChannel delegate)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description voidawaitReadable()voidawaitReadable(long time, TimeUnit timeUnit)voidclose()org.xnio.ChannelListener.Setter<? extends org.xnio.channels.StreamSourceChannel>getCloseSetter()org.xnio.XnioIoThreadgetIoThread()<T> TgetOption(org.xnio.Option<T> option)org.xnio.ChannelListener.Setter<? extends org.xnio.channels.StreamSourceChannel>getReadSetter()org.xnio.XnioExecutorgetReadThread()org.xnio.XnioWorkergetWorker()protected abstract booleanisFinished()booleanisOpen()booleanisReadResumed()intread(ByteBuffer dst)longread(ByteBuffer[] dsts)longread(ByteBuffer[] dsts, int offset, int length)voidresumeReads()<T> TsetOption(org.xnio.Option<T> option, T value)voidshutdownReads()booleansupportsOption(org.xnio.Option<?> option)voidsuspendReads()longtransferTo(long position, long count, FileChannel target)longtransferTo(long count, ByteBuffer throughBuffer, org.xnio.channels.StreamSinkChannel target)voidwakeupReads()
-
-
-
Field Detail
-
delegate
protected final org.xnio.channels.StreamSourceChannel delegate
-
readSetter
protected org.xnio.ChannelListener.SimpleSetter<DetachableStreamSourceChannel> readSetter
-
closeSetter
protected org.xnio.ChannelListener.SimpleSetter<DetachableStreamSourceChannel> closeSetter
-
-
Method Detail
-
isFinished
protected abstract boolean isFinished()
-
resumeReads
public void resumeReads()
- Specified by:
resumeReadsin interfaceorg.xnio.channels.SuspendableReadChannel
-
transferTo
public long transferTo(long position, long count, FileChannel target) throws IOException- Specified by:
transferToin interfaceorg.xnio.channels.StreamSourceChannel- Throws:
IOException
-
awaitReadable
public void awaitReadable() throws IOException- Specified by:
awaitReadablein interfaceorg.xnio.channels.SuspendableReadChannel- Throws:
IOException
-
suspendReads
public void suspendReads()
- Specified by:
suspendReadsin interfaceorg.xnio.channels.SuspendableReadChannel
-
transferTo
public long transferTo(long count, ByteBuffer throughBuffer, org.xnio.channels.StreamSinkChannel target) throws IOException- Specified by:
transferToin interfaceorg.xnio.channels.StreamSourceChannel- Throws:
IOException
-
getWorker
public org.xnio.XnioWorker getWorker()
- Specified by:
getWorkerin interfaceorg.xnio.channels.CloseableChannel
-
isReadResumed
public boolean isReadResumed()
- Specified by:
isReadResumedin interfaceorg.xnio.channels.SuspendableReadChannel
-
setOption
public <T> T setOption(org.xnio.Option<T> option, T value) throws IllegalArgumentException, IOException- Specified by:
setOptionin interfaceorg.xnio.channels.Configurable- Throws:
IllegalArgumentExceptionIOException
-
supportsOption
public boolean supportsOption(org.xnio.Option<?> option)
- Specified by:
supportsOptionin interfaceorg.xnio.channels.Configurable
-
shutdownReads
public void shutdownReads() throws IOException- Specified by:
shutdownReadsin interfaceorg.xnio.channels.SuspendableReadChannel- Throws:
IOException
-
getReadSetter
public org.xnio.ChannelListener.Setter<? extends org.xnio.channels.StreamSourceChannel> getReadSetter()
- Specified by:
getReadSetterin interfaceorg.xnio.channels.StreamSourceChannel- Specified by:
getReadSetterin interfaceorg.xnio.channels.SuspendableReadChannel
-
read
public long read(ByteBuffer[] dsts) throws IOException
- Specified by:
readin interfaceScatteringByteChannel- Throws:
IOException
-
read
public long read(ByteBuffer[] dsts, int offset, int length) throws IOException
- Specified by:
readin interfaceScatteringByteChannel- Throws:
IOException
-
wakeupReads
public void wakeupReads()
- Specified by:
wakeupReadsin interfaceorg.xnio.channels.SuspendableReadChannel
-
getReadThread
public org.xnio.XnioExecutor getReadThread()
- Specified by:
getReadThreadin interfaceorg.xnio.channels.SuspendableReadChannel
-
awaitReadable
public void awaitReadable(long time, TimeUnit timeUnit) throws IOException- Specified by:
awaitReadablein interfaceorg.xnio.channels.SuspendableReadChannel- Throws:
IOException
-
getCloseSetter
public org.xnio.ChannelListener.Setter<? extends org.xnio.channels.StreamSourceChannel> getCloseSetter()
- Specified by:
getCloseSetterin interfaceorg.xnio.channels.CloseableChannel- Specified by:
getCloseSetterin interfaceorg.xnio.channels.StreamSourceChannel- Specified by:
getCloseSetterin interfaceorg.xnio.channels.SuspendableReadChannel
-
close
public void close() throws IOException- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceChannel- Specified by:
closein interfaceCloseable- Specified by:
closein interfaceorg.xnio.channels.CloseableChannel- Specified by:
closein interfaceInterruptibleChannel- Throws:
IOException
-
getOption
public <T> T getOption(org.xnio.Option<T> option) throws IOException- Specified by:
getOptionin interfaceorg.xnio.channels.Configurable- Throws:
IOException
-
read
public int read(ByteBuffer dst) throws IOException
- Specified by:
readin interfaceReadableByteChannel- Throws:
IOException
-
getIoThread
public org.xnio.XnioIoThread getIoThread()
- Specified by:
getIoThreadin interfaceorg.xnio.channels.CloseableChannel
-
-