public class AssembledMessageChannel extends Object implements MessageChannel
EMPTY
Constructor and Description |
---|
AssembledMessageChannel(CloseableChannel closeable,
ReadableMessageChannel readable,
WritableMessageChannel writable)
Construct a new instance.
|
AssembledMessageChannel(ReadableMessageChannel readable,
WritableMessageChannel writable)
Construct a new instance.
|
Modifier and Type | Method and Description |
---|---|
void |
awaitReadable()
Block until this channel becomes readable again.
|
void |
awaitReadable(long time,
TimeUnit timeUnit)
Block until this channel becomes readable again, or until the timeout expires.
|
void |
awaitWritable()
Block until this channel becomes writable again.
|
void |
awaitWritable(long time,
TimeUnit timeUnit)
Block until this channel becomes writable again, or until the timeout expires.
|
void |
close()
Close this channel.
|
boolean |
flush()
Flush any waiting partial send or write.
|
ChannelListener.Setter<? extends AssembledMessageChannel> |
getCloseSetter()
Get the setter which can be used to change the close listener for this channel.
|
XnioIoThread |
getIoThread()
Get the I/O thread associated with this channel.
|
<T> T |
getOption(Option<T> option)
Get the value of a channel option.
|
ChannelListener.Setter<? extends AssembledMessageChannel> |
getReadSetter()
Get the setter which can be used to change the read listener for this channel.
|
XnioExecutor |
getReadThread()
Deprecated.
|
XnioWorker |
getWorker()
Get the worker for this channel.
|
ChannelListener.Setter<? extends AssembledMessageChannel> |
getWriteSetter()
Get the setter which can be used to change the write listener for this channel.
|
XnioExecutor |
getWriteThread()
Deprecated.
|
boolean |
isOpen()
Determine whether this channel is open.
|
boolean |
isReadResumed()
Determine whether reads are resumed.
|
boolean |
isWriteResumed()
Determine whether writes are resumed.
|
int |
receive(ByteBuffer buffer)
Receive a message.
|
long |
receive(ByteBuffer[] buffers)
Receive a message.
|
long |
receive(ByteBuffer[] buffers,
int offs,
int len)
Receive a message.
|
void |
resumeReads()
Resume reads on this channel.
|
void |
resumeWrites()
Resume writes on this channel.
|
boolean |
send(ByteBuffer buffer)
Send a complete message.
|
boolean |
send(ByteBuffer[] buffers)
Send a complete message.
|
boolean |
send(ByteBuffer[] buffers,
int offs,
int len)
Send a complete message.
|
boolean |
sendFinal(ByteBuffer buffer)
Send a complete message.
|
boolean |
sendFinal(ByteBuffer[] buffers)
Send a complete message.
|
boolean |
sendFinal(ByteBuffer[] buffers,
int offs,
int len)
Send a complete message.
|
<T> T |
setOption(Option<T> option,
T value)
Set an option for this channel.
|
void |
shutdownReads()
Places this readable channel at "end of stream".
|
void |
shutdownWrites()
Indicate that writing is complete for this channel.
|
boolean |
supportsOption(Option<?> option)
Determine whether an option is supported on this channel.
|
void |
suspendReads()
Suspend further read notifications on this channel.
|
void |
suspendWrites()
Suspend further write notifications on this channel.
|
void |
wakeupReads()
Resume reads on this channel, and force the read listener to be triggered even if the
channel isn't actually readable. |
void |
wakeupWrites()
Resume writes on this channel, and force the write listener to be triggered even if the
channel isn't actually writable. |
public AssembledMessageChannel(CloseableChannel closeable, ReadableMessageChannel readable, WritableMessageChannel writable)
closeable
- the single central closeable channelreadable
- the read channelwritable
- the write channelpublic AssembledMessageChannel(ReadableMessageChannel readable, WritableMessageChannel writable)
readable
- the read channelwritable
- the write channelpublic XnioIoThread getIoThread()
CloseableChannel
getIoThread
in interface CloseableChannel
public ChannelListener.Setter<? extends AssembledMessageChannel> getReadSetter()
MessageChannel
getReadSetter
in interface MessageChannel
getReadSetter
in interface ReadableMessageChannel
getReadSetter
in interface SuspendableChannel
getReadSetter
in interface SuspendableReadChannel
public void suspendReads()
SuspendableReadChannel
suspendReads
in interface SuspendableReadChannel
public void resumeReads()
SuspendableReadChannel
resumeReads
in interface SuspendableReadChannel
public boolean isReadResumed()
SuspendableReadChannel
isReadResumed
in interface SuspendableReadChannel
true
if reads are resumed, false
if reads are suspendedpublic void wakeupReads()
SuspendableReadChannel
Resume reads
on this channel, and force the read listener to be triggered even if the
channel isn't actually readable.wakeupReads
in interface SuspendableReadChannel
public void shutdownReads() throws IOException
SuspendableReadChannel
CloseableChannel.close()
to be called automatically.shutdownReads
in interface SuspendableReadChannel
IOException
- if an I/O error occurspublic void awaitReadable() throws IOException
SuspendableReadChannel
awaitReadable
in interface SuspendableReadChannel
InterruptedIOException
- if the operation is interrupted; the thread's interrupt flag will be set as wellIOException
- if an I/O error occurspublic void awaitReadable(long time, TimeUnit timeUnit) throws IOException
SuspendableReadChannel
awaitReadable
in interface SuspendableReadChannel
time
- the time to waittimeUnit
- the time unitInterruptedIOException
- if the operation is interrupted; the thread's interrupt flag will be set as wellIOException
- if an I/O error occurs@Deprecated public XnioExecutor getReadThread()
SuspendableReadChannel
getReadThread
in interface SuspendableReadChannel
null
if none is configured or availablepublic int receive(ByteBuffer buffer) throws IOException
ReadableMessageChannel
receive
in interface ReadableMessageChannel
buffer
- the buffer that will hold the messageIOException
- if an I/O error occurspublic long receive(ByteBuffer[] buffers) throws IOException
ReadableMessageChannel
receive
in interface ReadableMessageChannel
buffers
- the buffers that will hold the messageIOException
- if an I/O error occurspublic long receive(ByteBuffer[] buffers, int offs, int len) throws IOException
ReadableMessageChannel
receive
in interface ReadableMessageChannel
buffers
- the buffers that will hold the messageoffs
- the offset into the array of buffers of the first buffer to read intolen
- the number of buffers to fillIOException
- if an I/O error occurspublic ChannelListener.Setter<? extends AssembledMessageChannel> getWriteSetter()
MessageChannel
getWriteSetter
in interface MessageChannel
getWriteSetter
in interface SuspendableChannel
getWriteSetter
in interface SuspendableWriteChannel
getWriteSetter
in interface WritableMessageChannel
public void suspendWrites()
SuspendableWriteChannel
suspendWrites
in interface SuspendableWriteChannel
public void resumeWrites()
SuspendableWriteChannel
resumeWrites
in interface SuspendableWriteChannel
public boolean isWriteResumed()
SuspendableWriteChannel
isWriteResumed
in interface SuspendableWriteChannel
true
if writes are resumed, false
if writes are suspendedpublic void wakeupWrites()
SuspendableWriteChannel
Resume writes
on this channel, and force the write listener to be triggered even if the
channel isn't actually writable.wakeupWrites
in interface SuspendableWriteChannel
public void shutdownWrites() throws IOException
SuspendableWriteChannel
SuspendableWriteChannel.flush()
method; once this is done, if the read side of the channel was shut down, the channel will
automatically close.shutdownWrites
in interface SuspendableWriteChannel
IOException
- if an I/O error occurspublic void awaitWritable() throws IOException
SuspendableWriteChannel
awaitWritable
in interface SuspendableWriteChannel
InterruptedIOException
- if the operation is interrupted; the thread's interrupt flag will be set as wellIOException
- if an I/O error occurspublic void awaitWritable(long time, TimeUnit timeUnit) throws IOException
SuspendableWriteChannel
awaitWritable
in interface SuspendableWriteChannel
time
- the time to waittimeUnit
- the time unitInterruptedIOException
- if the operation is interrupted; the thread's interrupt flag will be set as wellIOException
- if an I/O error occurs@Deprecated public XnioExecutor getWriteThread()
SuspendableWriteChannel
getWriteThread
in interface SuspendableWriteChannel
null
if none is configured or availablepublic boolean send(ByteBuffer buffer) throws IOException
WritableMessageChannel
send
in interface WritableMessageChannel
buffer
- the message to sendtrue
if the message was sent, or false
if it would blockIOException
- if an I/O error occurspublic boolean send(ByteBuffer[] buffers) throws IOException
WritableMessageChannel
send
in interface WritableMessageChannel
buffers
- the buffers holding the message to sendtrue
if the message was sent, or false
if it would blockIOException
- if an I/O error occurspublic boolean send(ByteBuffer[] buffers, int offs, int len) throws IOException
WritableMessageChannel
send
in interface WritableMessageChannel
buffers
- the buffers holding the message to sendoffs
- the offset into the buffer array of the first bufferlen
- the number of buffers that contain data to sendtrue
if the message was sent, or false
if it would blockIOException
- if an I/O error occurspublic boolean sendFinal(ByteBuffer buffer) throws IOException
WritableMessageChannel
sendFinal
in interface WritableMessageChannel
buffer
- the message to sendtrue
if the message was sent, or false
if it would blockIOException
- if an I/O error occurspublic boolean sendFinal(ByteBuffer[] buffers) throws IOException
WritableMessageChannel
sendFinal
in interface WritableMessageChannel
buffers
- the buffers holding the message to sendtrue
if the message was sent, or false
if it would blockIOException
- if an I/O error occurspublic boolean sendFinal(ByteBuffer[] buffers, int offs, int len) throws IOException
WritableMessageChannel
sendFinal
in interface WritableMessageChannel
buffers
- the buffers holding the message to sendoffs
- the offset into the buffer array of the first bufferlen
- the number of buffers that contain data to sendtrue
if the message was sent, or false
if it would blockIOException
- if an I/O error occurspublic boolean flush() throws IOException
SuspendableWriteChannel
true
. If there is data to flush which cannot be immediately written, this method
will return false
. If this method returns true
after SuspendableWriteChannel.shutdownWrites()
was called on
this channel, the write listener will no longer be invoked on this channel. If this is case and additionally
this is a write-only channel or the read side was previously shut down, then the channel will
automatically be closed.flush
in interface SuspendableWriteChannel
true
if the message was flushed, or false
if the result would blockIOException
- if an I/O error occurspublic ChannelListener.Setter<? extends AssembledMessageChannel> getCloseSetter()
MessageChannel
getCloseSetter
in interface CloseableChannel
getCloseSetter
in interface MessageChannel
getCloseSetter
in interface ReadableMessageChannel
getCloseSetter
in interface SuspendableChannel
getCloseSetter
in interface SuspendableReadChannel
getCloseSetter
in interface SuspendableWriteChannel
getCloseSetter
in interface WritableMessageChannel
public XnioWorker getWorker()
CloseableChannel
getWorker
in interface CloseableChannel
public void close() throws IOException
CloseableChannel
close
in interface Closeable
close
in interface AutoCloseable
close
in interface Channel
close
in interface InterruptibleChannel
close
in interface CloseableChannel
close
in interface SuspendableWriteChannel
IOException
- if the close failedpublic boolean isOpen()
SuspendableWriteChannel
false
if all directions are shut down,
even if there is unflushed write data pending.isOpen
in interface Channel
isOpen
in interface SuspendableWriteChannel
true
if the channel is open, false
otherwisepublic boolean supportsOption(Option<?> option)
Configurable
supportsOption
in interface Configurable
option
- the optiontrue
if it is supportedpublic <T> T getOption(Option<T> option) throws IOException
Configurable
getOption
in interface Configurable
T
- the type of the option valueoption
- the option to getnull
if it is not setIOException
- if an I/O error occurred when reading the optionpublic <T> T setOption(Option<T> option, T value) throws IllegalArgumentException, IOException
Configurable
setOption
in interface Configurable
T
- the type of the option valueoption
- the option to setvalue
- the value of the option to setIllegalArgumentException
- if the value is not acceptable for this optionIOException
- if an I/O error occurred when modifying the optionCopyright © 2017 JBoss by Red Hat. All rights reserved.