Module org.refcodes.io
Package org.refcodes.io
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
-
-
Constructor Summary
Constructors Constructor Description PrefetchInputStreamReceiver(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
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
available()
Determines the number of available datagram from aDatagramTransmitter
.void
close()
org.refcodes.component.ConnectionStatus
getConnectionStatus()
boolean
isClosable()
boolean
isClosed()
boolean
isOpened()
DATA
receive()
Reads (receives) the next datagram passed from aDatagramTransmitter
counterpart.DATA[]
receiveAll()
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 Detail
-
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 streamaExecutorService
- the executor service- Throws:
IOException
- the open exception
-
-
Method Detail
-
isClosed
public boolean isClosed()
- Specified by:
isClosed
in interfaceorg.refcodes.component.ClosedAccessor
-
isOpened
public boolean isOpened()
- Specified by:
isOpened
in interfaceorg.refcodes.component.ConnectionStatusAccessor
- Specified by:
isOpened
in interfaceorg.refcodes.component.OpenedAccessor
-
available
public int available() throws IOException
Determines the number of available datagram from aDatagramTransmitter
. Use theDatagramDestination
extenison'sDatagramDestination.receive()
method for retrieving available datagrams.- Specified by:
available
in 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
public DATA[] receiveAll() throws IOException
Reads (receives) the all currently available data.- Specified by:
receiveAll
in interfaceDatagramsDestination<DATA extends Serializable>
- Specified by:
receiveAll
in interfaceDatagramsReceiver<DATA extends Serializable>
- Returns:
- The next short block sent from the
DatagramsTransmitter
orDatagramReceiver
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 interfaceorg.refcodes.component.ConnectionStatusAccessor
-
close
public void close() throws IOException
- Specified by:
close
in interfaceorg.refcodes.component.Closable
- Throws:
IOException
-
receive
public DATA receive() throws IOException
Reads (receives) the next datagram passed from aDatagramTransmitter
counterpart. In case none datagram is available, then this method blocks until one is available. To prevent blocking, use theDatagramReceiver
extension'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 aThread
is waiting for a datagram to be read andThread.interrupt()
is being called, then the operation is aborted and anInterruptedException
is thrown.- Specified by:
receive
in interfaceDatagramDestination<DATA extends Serializable>
- Specified by:
receive
in interfaceDatagramsDestination<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 interfaceorg.refcodes.component.Closable.CloseAutomaton
-
-