public final class ConduitReadableMessageChannel extends Object implements ReadableMessageChannel, ReadListenerSettable<ConduitReadableMessageChannel>, CloseListenerSettable<ConduitReadableMessageChannel>, Cloneable
ReadListenerSettable.Setter<C extends Channel>
CloseListenerSettable.Setter<C extends Channel>
EMPTY
Constructor and Description |
---|
ConduitReadableMessageChannel(Configurable configurable,
MessageSourceConduit conduit)
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.
|
ConduitReadableMessageChannel |
clone()
Duplicate this channel.
|
void |
close()
Close this channel.
|
ChannelListener<? super ConduitReadableMessageChannel> |
getCloseListener()
Get the close listener.
|
ChannelListener.Setter<ConduitReadableMessageChannel> |
getCloseSetter()
Get the setter which can be used to change the close listener for this channel.
|
MessageSourceConduit |
getConduit()
Get the underlying conduit 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<? super ConduitReadableMessageChannel> |
getReadListener()
Get the read listener.
|
ChannelListener.Setter<ConduitReadableMessageChannel> |
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.
|
boolean |
isOpen() |
boolean |
isReadResumed()
Determine whether reads are resumed.
|
int |
receive(ByteBuffer dst)
Receive a message.
|
long |
receive(ByteBuffer[] dsts)
Receive a message.
|
long |
receive(ByteBuffer[] dsts,
int offset,
int length)
Receive a message.
|
void |
resumeReads()
Resume reads on this channel.
|
void |
setCloseListener(ChannelListener<? super ConduitReadableMessageChannel> closeListener)
Set the close listener.
|
void |
setConduit(MessageSourceConduit conduit)
Set the underlying conduit for this channel.
|
<T> T |
setOption(Option<T> option,
T value)
Set an option for this channel.
|
void |
setReadListener(ChannelListener<? super ConduitReadableMessageChannel> readListener)
Set the read listener.
|
void |
shutdownReads()
Places this readable channel at "end of stream".
|
boolean |
supportsOption(Option<?> option)
Determine whether an option is supported on this channel.
|
void |
suspendReads()
Suspend further read 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. |
public ConduitReadableMessageChannel(Configurable configurable, MessageSourceConduit conduit)
configurable
- the configurable to delegate configuration requests toconduit
- the initial conduit to use for data transportpublic MessageSourceConduit getConduit()
public void setConduit(MessageSourceConduit conduit)
conduit
- the underlying conduit for this channelpublic void setReadListener(ChannelListener<? super ConduitReadableMessageChannel> readListener)
ReadListenerSettable
setReadListener
in interface ReadListenerSettable<ConduitReadableMessageChannel>
readListener
- the read listenerpublic ChannelListener<? super ConduitReadableMessageChannel> getReadListener()
ReadListenerSettable
getReadListener
in interface ReadListenerSettable<ConduitReadableMessageChannel>
public void setCloseListener(ChannelListener<? super ConduitReadableMessageChannel> closeListener)
CloseListenerSettable
setCloseListener
in interface CloseListenerSettable<ConduitReadableMessageChannel>
closeListener
- the close listenerpublic ChannelListener<? super ConduitReadableMessageChannel> getCloseListener()
CloseListenerSettable
getCloseListener
in interface CloseListenerSettable<ConduitReadableMessageChannel>
public ChannelListener.Setter<ConduitReadableMessageChannel> getReadSetter()
ReadableMessageChannel
getReadSetter
in interface ReadableMessageChannel
getReadSetter
in interface SuspendableReadChannel
public ChannelListener.Setter<ConduitReadableMessageChannel> getCloseSetter()
ReadableMessageChannel
getCloseSetter
in interface CloseableChannel
getCloseSetter
in interface ReadableMessageChannel
getCloseSetter
in interface SuspendableReadChannel
public XnioWorker getWorker()
CloseableChannel
getWorker
in interface CloseableChannel
public long receive(ByteBuffer[] dsts, int offset, int length) throws IOException
ReadableMessageChannel
receive
in interface ReadableMessageChannel
dsts
- the buffers that will hold the messageoffset
- the offset into the array of buffers of the first buffer to read intolength
- the number of buffers to fillIOException
- if an I/O error occurspublic long receive(ByteBuffer[] dsts) throws IOException
ReadableMessageChannel
receive
in interface ReadableMessageChannel
dsts
- the buffers that will hold the messageIOException
- if an I/O error occurspublic int receive(ByteBuffer dst) throws IOException
ReadableMessageChannel
receive
in interface ReadableMessageChannel
dst
- the buffer that will hold the messageIOException
- if an I/O error occurspublic 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 XnioIoThread getIoThread()
CloseableChannel
getIoThread
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
IOException
- if the close failedpublic 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 optionpublic ConduitReadableMessageChannel clone()
Copyright © 2021 JBoss by Red Hat. All rights reserved.