DATA
- The type of the datagram to be operated with.public abstract class AbstractInputStreamReceiver<DATA extends Serializable> extends AbstractConnectableAutomaton implements Receiver<DATA>
Receiver
interface. The
open(InputStream)
, AbstractConnectableAutomaton.setConnectionStatus(ConnectionStatus)
and AbstractConnectableAutomaton.isOpenable()
methods are your hooks when extending this class.ConnectableComponent.ConnectableAutomaton
OpenedAccessor.OpenedMutator, OpenedAccessor.OpenedProperty
Closable.CloseAutomaton
ClosedAccessor.ClosedMutator, ClosedAccessor.ClosedProperty
ConnectionStatusAccessor.ConnectionStatusMutator, ConnectionStatusAccessor.ConnectionStatusProperty
Constructor and Description |
---|
AbstractInputStreamReceiver() |
Modifier and Type | Method and Description |
---|---|
void |
close() |
boolean |
hasDatagram()
Determines whether a datagram is available from a
DatagramSender and can
be retrieved via the #readDatagram() method. |
protected boolean |
isOpenable(InputStream aInputStream) |
protected void |
open(InputStream aInputStream) |
DATA |
readDatagram()
Reads (receives) the next datagram passed from a
DatagramSender
counterpart. |
void |
releaseAll() |
getConnectionStatus, isClosable, isClosed, isOpenable, isOpened, open, setConnectionStatus
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
readDatagrams
isOpened
isClosable
isClosed
getConnectionStatus
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 DATA readDatagram() throws OpenException, InterruptedException
DatagramReceiver
DatagramSender
counterpart. In case none datagram is available, then this method blocks
until one is available. To prevent blocking, use the
Receivable.hasDatagram()
method to test beforehand whether a datagram 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 DatagramReceiver<DATA extends Serializable>
DatagramSender
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 releaseAll()
releaseAll
in interface org.refcodes.mixin.Releaseable
public void close() throws CloseException
close
in interface Closable
close
in class AbstractConnectableAutomaton
CloseException
protected void open(InputStream aInputStream) throws OpenException
OpenException
ConnectionOpenable#open(Object)}
protected boolean isOpenable(InputStream aInputStream)
ConnectionAutomaton#isOpenable(Object)}
Copyright © 2016. All rights reserved.