Class PrefetchInputStreamReceiver<DATA extends Serializable>

java.lang.Object
org.refcodes.io.PrefetchInputStreamReceiver<DATA>
Type Parameters:
DATA - the generic type
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, DatagramDestination<DATA>, DatagramReceiver<DATA>, DatagramsDestination<DATA>, DatagramsReceiver<DATA>, Receivable

public class PrefetchInputStreamReceiver<DATA extends Serializable> extends Object implements DatagramsReceiver<DATA>
The Class PrefetchInputStreamReceiver.
Author:
steiner
  • Nested Class Summary

    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.ConnectableComponent

    org.refcodes.component.ConnectableComponent.ConnectableAutomaton

    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
  • Constructor Summary

    Constructors
    Constructor
    Description
    Instantiates a new prefetch input stream receiver impl.
    PrefetchInputStreamReceiver(InputStream aInputStream, ExecutorService aExecutorService)
    Instantiates a new prefetch input stream receiver impl.
  • Method Summary

    Modifier and Type
    Method
    Description
    int
    Determines the number of available datagram from a DatagramTransmitter.
    void
    org.refcodes.component.ConnectionStatus
    boolean
    boolean
    boolean
    Reads (receives) the next datagram passed from a DatagramTransmitter counterpart.
    Reads (receives) the all currently available data.

    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.DatagramsDestination

    receive

    Methods inherited from interface org.refcodes.io.DatagramsReceiver

    receive
  • Constructor Details

    • PrefetchInputStreamReceiver

      public PrefetchInputStreamReceiver(InputStream aInputStream) throws IOException
      Instantiates a new prefetch input stream receiver impl.
      Parameters:
      aInputStream - the input stream
      Throws:
      IOException - the open exception
    • PrefetchInputStreamReceiver

      public PrefetchInputStreamReceiver(InputStream aInputStream, ExecutorService aExecutorService) throws IOException
      Instantiates a new prefetch input stream receiver impl.
      Parameters:
      aInputStream - the input stream
      aExecutorService - the executor service
      Throws:
      IOException - the open exception
  • Method Details

    • isClosed

      public boolean isClosed()
      Specified by:
      isClosed in interface org.refcodes.component.ClosedAccessor
    • isOpened

      public boolean isOpened()
      Specified by:
      isOpened in interface org.refcodes.component.ConnectionStatusAccessor
      Specified by:
      isOpened in interface org.refcodes.component.OpenedAccessor
    • available

      public int available() throws IOException
      Determines the number of available datagram from a DatagramTransmitter. Use the DatagramDestination extenison's DatagramDestination.receive() method for retrieving available datagrams.
      Specified by:
      available in interface Availability
      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.
    • receiveAll

      public DATA[] receiveAll() throws IOException
      Reads (receives) the all currently available data.
      Specified by:
      receiveAll in interface DatagramsDestination<DATA extends Serializable>
      Specified by:
      receiveAll in interface DatagramsReceiver<DATA extends Serializable>
      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.
      EOFException - Signals that an end of file or end of stream has been reached unexpectedly during input.
    • getConnectionStatus

      public org.refcodes.component.ConnectionStatus getConnectionStatus()
      Specified by:
      getConnectionStatus in interface org.refcodes.component.ConnectionStatusAccessor
    • close

      public void close() throws IOException
      Specified by:
      close in interface org.refcodes.component.Closable
      Throws:
      IOException
    • receive

      public 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>
      Specified by:
      receive in interface DatagramsDestination<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.
      EOFException - Signals that an end of file or end of stream has been reached unexpectedly during input.
    • isClosable

      public boolean isClosable()
      Specified by:
      isClosable in interface org.refcodes.component.Closable.CloseAutomaton