DATA
- the generic typeDatagramDestination<DATA>
BidirectionalConnectionTransceiver<DATA,INPUT,OUTPUT>
, BidirectionalStreamConnectionTransceiver<DATA>
, ConnectionDatagramsReceiver<DATA,CON>
, ConnectionDatagramsTransceiver<DATA,CON>
, DatagramsReceiver<DATA>
, DatagramsTransceiver<DATA>
, InputStreamConnectionReceiver<DATA>
AbstractDatagramsReceiver
, AbstractInputStreamReceiver
, AbstractPrefetchInputStreamReceiver
, BidirectionalStreamConnectionTransceiverImpl
, BidirectionalStreamTransceiver
, DatagramsReceiverDecorator
, InputStreamConnectionReceiverImpl
, InputStreamReceiver
, LoopbackDatagramsReceiver
, LoopbackDatagramsTransceiver
, PrefetchBidirectionalStreamConnectionTransceiver
, PrefetchBidirectionalStreamTransceiver
, PrefetchInputStreamConnectionReceiver
, PrefetchInputStreamReceiver
@FunctionalInterface public interface DatagramsDestination<DATA extends Serializable> extends DatagramDestination<DATA>
DatagramsDestination
is used to receive data blocks (arrays) in a
unified way. The receiveAll()
method provides the next available
short block from the counterpart DatagramsTransmitter
or
DatagramTransmitter
; in case there is none available, then this
method halts until one is available.Modifier and Type | Method | Description |
---|---|---|
DATA |
receive() |
Reads (receives) the next datagram passed from a
DatagramTransmitter counterpart. |
default DATA[] |
receive(int aMaxSize) |
Similar to
receiveAll() though at maximum the amount of data as
provided returned. |
default void |
receive(DATA[] aBuffer,
int aOffset,
int aLength) |
Receives a byte array with the number of datagrams specified inserted at
the given offset.
|
default DATA[] |
receiveAll() |
Reads (receives) the all currently available data.
|
DATA receive() throws IOException
DatagramTransmitter
counterpart. In case none datagram is
available, then this method blocks until one is available. To prevent
blocking, use the DatagramReceiver
extension's
Availability.available()
method to test beforehand whether a
byte is available (in a multi-threaded usage scenario,
Availability.available()
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.receive
in interface DatagramDestination<DATA extends Serializable>
DatagramTransmitter
counterpart.IOException
- Thrown in case opening or accessing an open line
(connection, junction, link) caused problems.default DATA[] receiveAll() throws IOException
DatagramsTransmitter
or DatagramReceiver
counterpart.IOException
- Thrown in case opening or accessing an open line
(connection, junction, link) caused problems.default DATA[] receive(int aMaxSize) throws IOException
receiveAll()
though at maximum the amount of data as
provided returned.aMaxSize
- the a block sizeDatagramsTransmitter
or DatagramReceiver
counterpart.IOException
- Thrown in case opening or accessing an open line
(connection, junction, link) caused problems.default void receive(DATA[] aBuffer, int aOffset, int aLength) throws IOException
aBuffer
- The datagrams array where to store the datagrams at.aOffset
- The offset where to start storing the received datagrams.aLength
- The number of datagrams to receive.IOException
- thrown in case of I/O issues (e.g. a timeout) while
receiving.Copyright © 2021. All rights reserved.