Interface DatagramsDestination<DATA extends Serializable>

Type Parameters:
DATA - the generic type
All Superinterfaces:
DatagramDestination<DATA>
All Known Subinterfaces:
BidirectionalConnectionTransceiver<DATA,​INPUT,​OUTPUT>, BidirectionalStreamConnectionTransceiver<DATA>, ConnectionDatagramsReceiver<DATA,​CON>, ConnectionDatagramsTransceiver<DATA,​CON>, DatagramsReceiver<DATA>, DatagramsTransceiver<DATA>, InputStreamConnectionReceiver<DATA>
All Known Implementing Classes:
AbstractDatagramsReceiver, AbstractInputStreamReceiver, AbstractPrefetchInputStreamReceiver, BidirectionalStreamConnectionTransceiverImpl, BidirectionalStreamTransceiver, DatagramsReceiverDecorator, InputStreamConnectionReceiverImpl, InputStreamReceiver, LoopbackDatagramsReceiver, LoopbackDatagramsTransceiver, PrefetchBidirectionalStreamConnectionTransceiver, PrefetchBidirectionalStreamTransceiver, PrefetchInputStreamConnectionReceiver, PrefetchInputStreamReceiver
Functional Interface:
This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.

@FunctionalInterface
public interface DatagramsDestination<DATA extends Serializable>
extends DatagramDestination<DATA>
The 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.
  • Method Summary

    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.
  • Method Details

    • receive

      DATA receive() throws IOException
      Reads (receives) the next datagram passed from a 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.
      Specified by:
      receive in interface DatagramDestination<DATA extends Serializable>
      Returns:
      The next datagram sent from the DatagramTransmitter counterpart.
      Throws:
      IOException - Thrown in case opening or accessing an open line (connection, junction, link) caused problems.
    • receiveAll

      default DATA[] receiveAll() throws IOException
      Reads (receives) the all currently available data.
      Returns:
      The next short block sent from the DatagramsTransmitter or DatagramReceiver counterpart.
      Throws:
      IOException - Thrown in case opening or accessing an open line (connection, junction, link) caused problems.
    • receive

      default DATA[] receive​(int aMaxSize) throws IOException
      Similar to receiveAll() though at maximum the amount of data as provided returned.
      Parameters:
      aMaxSize - the a block size
      Returns:
      The next short block sent from the DatagramsTransmitter or DatagramReceiver counterpart.
      Throws:
      IOException - Thrown in case opening or accessing an open line (connection, junction, link) caused problems.
    • receive

      default void receive​(DATA[] aBuffer, int aOffset, int aLength) throws IOException
      Receives a byte array with the number of datagrams specified inserted at the given offset. This method blocks till a datagrams is available.
      Parameters:
      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.
      Throws:
      IOException - thrown in case of I/O issues (e.g. a timeout) while receiving.