DATA - the generic typeFlushable, org.refcodes.component.Closable, org.refcodes.component.Closable.CloseAutomaton, org.refcodes.component.ClosedAccessor, org.refcodes.component.ConnectableComponent, org.refcodes.component.ConnectableComponent.ConnectableAutomaton, org.refcodes.component.ConnectionStatusAccessor, org.refcodes.component.Flushable, org.refcodes.component.OpenedAccessor, BlockConsumer<DATA>, BlockProvider<DATA>, BlockReceiver<DATA>, BlockSender<DATA>, Consumer<DATA>, DatagramConsumer<DATA>, DatagramProvider<DATA>, DatagramReceiver<DATA>, DatagramSender<DATA>, DatagramTransceiver<DATA>, Provider<DATA>, Receivable, Receiver<DATA>, Sendable, Sender<DATA>, Transceiver<DATA>, org.refcodes.mixin.Releaseablepublic class BidirectionalStreamTransceiverImpl<DATA extends Serializable> extends Object implements Transceiver<DATA>
org.refcodes.component.Closable.CloseAutomaton, org.refcodes.component.Closable.CloseBuilder<B extends org.refcodes.component.Closable.CloseBuilder<B>>org.refcodes.component.ClosedAccessor.ClosedMutator, org.refcodes.component.ClosedAccessor.ClosedPropertyorg.refcodes.component.ConnectableComponent.ConnectableAutomatonorg.refcodes.component.ConnectionStatusAccessor.ConnectionStatusMutator, org.refcodes.component.ConnectionStatusAccessor.ConnectionStatusProperty| Constructor | Description |
|---|---|
BidirectionalStreamTransceiverImpl(InputStream aInputStream,
OutputStream aOutputStream) |
Instantiates a new bidirectional stream transceiver impl.
|
| Modifier and Type | Method | Description |
|---|---|---|
void |
close() |
|
void |
flush() |
|
org.refcodes.component.ConnectionStatus |
getConnectionStatus() |
|
boolean |
hasDatagram() |
Determines whether a datagram is available from a
DatagramSender. |
boolean |
isClosable() |
|
boolean |
isClosed() |
|
boolean |
isOpened() |
|
DATA |
readDatagram() |
Reads (receives) the next datagram passed from a
DatagramSender
counterpart. |
DATA[] |
readDatagrams() |
Read datagrams.
|
void |
releaseAll() |
|
void |
writeDatagram(DATA aDatagram) |
Writes (sends) a datagram to a listening
DatagramReceiver. |
void |
writeDatagrams(DATA[] aDatagram) |
Writes (sends) a datagram block to a listening
DatagramReceiver
or BlockReceiver. |
void |
writeDatagrams(DATA[] aDatagram,
int aOffset,
int aLength) |
Write datagrams.
|
closeIn, closeQuietly, closeUncheckedclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitreadDatagramspublic BidirectionalStreamTransceiverImpl(InputStream aInputStream, OutputStream aOutputStream) throws org.refcodes.component.OpenException
aInputStream - the input streamaOutputStream - the output streamorg.refcodes.component.OpenException - the open exceptionpublic boolean isClosed()
isClosed in interface org.refcodes.component.ClosedAccessorpublic boolean isOpened()
isOpened in interface org.refcodes.component.OpenedAccessorpublic boolean hasDatagram()
throws org.refcodes.component.OpenException
DatagramSender.
Use the DatagramProvider extenison's
DatagramProvider.readDatagram() method for retrieving the
available datagram.hasDatagram in interface Receivableorg.refcodes.component.OpenException - Thrown in case opening or accessing an open line
(connection, junction, link) caused problems.public DATA[] readDatagrams() throws org.refcodes.component.OpenException, InterruptedException
readDatagrams in interface BlockProvider<DATA extends Serializable>readDatagrams in interface Provider<DATA extends Serializable>readDatagrams in interface Receiver<DATA extends Serializable>org.refcodes.component.OpenException - the open exceptionInterruptedException - the interrupted exceptionpublic org.refcodes.component.ConnectionStatus getConnectionStatus()
getConnectionStatus in interface org.refcodes.component.ConnectionStatusAccessorpublic void releaseAll()
releaseAll in interface org.refcodes.mixin.Releaseablepublic void close()
throws org.refcodes.component.CloseException
close in interface org.refcodes.component.Closableorg.refcodes.component.CloseExceptionpublic DATA readDatagram() throws org.refcodes.component.OpenException, InterruptedException
DatagramSender
counterpart. In case none datagram is available, then this method blocks
until one is available.
To prevent blocking, use the DatagramReceiver extension's
Receivable.hasDatagram() method to test beforehand whether
a byte is available (in a multi-threaded usage scenario,
Receivable.hasDatagram() is not a reliable indicator
whether this method will block or not).
When a Thread is waiting for a datagram to be read and
Thread.interrupt() is being called, then the operation is aborted
and an InterruptedException is thrown.readDatagram in interface DatagramProvider<DATA extends Serializable>DatagramSender
counterpart.org.refcodes.component.OpenException - Thrown in case opening or accessing an open line
(connection, junction, link) caused problems.InterruptedException - Thrown when a Thread is waiting,
sleeping, or otherwise occupied, and the Thread is
interrupted, either before or during the activity.public void writeDatagrams(DATA[] aDatagram) throws org.refcodes.component.OpenException
DatagramReceiver
or BlockReceiver.writeDatagrams in interface BlockConsumer<DATA extends Serializable>writeDatagrams in interface Consumer<DATA extends Serializable>aDatagram - The datagram to be pushed to the receiving
DatagramReceiver or BlockReceiver.org.refcodes.component.OpenException - Thrown in case opening or accessing an open line
(connection, junction, link) caused problems.public void writeDatagrams(DATA[] aDatagram, int aOffset, int aLength) throws org.refcodes.component.OpenException
writeDatagrams in interface BlockConsumer<DATA extends Serializable>writeDatagrams in interface Sender<DATA extends Serializable>aDatagram - the datagramaOffset - the offsetaLength - the lengthorg.refcodes.component.OpenException - the open exceptionpublic void writeDatagram(DATA aDatagram) throws org.refcodes.component.OpenException
DatagramReceiver.writeDatagram in interface Consumer<DATA extends Serializable>writeDatagram in interface DatagramConsumer<DATA extends Serializable>aDatagram - The datagram to be pushed to the receiving
DatagramConsumer.org.refcodes.component.OpenException - Thrown in case opening or accessing an open line
(connection, junction, link) caused problems.public void flush()
throws org.refcodes.component.OpenException
public boolean isClosable()
isClosable in interface org.refcodes.component.Closable.CloseAutomatonCopyright © 2018. All rights reserved.