Package io.undertow.channels
Class DetachableStreamSourceChannel
- java.lang.Object
-
- io.undertow.channels.DetachableStreamSourceChannel
-
- All Implemented Interfaces:
java.io.Closeable
,java.lang.AutoCloseable
,java.nio.channels.Channel
,java.nio.channels.InterruptibleChannel
,java.nio.channels.ReadableByteChannel
,java.nio.channels.ScatteringByteChannel
,org.xnio.channels.CloseableChannel
,org.xnio.channels.Configurable
,org.xnio.channels.StreamSourceChannel
,org.xnio.channels.SuspendableReadChannel
public abstract class DetachableStreamSourceChannel extends java.lang.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>
closeSetter
protected org.xnio.channels.StreamSourceChannel
delegate
protected 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 void
awaitReadable()
void
awaitReadable(long time, java.util.concurrent.TimeUnit timeUnit)
void
close()
org.xnio.ChannelListener.Setter<? extends org.xnio.channels.StreamSourceChannel>
getCloseSetter()
org.xnio.XnioIoThread
getIoThread()
<T> T
getOption(org.xnio.Option<T> option)
org.xnio.ChannelListener.Setter<? extends org.xnio.channels.StreamSourceChannel>
getReadSetter()
org.xnio.XnioExecutor
getReadThread()
org.xnio.XnioWorker
getWorker()
protected abstract boolean
isFinished()
boolean
isOpen()
boolean
isReadResumed()
int
read(java.nio.ByteBuffer dst)
long
read(java.nio.ByteBuffer[] dsts)
long
read(java.nio.ByteBuffer[] dsts, int offset, int length)
void
resumeReads()
<T> T
setOption(org.xnio.Option<T> option, T value)
void
shutdownReads()
boolean
supportsOption(org.xnio.Option<?> option)
void
suspendReads()
long
transferTo(long position, long count, java.nio.channels.FileChannel target)
long
transferTo(long count, java.nio.ByteBuffer throughBuffer, org.xnio.channels.StreamSinkChannel target)
void
wakeupReads()
-
-
-
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:
resumeReads
in interfaceorg.xnio.channels.SuspendableReadChannel
-
transferTo
public long transferTo(long position, long count, java.nio.channels.FileChannel target) throws java.io.IOException
- Specified by:
transferTo
in interfaceorg.xnio.channels.StreamSourceChannel
- Throws:
java.io.IOException
-
awaitReadable
public void awaitReadable() throws java.io.IOException
- Specified by:
awaitReadable
in interfaceorg.xnio.channels.SuspendableReadChannel
- Throws:
java.io.IOException
-
suspendReads
public void suspendReads()
- Specified by:
suspendReads
in interfaceorg.xnio.channels.SuspendableReadChannel
-
transferTo
public long transferTo(long count, java.nio.ByteBuffer throughBuffer, org.xnio.channels.StreamSinkChannel target) throws java.io.IOException
- Specified by:
transferTo
in interfaceorg.xnio.channels.StreamSourceChannel
- Throws:
java.io.IOException
-
getWorker
public org.xnio.XnioWorker getWorker()
- Specified by:
getWorker
in interfaceorg.xnio.channels.CloseableChannel
-
isReadResumed
public boolean isReadResumed()
- Specified by:
isReadResumed
in interfaceorg.xnio.channels.SuspendableReadChannel
-
setOption
public <T> T setOption(org.xnio.Option<T> option, T value) throws java.lang.IllegalArgumentException, java.io.IOException
- Specified by:
setOption
in interfaceorg.xnio.channels.Configurable
- Throws:
java.lang.IllegalArgumentException
java.io.IOException
-
supportsOption
public boolean supportsOption(org.xnio.Option<?> option)
- Specified by:
supportsOption
in interfaceorg.xnio.channels.Configurable
-
shutdownReads
public void shutdownReads() throws java.io.IOException
- Specified by:
shutdownReads
in interfaceorg.xnio.channels.SuspendableReadChannel
- Throws:
java.io.IOException
-
getReadSetter
public org.xnio.ChannelListener.Setter<? extends org.xnio.channels.StreamSourceChannel> getReadSetter()
- Specified by:
getReadSetter
in interfaceorg.xnio.channels.StreamSourceChannel
- Specified by:
getReadSetter
in interfaceorg.xnio.channels.SuspendableReadChannel
-
isOpen
public boolean isOpen()
- Specified by:
isOpen
in interfacejava.nio.channels.Channel
-
read
public long read(java.nio.ByteBuffer[] dsts) throws java.io.IOException
- Specified by:
read
in interfacejava.nio.channels.ScatteringByteChannel
- Throws:
java.io.IOException
-
read
public long read(java.nio.ByteBuffer[] dsts, int offset, int length) throws java.io.IOException
- Specified by:
read
in interfacejava.nio.channels.ScatteringByteChannel
- Throws:
java.io.IOException
-
wakeupReads
public void wakeupReads()
- Specified by:
wakeupReads
in interfaceorg.xnio.channels.SuspendableReadChannel
-
getReadThread
public org.xnio.XnioExecutor getReadThread()
- Specified by:
getReadThread
in interfaceorg.xnio.channels.SuspendableReadChannel
-
awaitReadable
public void awaitReadable(long time, java.util.concurrent.TimeUnit timeUnit) throws java.io.IOException
- Specified by:
awaitReadable
in interfaceorg.xnio.channels.SuspendableReadChannel
- Throws:
java.io.IOException
-
getCloseSetter
public org.xnio.ChannelListener.Setter<? extends org.xnio.channels.StreamSourceChannel> getCloseSetter()
- Specified by:
getCloseSetter
in interfaceorg.xnio.channels.CloseableChannel
- Specified by:
getCloseSetter
in interfaceorg.xnio.channels.StreamSourceChannel
- Specified by:
getCloseSetter
in interfaceorg.xnio.channels.SuspendableReadChannel
-
close
public void close() throws java.io.IOException
- Specified by:
close
in interfacejava.lang.AutoCloseable
- Specified by:
close
in interfacejava.nio.channels.Channel
- Specified by:
close
in interfacejava.io.Closeable
- Specified by:
close
in interfaceorg.xnio.channels.CloseableChannel
- Specified by:
close
in interfacejava.nio.channels.InterruptibleChannel
- Throws:
java.io.IOException
-
getOption
public <T> T getOption(org.xnio.Option<T> option) throws java.io.IOException
- Specified by:
getOption
in interfaceorg.xnio.channels.Configurable
- Throws:
java.io.IOException
-
read
public int read(java.nio.ByteBuffer dst) throws java.io.IOException
- Specified by:
read
in interfacejava.nio.channels.ReadableByteChannel
- Throws:
java.io.IOException
-
getIoThread
public org.xnio.XnioIoThread getIoThread()
- Specified by:
getIoThread
in interfaceorg.xnio.channels.CloseableChannel
-
-