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.OpenedAccessor
, ByteBlockProvider
, ByteBlockReceiver
, ByteDatagramProvider
, ByteDatagramReceiver
, ByteProvider
, ByteReceiver
, Receivable
, org.refcodes.mixin.Releaseable
BidirectionalStreamConnectionByteTransceiverImpl
, InputStreamConnectionByteReceiverImpl
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.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
Constructor | Description |
---|---|
AbstractInputStreamByteReceiver() |
Modifier and Type | Method | 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, setConnectionStatus
readDatagrams, readDatagrams
closeIn, closeQuietly, closeUnchecked
getConnectionStatus, isConnectionOpened
public boolean hasDatagram() throws org.refcodes.component.OpenException
Receivable
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 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 releaseAll()
releaseAll
in interface org.refcodes.mixin.Releaseable
public void close() throws org.refcodes.component.CloseException
close
in interface org.refcodes.component.Closable
close
in class org.refcodes.component.AbstractConnectableAutomaton
org.refcodes.component.CloseException
protected void open(InputStream aInputStream) throws org.refcodes.component.OpenException
ConnectionOpenable.open(Object)
.aInputStream
- the input streamorg.refcodes.component.OpenException
- the open exceptionprotected boolean isOpenable(InputStream aInputStream)
ConnectionOpenable.ConnectionOpenAutomaton.isOpenable(Object)
.aInputStream
- the input streamCopyright © 2018. All rights reserved.