Class AbstractPrefetchInputStreamReceiver<DATA extends Serializable>

java.lang.Object
org.refcodes.component.AbstractConnectableAutomaton
org.refcodes.io.AbstractDatagramsReceiver<DATA>
org.refcodes.io.AbstractPrefetchInputStreamReceiver<DATA>
Type Parameters:
DATA - The type of the datagram to be operated with.
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, org.refcodes.mixin.Loggable
Direct Known Subclasses:
PrefetchBidirectionalStreamConnectionTransceiver, PrefetchInputStreamConnectionReceiver

public abstract class AbstractPrefetchInputStreamReceiver<DATA extends Serializable> extends AbstractDatagramsReceiver<DATA> implements org.refcodes.mixin.Loggable
Abstract implementation of the DatagramsReceiver interface. As of the prefetching functionality, a separate daemon thread (retrieved via an ExecutorService) reads from the provided InputStream and places the datagrams into a datagram queue until the datagram queue's capacity is reached. If the queue is empty, then the AbstractDatagramsReceiver.receive() ( AbstractDatagramsReceiver.receiveAll()) method is blocked until the daemon thread places new datagrams into the queue. See also AbstractDatagramsReceiver.
  • 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
  • Field Summary

    Fields inherited from class org.refcodes.io.AbstractDatagramsReceiver

    DATAGRAM_QUEUE_SIZE

    Fields inherited from interface org.refcodes.mixin.Loggable

    RUNTIME_LOGGER_CLASS, RUNTIME_LOGGER_FACTORY_CLASS, RUNTIME_LOGGER_FACTORY_METHOD
  • Constructor Summary

    Constructors
    Constructor
    Description
    Creates an AbstractPrefetchInputStreamReceiver using the given datagram queue capacity.
    AbstractPrefetchInputStreamReceiver(int aQueueCapacity, ExecutorService aExecutorService)
    Creates an AbstractPrefetchInputStreamReceiver using the given ExecutorService required for thread generation in an JEE environment.
    Creates an AbstractPrefetchInputStreamReceiver using the given ExecutorService required for thread generation in an JEE environment.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    protected boolean
    isOpenable(InputStream aInputStream)
    Checks if is openable.
    protected void
    open(InputStream aInputStream)
    Open, see also ConnectionOpenable.open(Object).

    Methods inherited from class org.refcodes.component.AbstractConnectableAutomaton

    getConnectionStatus, isClosable, isClosed, isOpenable, isOpened, open, setConnectionStatus

    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.component.Closable.CloseAutomaton

    isClosable

    Methods inherited from interface org.refcodes.component.ClosedAccessor

    isClosed

    Methods inherited from interface org.refcodes.component.ConnectionStatusAccessor

    getConnectionStatus, isOpened

    Methods inherited from interface org.refcodes.io.DatagramsDestination

    receive

    Methods inherited from interface org.refcodes.io.DatagramsReceiver

    receive

    Methods inherited from interface org.refcodes.mixin.Loggable

    alert, alert, critical, critical, debug, error, info, notice, panic, trace, warn, warn