Package org.refcodes.io
Class InputStreamReceiverImpl<DATA extends Serializable>
- java.lang.Object
-
- org.refcodes.io.InputStreamReceiverImpl<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
,BlockProvider<DATA>
,BlockReceiver<DATA>
,DatagramProvider<DATA>
,DatagramReceiver<DATA>
,Provider<DATA>
,Receivable
,Receiver<DATA>
,org.refcodes.mixin.Releaseable
public class InputStreamReceiverImpl<DATA extends Serializable> extends Object implements Receiver<DATA>
The Class InputStreamReceiverImpl.- 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 InputStreamReceiverImpl(InputStream aInputStream)
Instantiates a new input stream receiver impl.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
org.refcodes.component.ConnectionStatus
getConnectionStatus()
boolean
hasDatagram()
Determines whether a datagram is available from aDatagramSender
.boolean
isClosable()
boolean
isClosed()
boolean
isOpened()
DATA
readDatagram()
Reads (receives) the next datagram passed from aDatagramSender
counterpart.DATA[]
readDatagrams()
Read datagrams.void
releaseAll()
-
Methods inherited from interface org.refcodes.component.Closable
closeIn, closeQuietly, closeUnchecked
-
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.Receiver
readDatagrams
-
-
-
-
Constructor Detail
-
InputStreamReceiverImpl
public InputStreamReceiverImpl(InputStream aInputStream) throws org.refcodes.component.OpenException
Instantiates a new input stream receiver impl.- Parameters:
aInputStream
- the input stream- Throws:
org.refcodes.component.OpenException
- 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.OpenedAccessor
-
hasDatagram
public boolean hasDatagram() throws org.refcodes.component.OpenException
Determines whether a datagram is available from aDatagramSender
. Use theDatagramProvider
extenison'sDatagramProvider.readDatagram()
method for retrieving the available datagram.- Specified by:
hasDatagram
in interfaceReceivable
- Returns:
- True in case there is a datagram ready to be retrieved .
- Throws:
org.refcodes.component.OpenException
- Thrown in case opening or accessing an open line (connection, junction, link) caused problems.
-
readDatagrams
public DATA[] readDatagrams() throws org.refcodes.component.OpenException, InterruptedException
Read datagrams.- Specified by:
readDatagrams
in interfaceBlockProvider<DATA extends Serializable>
- Specified by:
readDatagrams
in interfaceProvider<DATA extends Serializable>
- Specified by:
readDatagrams
in interfaceReceiver<DATA extends Serializable>
- Returns:
- the DAT a[]
- Throws:
org.refcodes.component.OpenException
- the open exceptionInterruptedException
- the interrupted exception
-
getConnectionStatus
public org.refcodes.component.ConnectionStatus getConnectionStatus()
- Specified by:
getConnectionStatus
in interfaceorg.refcodes.component.ConnectionStatusAccessor
-
releaseAll
public void releaseAll()
- Specified by:
releaseAll
in interfaceorg.refcodes.mixin.Releaseable
-
close
public void close() throws org.refcodes.component.CloseException
- Specified by:
close
in interfaceorg.refcodes.component.Closable
- Throws:
org.refcodes.component.CloseException
-
readDatagram
public DATA readDatagram() throws org.refcodes.component.OpenException, InterruptedException
Reads (receives) the next datagram passed from aDatagramSender
counterpart. In case none datagram is available, then this method blocks until one is available. To prevent blocking, use theDatagramReceiver
extension'sReceivable.hasDatagram()
method to test beforehand whether a byte is available (in a multi-threaded usage scenario,Receivable.hasDatagram()
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:
readDatagram
in interfaceDatagramProvider<DATA extends Serializable>
- Returns:
- The next datagram sent from the
DatagramSender
counterpart. - Throws:
org.refcodes.component.OpenException
- Thrown in case opening or accessing an open line (connection, junction, link) caused problems.InterruptedException
- Thrown when aThread
is waiting, sleeping, or otherwise occupied, and theThread
is interrupted, either before or during the activity.
-
isClosable
public boolean isClosable()
- Specified by:
isClosable
in interfaceorg.refcodes.component.Closable.CloseAutomaton
-
-