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>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 -
Constructor Summary
ConstructorsConstructorDescriptionPrefetchInputStreamReceiver(InputStream aInputStream) 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 TypeMethodDescriptionintDetermines the number of available datagram from aDatagramTransmitter.voidclose()org.refcodes.component.ConnectionStatusbooleanbooleanisClosed()booleanisOpened()receive()Reads (receives) the next datagram passed from aDatagramTransmittercounterpart.DATA[]Reads (receives) the all currently available data.Methods 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 DatagramsDestination
receiveMethods inherited from interface DatagramsReceiver
receive
-
Constructor Details
-
PrefetchInputStreamReceiver
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 streamaExecutorService- the executor service- Throws:
IOException- the open exception
-
-
Method Details
-
isClosed
public boolean isClosed()- Specified by:
isClosedin interfaceorg.refcodes.component.ClosedAccessor
-
isOpened
public boolean isOpened()- Specified by:
isOpenedin interfaceorg.refcodes.component.ConnectionStatusAccessor- Specified by:
isOpenedin interfaceorg.refcodes.component.OpenedAccessor
-
available
Determines the number of available datagram from aDatagramTransmitter. Use theDatagramDestinationextenison'sDatagramDestination.receive()method for retrieving available datagrams.- Specified by:
availablein interfaceAvailability- 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
Reads (receives) the all currently available data.- Specified by:
receiveAllin interfaceDatagramsDestination<DATA extends Serializable>- Specified by:
receiveAllin interfaceDatagramsReceiver<DATA extends Serializable>- Returns:
- The next short block sent from the
DatagramsTransmitterorDatagramReceivercounterpart. - Throws:
IOException- Thrown in case opening or accessing an open line (connection, junction, link) caused problems.
-
getConnectionStatus
public org.refcodes.component.ConnectionStatus getConnectionStatus()- Specified by:
getConnectionStatusin interfaceorg.refcodes.component.ConnectionStatusAccessor
-
close
- Specified by:
closein interfaceorg.refcodes.component.Closable- Throws:
IOException
-
receive
Reads (receives) the next datagram passed from aDatagramTransmittercounterpart. In case none datagram is available, then this method blocks until one is available. To prevent blocking, use theDatagramReceiverextension'sAvailability.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 aThreadis waiting for a datagram to be read andThread.interrupt()is being called, then the operation is aborted and anInterruptedExceptionis thrown.- Specified by:
receivein interfaceDatagramDestination<DATA extends Serializable>- Specified by:
receivein interfaceDatagramsDestination<DATA extends Serializable>- Returns:
- The next datagram sent from the
DatagramTransmittercounterpart. - Throws:
IOException- Thrown in case opening or accessing an open line (connection, junction, link) caused problems.
-
isClosable
public boolean isClosable()- Specified by:
isClosablein interfaceorg.refcodes.component.Closable.CloseAutomaton
-