Module org.refcodes.io
Package org.refcodes.io
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
ConstructorDescriptionCreates anAbstractPrefetchInputStreamReceiver
.AbstractPrefetchInputStreamReceiver
(int aQueueCapacity) Creates anAbstractPrefetchInputStreamReceiver
using the given datagram queue capacity.AbstractPrefetchInputStreamReceiver
(int aQueueCapacity, ExecutorService aExecutorService) Creates anAbstractPrefetchInputStreamReceiver
using the givenExecutorService
required for thread generation in an JEE environment.AbstractPrefetchInputStreamReceiver
(ExecutorService aExecutorService) Creates anAbstractPrefetchInputStreamReceiver
using the givenExecutorService
required for thread generation in an JEE environment. -
Method Summary
Modifier and TypeMethodDescriptionvoid
close()
protected boolean
isOpenable
(InputStream aInputStream) Checks if is openable.protected void
open
(InputStream aInputStream) Open, see alsoConnectionOpenable.open(Object)
.Methods inherited from class org.refcodes.io.AbstractDatagramsReceiver
available, pushDatagram, pushDatagrams, pushDatagrams, receive, receiveAll
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
-
Constructor Details
-
AbstractPrefetchInputStreamReceiver
public AbstractPrefetchInputStreamReceiver()Creates anAbstractPrefetchInputStreamReceiver
. -
AbstractPrefetchInputStreamReceiver
Creates anAbstractPrefetchInputStreamReceiver
using the givenExecutorService
required for thread generation in an JEE environment.- Parameters:
aExecutorService
- TheExecutorService
to be used, when null then anExecutorService
something lineExecutors.newCachedThreadPool()
is then retrieved.
-
AbstractPrefetchInputStreamReceiver
public AbstractPrefetchInputStreamReceiver(int aQueueCapacity) Creates anAbstractPrefetchInputStreamReceiver
using 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 anAbstractPrefetchInputStreamReceiver
using the givenExecutorService
required 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
- TheExecutorService
to be used, when null then anExecutorService
something lineExecutors.newCachedThreadPool()
is then retrieved.
-
-
Method Details
-
close
- Specified by:
close
in interfaceorg.refcodes.component.Closable
- Overrides:
close
in 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
-