Flushable
, 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
, ByteBlockConsumer
, ByteBlockProvider
, ByteBlockReceiver
, ByteBlockSender
, ByteConsumer
, ByteDatagramConsumer
, ByteDatagramProvider
, ByteDatagramReceiver
, ByteDatagramSender
, ByteProvider
, ByteReceiver
, ByteSender
, ByteTransceiver
, Receivable
, Sendable
, org.refcodes.mixin.Releaseable
public class PrefetchBidirectionalStreamByteTransceiverImpl extends Object implements ByteTransceiver
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.ClosedProperty
org.refcodes.component.ConnectableComponent.ConnectableAutomaton
org.refcodes.component.ConnectionStatusAccessor.ConnectionStatusMutator, org.refcodes.component.ConnectionStatusAccessor.ConnectionStatusProperty
Constructor | Description |
---|---|
PrefetchBidirectionalStreamByteTransceiverImpl(InputStream aInputStream,
OutputStream aOutputStream) |
Instantiates a new prefetch bidirectional stream byte transceiver impl.
|
Modifier and Type | Method | Description |
---|---|---|
void |
close() |
|
void |
flush() |
Flush.
|
org.refcodes.component.ConnectionStatus |
getConnectionStatus() |
|
boolean |
hasDatagram() |
Determines whether a datagram is available from a
DatagramSender . |
boolean |
isClosable() |
|
boolean |
isClosed() |
|
boolean |
isOpened() |
|
byte |
readDatagram() |
Reads (receives) the next byte passed from a
DatagramSender
counterpart. |
byte[] |
readDatagrams() |
Caution: Reads till an
OpenException (or an
InterruptedException in case of blocking till more data is
available) occurs. |
void |
releaseAll() |
|
void |
writeDatagram(byte aDatagram) |
Write datagram.
|
void |
writeDatagrams(byte[] aDatagram) |
Write datagrams.
|
void |
writeDatagrams(byte[] aDatagram,
int aOffset,
int aLength) |
Write datagrams.
|
readDatagrams
public PrefetchBidirectionalStreamByteTransceiverImpl(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.ClosedAccessor
public boolean isOpened()
isOpened
in interface org.refcodes.component.OpenedAccessor
public boolean hasDatagram() throws org.refcodes.component.OpenException
DatagramSender
.
Use the DatagramProvider
extenison's
DatagramProvider.readDatagram()
method for retrieving the
available datagram.hasDatagram
in interface Receivable
org.refcodes.component.OpenException
- Thrown in case opening or accessing an open line
(connection, junction, link) caused problems.public byte[] readDatagrams() throws org.refcodes.component.OpenException, InterruptedException
OpenException
(or an
InterruptedException
in case of blocking till more data is
available) occurs.
Reads (receives) the next byte block passed from a BlockSender
or
DatagramSender
counterpart. In case none byte block is available,
then this method blocks until one is available.
When a Thread
is waiting for a byte to be read and
Thread.interrupt()
is being called, then the operation is aborted
and an InterruptedException
is thrown.readDatagrams
in interface ByteBlockProvider
readDatagrams
in interface ByteProvider
readDatagrams
in interface ByteReceiver
BlockSender
or
DatagramReceiver
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 org.refcodes.component.ConnectionStatus getConnectionStatus()
getConnectionStatus
in interface org.refcodes.component.ConnectionStatusAccessor
public void releaseAll()
releaseAll
in interface org.refcodes.mixin.Releaseable
public void close() throws org.refcodes.component.CloseException
close
in interface org.refcodes.component.Closable
org.refcodes.component.CloseException
public byte readDatagram() throws org.refcodes.component.OpenException, InterruptedException
DatagramSender
counterpart. In case none byte is available, then this method blocks
until one is available.
To prevent blocking, use the ByteDatagramReceiver
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 byte to be read and
Thread.interrupt()
is being called, then the operation is aborted
and an InterruptedException
is thrown.readDatagram
in interface ByteDatagramProvider
ByteDatagramSender
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(byte[] aDatagram) throws org.refcodes.component.OpenException
writeDatagrams
in interface ByteBlockConsumer
writeDatagrams
in interface ByteConsumer
aDatagram
- the datagramorg.refcodes.component.OpenException
- the open exceptionpublic void writeDatagrams(byte[] aDatagram, int aOffset, int aLength) throws org.refcodes.component.OpenException
writeDatagrams
in interface ByteBlockConsumer
writeDatagrams
in interface ByteSender
aDatagram
- the datagramaOffset
- the offsetaLength
- the lengthorg.refcodes.component.OpenException
- the open exceptionpublic void writeDatagram(byte aDatagram) throws org.refcodes.component.OpenException
writeDatagram
in interface ByteConsumer
writeDatagram
in interface ByteDatagramConsumer
aDatagram
- the datagramorg.refcodes.component.OpenException
- the open exceptionpublic void flush() throws org.refcodes.component.OpenException
flush
in interface ByteSender
flush
in interface Flushable
flush
in interface org.refcodes.component.Flushable
org.refcodes.component.OpenException
- the open exceptionpublic boolean isClosable()
isClosable
in interface org.refcodes.component.Closable.CloseAutomaton
Copyright © 2018. All rights reserved.