public final class GatedStreamSinkChannel extends Object implements org.xnio.channels.StreamSinkChannel
This channel has a gate which starts of closed. When the gate is closed writes will return 0. When the gate is opened writes will resume as normal.
Constructor and Description |
---|
GatedStreamSinkChannel(org.xnio.channels.StreamSinkChannel delegate) Construct a new instance. |
Modifier and Type | Method and Description |
---|---|
void | awaitWritable() |
void | awaitWritable(long time, TimeUnit timeUnit) |
void | close() |
boolean | flush() |
org.xnio.channels.StreamSinkChannel | getChannel() Get the underlying channel if the gate is open, else return this channel. |
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() |
boolean | isGateOpen() |
boolean | isOpen() |
boolean | isWriteResumed() |
void | openGate() Open the gate and allow data to flow. |
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) |
public GatedStreamSinkChannel(org.xnio.channels.StreamSinkChannel delegate)
delegate
- the channel to wrappublic void openGate() throws IOException
If the shutdownWrites() or close() method has already been called this will result it in being invoked on the delegate.
IOException
public boolean isGateOpen()
public org.xnio.XnioWorker getWorker()
getWorker
in interface org.xnio.channels.CloseableChannel
public org.xnio.XnioIoThread getIoThread()
getIoThread
in interface org.xnio.channels.CloseableChannel
public org.xnio.XnioExecutor getWriteThread()
getWriteThread
in interface org.xnio.channels.SuspendableWriteChannel
public org.xnio.ChannelListener.Setter<? extends org.xnio.channels.StreamSinkChannel> getWriteSetter()
getWriteSetter
in interface org.xnio.channels.StreamSinkChannel
getWriteSetter
in interface org.xnio.channels.SuspendableWriteChannel
public org.xnio.ChannelListener.Setter<? extends org.xnio.channels.StreamSinkChannel> getCloseSetter()
getCloseSetter
in interface org.xnio.channels.CloseableChannel
getCloseSetter
in interface org.xnio.channels.StreamSinkChannel
getCloseSetter
in interface org.xnio.channels.SuspendableWriteChannel
public int writeFinal(ByteBuffer src) throws IOException
writeFinal
in interface org.xnio.channels.StreamSinkChannel
IOException
public long writeFinal(ByteBuffer[] srcs, int offset, int length) throws IOException
writeFinal
in interface org.xnio.channels.StreamSinkChannel
IOException
public long writeFinal(ByteBuffer[] srcs) throws IOException
writeFinal
in interface org.xnio.channels.StreamSinkChannel
IOException
public int write(ByteBuffer src) throws IOException
write
in interface WritableByteChannel
IOException
public long write(ByteBuffer[] srcs) throws IOException
write
in interface GatheringByteChannel
IOException
public long write(ByteBuffer[] srcs, int offset, int length) throws IOException
write
in interface GatheringByteChannel
IOException
public long transferFrom(FileChannel src, long position, long count) throws IOException
transferFrom
in interface org.xnio.channels.StreamSinkChannel
IOException
public long transferFrom(org.xnio.channels.StreamSourceChannel source, long count, ByteBuffer throughBuffer) throws IOException
transferFrom
in interface org.xnio.channels.StreamSinkChannel
IOException
public boolean flush() throws IOException
flush
in interface org.xnio.channels.SuspendableWriteChannel
IOException
public void suspendWrites()
suspendWrites
in interface org.xnio.channels.SuspendableWriteChannel
public void resumeWrites()
resumeWrites
in interface org.xnio.channels.SuspendableWriteChannel
public boolean isWriteResumed()
isWriteResumed
in interface org.xnio.channels.SuspendableWriteChannel
public void wakeupWrites()
wakeupWrites
in interface org.xnio.channels.SuspendableWriteChannel
public void shutdownWrites() throws IOException
shutdownWrites
in interface org.xnio.channels.SuspendableWriteChannel
IOException
public void close() throws IOException
close
in interface Closeable
close
in interface AutoCloseable
close
in interface Channel
close
in interface InterruptibleChannel
close
in interface org.xnio.channels.CloseableChannel
close
in interface org.xnio.channels.SuspendableWriteChannel
IOException
public void awaitWritable() throws IOException
awaitWritable
in interface org.xnio.channels.SuspendableWriteChannel
IOException
public void awaitWritable(long time, TimeUnit timeUnit) throws IOException
awaitWritable
in interface org.xnio.channels.SuspendableWriteChannel
IOException
public boolean isOpen()
public boolean supportsOption(org.xnio.Option<?> option)
supportsOption
in interface org.xnio.channels.Configurable
public <T> T getOption(org.xnio.Option<T> option) throws IOException
getOption
in interface org.xnio.channels.Configurable
IOException
public <T> T setOption(org.xnio.Option<T> option, T value) throws IllegalArgumentException, IOException
setOption
in interface org.xnio.channels.Configurable
IllegalArgumentException
IOException
public org.xnio.channels.StreamSinkChannel getChannel()
Copyright © 2015 JBoss by Red Hat. All rights reserved.