java.lang.Object
org.refcodes.io.AbstractShortsDestination
org.refcodes.io.AbstractShortsReceiver
- All Implemented Interfaces:
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
- Direct Known Subclasses:
LoopbackShortsReceiver
,LoopbackShortsTransceiver
,ShortArrayReceiver
,ShortsReceiverDecorator
public abstract class AbstractShortsReceiver
extends AbstractShortsDestination
implements ShortsReceiver
The
AbstractShortsReceiver
is a base abstract implementation of the
ShortsReceiver
interface providing common functionality for concrete
real live implementations.-
Nested Class Summary
Modifier and TypeClassDescriptionprotected static class
The Class ConnectableAutomaton.Nested classes/interfaces inherited from interface org.refcodes.component.Closable
org.refcodes.component.Closable.CloseAutomaton, org.refcodes.component.Closable.CloseBuilder<B extends org.refcodes.component.Closable.CloseBuilder<B>>
Nested classes/interfaces inherited from interface org.refcodes.component.ClosedAccessor
org.refcodes.component.ClosedAccessor.ClosedMutator, org.refcodes.component.ClosedAccessor.ClosedProperty
Nested classes/interfaces inherited from interface org.refcodes.component.ConnectionStatusAccessor
org.refcodes.component.ConnectionStatusAccessor.ConnectionStatusMutator, org.refcodes.component.ConnectionStatusAccessor.ConnectionStatusProperty
Nested classes/interfaces inherited from interface org.refcodes.component.OpenedAccessor
org.refcodes.component.OpenedAccessor.OpenedMutator, org.refcodes.component.OpenedAccessor.OpenedProperty
-
Field Summary
Modifier and TypeFieldDescriptionFields inherited from class org.refcodes.io.AbstractShortsDestination
_datagramQueue, DATAGRAM_QUEUE_SIZE
-
Constructor Summary
ConstructorDescriptionConstructs aAbstractShortsReceiver
with a default sized blocking queue enabling a maximum ofAbstractShortsDestination.DATAGRAM_QUEUE_SIZE
datagrams. ------------------------------------------------------------------------- Make sure your code fetches the datagrams quick enough to prevent filling up of the queue.AbstractShortsReceiver
(int aCapacity) Constructs aAbstractShortsReceiver
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. -
Method Summary
Modifier and TypeMethodDescriptionint
Determines the number of available datagram from aDatagramTransmitter
.void
close()
org.refcodes.component.ConnectionStatus
boolean
boolean
isClosed()
protected boolean
Checks if is openable.boolean
isOpened()
protected void
open()
Open.short[]
Reads (receives) the all currently available data.short
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 toShortsDestination.receiveAllShorts()
though at maximum the amount of data as provided returned.protected void
setConnectionStatus
(org.refcodes.component.ConnectionStatus aConnectionStatus) Sets the connection status.Methods inherited from class org.refcodes.io.AbstractShortsDestination
pushDatagram, pushDatagrams, pushDatagrams
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.refcodes.io.Availability
hasAvailable
Methods inherited from interface org.refcodes.component.Closable
closeIn, closeQuietly, closeUnchecked
Methods inherited from interface org.refcodes.io.ShortsDestination
receiveShorts
-
Field Details
-
_automaton
-
-
Constructor Details
-
AbstractShortsReceiver
public AbstractShortsReceiver()Constructs aAbstractShortsReceiver
with a default sized blocking queue enabling a maximum ofAbstractShortsDestination.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 viaAbstractShortsDestination.pushDatagram(short)
to the queue is blocked until elements are taken from the queue viareceiveShort()
. -
AbstractShortsReceiver
public AbstractShortsReceiver(int aCapacity) Constructs aAbstractShortsReceiver
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 viaAbstractShortsDestination.pushDatagram(short)
to the queue is blocked until elements are taken from the queue viareceiveShort()
.- Parameters:
aCapacity
- The capacity of the queue holding the received datagrams.
-
-
Method Details
-
receiveShort
Reads (receives) the next short available, in case none short is available, then this method blocks until one is available.- Specified by:
receiveShort
in interfaceShortDestination
- Specified by:
receiveShort
in interfaceShortsDestination
- Overrides:
receiveShort
in classAbstractShortsDestination
- Returns:
- The next short sent from the
ShortsTransmitter
counterpart. - Throws:
IOException
- Thrown in case opening or accessing an open line (connection, junction, link) caused problems.EOFException
- Signals that an end of file or end of stream has been reached unexpectedly during input.
-
receiveAllShorts
Reads (receives) the all currently available data.- Specified by:
receiveAllShorts
in interfaceShortsDestination
- Specified by:
receiveAllShorts
in interfaceShortsReceiver
- Overrides:
receiveAllShorts
in classAbstractShortsDestination
- Returns:
- The next short block sent from the
DatagramsTransmitter
orDatagramReceiver
counterpart. - Throws:
IOException
- Thrown in case opening or accessing an open line (connection, junction, link) caused problems.EOFException
- Signals that an end of file or end of stream has been reached unexpectedly during input.
-
receiveShorts
Similar toShortsDestination.receiveAllShorts()
though at maximum the amount of data as provided returned.- Specified by:
receiveShorts
in interfaceShortsDestination
- Specified by:
receiveShorts
in interfaceShortsReceiver
- Overrides:
receiveShorts
in classAbstractShortsDestination
- Parameters:
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 methodShortsDestination.receiveAllShorts()
.- Returns:
- The next short block sent from the
DatagramsTransmitter
orDatagramReceiver
counterpart. - Throws:
IOException
- Thrown in case opening or accessing an open line (connection, junction, link) caused problems.EOFException
- Signals that an end of file or end of stream has been reached unexpectedly during input.
-
available
Determines the number of available datagram from aDatagramTransmitter
. Use theDatagramDestination
extenison'sDatagramDestination.receive()
method for retrieving available datagrams.- Specified by:
available
in interfaceAvailability
- Returns:
- The number of datagrams ready to be retrieved .
- Throws:
IOException
- Thrown in case opening or accessing an open line (connection, junction, link) caused problems.
-
close
- Specified by:
close
in interfaceorg.refcodes.component.Closable
- Throws:
IOException
-
isOpened
public boolean isOpened()- Specified by:
isOpened
in interfaceorg.refcodes.component.ConnectionStatusAccessor
- Specified by:
isOpened
in interfaceorg.refcodes.component.OpenedAccessor
-
isClosable
public boolean isClosable()- Specified by:
isClosable
in interfaceorg.refcodes.component.Closable.CloseAutomaton
-
isClosed
public boolean isClosed()- Specified by:
isClosed
in interfaceorg.refcodes.component.ClosedAccessor
-
getConnectionStatus
public org.refcodes.component.ConnectionStatus getConnectionStatus()- Specified by:
getConnectionStatus
in interfaceorg.refcodes.component.ConnectionStatusAccessor
-
open
Open.- Throws:
IOException
- the open exception
-
setConnectionStatus
protected void setConnectionStatus(org.refcodes.component.ConnectionStatus aConnectionStatus) Sets the connection status.- Parameters:
aConnectionStatus
- the new connection status
-
isOpenable
protected boolean isOpenable()Checks if is openable.- Returns:
- true, if is openable
-