public abstract class AbstractInputStreamByteReceiver extends org.refcodes.component.AbstractConnectableAutomaton implements ByteReceiver
ByteReceiver interface. The
open(InputStream), AbstractConnectableAutomaton.setConnectionStatus(ConnectionStatus)
and AbstractConnectableAutomaton.isOpenable() methods are your hooks when extending this class.org.refcodes.component.ConnectableComponent.ConnectableAutomatonorg.refcodes.component.OpenedAccessor.OpenedMutator, org.refcodes.component.OpenedAccessor.OpenedPropertyorg.refcodes.component.Closable.CloseAutomaton, org.refcodes.component.Closable.CloseBuilder<B extends org.refcodes.component.Closable.CloseBuilder<B>>| Constructor and Description |
|---|
AbstractInputStreamByteReceiver() |
| Modifier and Type | Method and Description |
|---|---|
void |
close() |
boolean |
hasDatagram()
Determines whether a datagram is available from a
DatagramSender. |
protected boolean |
isOpenable(InputStream aInputStream)
Checks if is openable.
|
protected void |
open(InputStream aInputStream)
Open, see
ConnectionOpenable.open(Object). |
byte |
readDatagram()
Reads (receives) the next byte passed from a
DatagramSender
counterpart. |
void |
releaseAll() |
getConnectionStatus, isClosable, isClosed, isOpenable, isOpened, open, setConnectionStatusclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitreadDatagrams, readDatagramspublic boolean hasDatagram()
throws org.refcodes.component.OpenException
ReceivableDatagramSender.
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 byte readDatagram()
throws org.refcodes.component.OpenException,
InterruptedException
ByteDatagramProviderDatagramSender
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 ByteDatagramProviderByteDatagramSender
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 releaseAll()
releaseAll in interface org.refcodes.mixin.Releaseablepublic void close()
throws org.refcodes.component.CloseException
close in interface org.refcodes.component.Closableclose in class org.refcodes.component.AbstractConnectableAutomatonorg.refcodes.component.CloseExceptionprotected void open(InputStream aInputStream) throws org.refcodes.component.OpenException
ConnectionOpenable.open(Object).aInputStream - the a input streamorg.refcodes.component.OpenException - the open exceptionprotected boolean isOpenable(InputStream aInputStream)
ConnectionOpenable.ConnectionOpenAutomaton.isOpenable(Object).aInputStream - the a input streamCopyright © 2017. All rights reserved.