public class PrefetchBidirectionalStreamByteTransceiverImpl extends Object implements ByteTransceiver
ConnectableComponent.ConnectableAutomaton
OpenedAccessor.OpenedMutator, OpenedAccessor.OpenedProperty
Closable.CloseAutomaton
ClosedAccessor.ClosedMutator, ClosedAccessor.ClosedProperty
ConnectionStatusAccessor.ConnectionStatusMutator, ConnectionStatusAccessor.ConnectionStatusProperty
Constructor and Description |
---|
PrefetchBidirectionalStreamByteTransceiverImpl(InputStream aInputStream,
OutputStream aOutputStream) |
Modifier and Type | Method and Description |
---|---|
void |
close() |
void |
flush() |
ConnectionStatus |
getConnectionStatus() |
boolean |
hasDatagram()
Determines whether a datagram is available from a
DatagramSender and can
be retrieved via the #readDatagram() method. |
boolean |
isClosable() |
boolean |
isClosed() |
boolean |
isOpened() |
byte |
readDatagram()
Reads (receives) the next byte passed from a
DatagramSender
counterpart. |
byte[] |
readDatagrams()
Reads (receives) the next byte block passed from a
BlockSender or DatagramSender counterpart. |
void |
releaseAll() |
void |
writeDatagram(byte aDatagram)
Writes (sends) a byte to a listening
DatagramReceiver . |
void |
writeDatagrams(byte[] aDatagram)
Writes (sends) a byte block to a listening
DatagramReceiver or
BlockReceiver . |
void |
writeDatagrams(byte[] aDatagram,
int aOffset,
int aLength) |
public PrefetchBidirectionalStreamByteTransceiverImpl(InputStream aInputStream, OutputStream aOutputStream) throws OpenException
OpenException
public boolean isClosed()
isClosed
in interface ClosedAccessor
public boolean isOpened()
isOpened
in interface OpenedAccessor
public boolean hasDatagram() throws OpenException
Receivable
DatagramSender
and can
be retrieved via the #readDatagram()
method.hasDatagram
in interface Receivable
#readDatagram()
method.OpenException
- Thrown in case opening or accessing an open line
(connection, junction, link) caused problems.public byte[] readDatagrams() throws OpenException, InterruptedException
ByteBlockReceiver
BlockSender
or DatagramSender
counterpart. In case none
byte block is available, then this method blocks until one is
available. To prevent blocking, use the Receivable.hasDatagram()
method to
test beforehand whether a byte is available (in a multi threaded
usage scenario, #hasBlock()
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.readDatagrams
in interface ByteBlockReceiver
readDatagrams
in interface ByteReceiver
BlockSender
or
DatagramReceiver
counterpart.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 ConnectionStatus getConnectionStatus()
getConnectionStatus
in interface ConnectionStatusAccessor
public void releaseAll()
releaseAll
in interface org.refcodes.mixin.Releaseable
public void close() throws CloseException
close
in interface Closable
CloseException
public byte readDatagram() throws OpenException, InterruptedException
ByteDatagramReceiver
DatagramSender
counterpart. In case none byte is available, then this method blocks
until one is available. To prevent blocking, use the
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 ByteDatagramReceiver
ByteDatagramSender
counterpart.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 OpenException
ByteBlockSender
DatagramReceiver
or
BlockReceiver
.writeDatagrams
in interface ByteBlockSender
writeDatagrams
in interface ByteSender
aDatagram
- The byte to be pushed to the receiving
DatagramReceiver
or BlockReceiver
.OpenException
- Thrown in case opening or accessing an open line
(connection, junction, link) caused problems.public void writeDatagrams(byte[] aDatagram, int aOffset, int aLength) throws OpenException
writeDatagrams
in interface ByteBlockSender
writeDatagrams
in interface ByteSender
OpenException
public void writeDatagram(byte aDatagram) throws OpenException
ByteDatagramSender
DatagramReceiver
.writeDatagram
in interface ByteDatagramSender
aDatagram
- The byte to be pushed to the receiving
ByteDatagramSender
.OpenException
- Thrown in case opening or accessing an open line
(connection, junction, link) caused problems.public void flush() throws OpenException
flush
in interface Flushable
OpenException
public boolean isClosable()
isClosable
in interface Closable.CloseAutomaton
Copyright © 2016. All rights reserved.