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
, Availability
, Receivable
, ShortDestination
, ShortReceiver
, ShortsDestination
, ShortsReceiver
LoopbackShortsReceiver
, LoopbackShortsTransceiver
, ShortArrayReceiver
, ShortsReceiverDecorator
public abstract class AbstractShortsReceiver extends AbstractShortsDestination implements ShortsReceiver
AbstractShortsReceiver
is a base abstract implementation of the
ShortsReceiver
interface providing common functionality for concrete
real live implementations.Modifier and Type | Class | Description |
---|---|---|
protected static class |
AbstractShortsReceiver.ConnectableAutomaton |
The Class ConnectableAutomaton.
|
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
Modifier and Type | Field | Description |
---|---|---|
protected AbstractShortsReceiver.ConnectableAutomaton |
_automaton |
_datagramQueue, DATAGRAM_QUEUE_SIZE
Constructor | Description |
---|---|
AbstractShortsReceiver() |
Constructs a
AbstractShortsReceiver with a default sized blocking
queue enabling a maximum of AbstractShortsDestination.DATAGRAM_QUEUE_SIZE datagrams.
-------------------------------------------------------------------------
Make sure your code fetches the datagrams quick enough to prevent filling
up of the queue. |
AbstractShortsReceiver(int aCapacity) |
Constructs a
AbstractShortsReceiver with a custom sized blocking
queue enabling a maximum of datagrams as specified by the capacity
parameter.
-------------------------------------------------------------------------
Make sure your code fetches the datagrams quick enough to prevent filling
up of the queue. |
Modifier and Type | Method | Description |
---|---|---|
int |
available() |
Determines the number of available datagram from a
DatagramTransmitter . |
void |
close() |
|
org.refcodes.component.ConnectionStatus |
getConnectionStatus() |
|
boolean |
isClosable() |
|
boolean |
isClosed() |
|
protected boolean |
isOpenable() |
Checks if is openable.
|
boolean |
isOpened() |
|
protected void |
open() |
Open.
|
short[] |
receiveAllShorts() |
Reads (receives) the all currently available data.
|
short |
receiveShort() |
Reads (receives) the next short available, in case none short is
available, then this method blocks until one is available.
|
short[] |
receiveShorts(int aMaxLength) |
Similar to
ShortsDestination.receiveAllShorts() though at maximum the amount of
data as provided returned. |
protected void |
setConnectionStatus(org.refcodes.component.ConnectionStatus aConnectionStatus) |
Sets the connection status.
|
pushDatagram, pushDatagrams, pushDatagrams
hasAvailable
closeIn, closeQuietly, closeUnchecked
alert, alert, critical, critical, debug, error, info, notice, panic, trace, warn, warn
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
receiveShorts
protected AbstractShortsReceiver.ConnectableAutomaton _automaton
public AbstractShortsReceiver()
AbstractShortsReceiver
with a default sized blocking
queue enabling a maximum of AbstractShortsDestination.DATAGRAM_QUEUE_SIZE
datagrams.
-------------------------------------------------------------------------
Make sure your code fetches the datagrams quick enough to prevent filling
up of the queue. In case the queue is filled up, adding elements via
AbstractShortsDestination.pushDatagram(short)
to the queue is blocked until elements are
taken from the queue via receiveShort()
.public AbstractShortsReceiver(int aCapacity)
AbstractShortsReceiver
with a custom sized blocking
queue enabling a maximum of datagrams as specified by the capacity
parameter.
-------------------------------------------------------------------------
Make sure your code fetches the datagrams quick enough to prevent filling
up of the queue. In case the queue is filled up, adding elements via
AbstractShortsDestination.pushDatagram(short)
to the queue is blocked until elements are
taken from the queue via receiveShort()
.aCapacity
- The capacity of the queue holding the received
datagrams.public short receiveShort() throws IOException
receiveShort
in interface ShortDestination
receiveShort
in interface ShortsDestination
receiveShort
in class AbstractShortsDestination
ShortsTransmitter
counterpart.IOException
- Thrown in case opening or accessing an open line
(connection, junction, link) caused problems.public short[] receiveAllShorts() throws IOException
receiveAllShorts
in interface ShortsDestination
receiveAllShorts
in interface ShortsReceiver
receiveAllShorts
in class AbstractShortsDestination
DatagramsTransmitter
or DatagramReceiver
counterpart.IOException
- Thrown in case opening or accessing an open line
(connection, junction, link) caused problems.public short[] receiveShorts(int aMaxLength) throws IOException
ShortsDestination.receiveAllShorts()
though at maximum the amount of
data as provided returned.receiveShorts
in interface ShortsDestination
receiveShorts
in interface ShortsReceiver
receiveShorts
in class AbstractShortsDestination
aMaxLength
- The block-size which is not to exceeded by the returned
data. A value of -1 specifies to retrieve all available datagrams
(same behavior as method ShortsDestination.receiveAllShorts()
.DatagramsTransmitter
or DatagramReceiver
counterpart.IOException
- Thrown in case opening or accessing an open line
(connection, junction, link) caused problems.public int available() throws IOException
DatagramTransmitter
. Use the DatagramDestination
extenison's DatagramDestination.receive()
method for retrieving
available datagrams.available
in interface Availability
IOException
- Thrown in case opening or accessing an open line
(connection, junction, link) caused problems.public void close() throws IOException
close
in interface org.refcodes.component.Closable
IOException
public boolean isOpened()
isOpened
in interface org.refcodes.component.ConnectionStatusAccessor
isOpened
in interface org.refcodes.component.OpenedAccessor
public boolean isClosable()
isClosable
in interface org.refcodes.component.Closable.CloseAutomaton
public boolean isClosed()
isClosed
in interface org.refcodes.component.ClosedAccessor
public org.refcodes.component.ConnectionStatus getConnectionStatus()
getConnectionStatus
in interface org.refcodes.component.ConnectionStatusAccessor
protected void open() throws IOException
IOException
- the open exceptionprotected void setConnectionStatus(org.refcodes.component.ConnectionStatus aConnectionStatus)
aConnectionStatus
- the new connection statusprotected boolean isOpenable()
Copyright © 2021. All rights reserved.