Class AbstractPrefetchInputStreamReceiver<DATA extends Serializable>
java.lang.Object
org.refcodes.component.AbstractConnectable
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
- Direct Known Subclasses:
PrefetchBidirectionalStreamConnectionTransceiver, PrefetchInputStreamConnectionReceiver
public abstract class AbstractPrefetchInputStreamReceiver<DATA extends Serializable>
extends AbstractDatagramsReceiver<DATA>
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>Nested classes/interfaces inherited from interface org.refcodes.component.ClosedAccessor
org.refcodes.component.ClosedAccessor.ClosedMutator, org.refcodes.component.ClosedAccessor.ClosedPropertyNested classes/interfaces inherited from interface org.refcodes.component.ConnectableComponent
org.refcodes.component.ConnectableComponent.ConnectableAutomatonNested classes/interfaces inherited from interface org.refcodes.component.ConnectionStatusAccessor
org.refcodes.component.ConnectionStatusAccessor.ConnectionStatusMutator, org.refcodes.component.ConnectionStatusAccessor.ConnectionStatusPropertyNested 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 AbstractDatagramsReceiver
DATAGRAM_QUEUE_SIZE -
Constructor Summary
ConstructorsConstructorDescriptionCreates anAbstractPrefetchInputStreamReceiver.AbstractPrefetchInputStreamReceiver(int aQueueCapacity) Creates anAbstractPrefetchInputStreamReceiverusing the given datagram queue capacity.AbstractPrefetchInputStreamReceiver(int aQueueCapacity, ExecutorService aExecutorService) Creates anAbstractPrefetchInputStreamReceiverusing the givenExecutorServicerequired for thread generation in an JEE environment.AbstractPrefetchInputStreamReceiver(ExecutorService aExecutorService) Creates anAbstractPrefetchInputStreamReceiverusing the givenExecutorServicerequired for thread generation in an JEE environment. -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()protected booleanisOpenable(InputStream aInputStream) Checks if is openable.protected voidopen(InputStream aInputStream) Open, see alsoConnectionOpenable.open(Object).Methods inherited from class AbstractDatagramsReceiver
available, pushDatagram, pushDatagrams, pushDatagrams, receive, receiveAllMethods inherited from class org.refcodes.component.AbstractConnectableAutomaton
getConnectionStatus, isClosable, isClosed, isOpenable, isOpened, open, setConnectionStatusMethods inherited from class org.refcodes.component.AbstractConnectable
isThrownAsOfAlreadyClosedMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface Availability
hasAvailableMethods inherited from interface org.refcodes.component.Closable
closeIn, closeQuietly, closeUncheckedMethods inherited from interface org.refcodes.component.Closable.CloseAutomaton
isClosableMethods inherited from interface org.refcodes.component.ClosedAccessor
isClosedMethods inherited from interface org.refcodes.component.ConnectionStatusAccessor
getConnectionStatus, isOpenedMethods inherited from interface DatagramsDestination
receiveMethods inherited from interface DatagramsReceiver
receive
-
Constructor Details
-
AbstractPrefetchInputStreamReceiver
public AbstractPrefetchInputStreamReceiver()Creates anAbstractPrefetchInputStreamReceiver. -
AbstractPrefetchInputStreamReceiver
Creates anAbstractPrefetchInputStreamReceiverusing the givenExecutorServicerequired for thread generation in an JEE environment.- Parameters:
aExecutorService- TheExecutorServiceto be used, when null then anExecutorServicesomething lineExecutors.newCachedThreadPool()is then retrieved.
-
AbstractPrefetchInputStreamReceiver
public AbstractPrefetchInputStreamReceiver(int aQueueCapacity) Creates anAbstractPrefetchInputStreamReceiverusing the given datagram queue capacity.- Parameters:
aQueueCapacity- The capacity of the prefetch queue before it blocks until data is read viaAbstractDatagramsReceiver.receive()(AbstractDatagramsReceiver.receiveAll()).
-
AbstractPrefetchInputStreamReceiver
Creates anAbstractPrefetchInputStreamReceiverusing the givenExecutorServicerequired for thread generation in an JEE environment.- Parameters:
aQueueCapacity- The capacity of the prefetch queue before it blocks until data is read viaAbstractDatagramsReceiver.receive()(AbstractDatagramsReceiver.receiveAll()).aExecutorService- TheExecutorServiceto be used, when null then anExecutorServicesomething lineExecutors.newCachedThreadPool()is then retrieved.
-
-
Method Details
-
close
- Specified by:
closein interfaceorg.refcodes.component.Closable- Overrides:
closein classAbstractDatagramsReceiver<DATA extends Serializable>- Throws:
IOException
-
open
Open, see alsoConnectionOpenable.open(Object).- Parameters:
aInputStream- the input stream- Throws:
IOException- the open exception
-
isOpenable
Checks if is openable. See alsoConnectionOpenable.ConnectionOpenAutomaton.isOpenable(Object).- Parameters:
aInputStream- the input stream- Returns:
- true, if is openable
-