Module org.refcodes.io
Package org.refcodes.io
Class AbstractInputStreamReceiver<DATA extends Serializable>
- java.lang.Object
-
- org.refcodes.component.AbstractConnectableAutomaton
-
- org.refcodes.io.AbstractInputStreamReceiver<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:
BidirectionalStreamConnectionTransceiverImpl,InputStreamConnectionReceiverImpl
public abstract class AbstractInputStreamReceiver<DATA extends Serializable> extends org.refcodes.component.AbstractConnectableAutomaton implements DatagramsReceiver<DATA>
Abstract implementation of theDatagramsReceiverinterface. Theopen(InputStream),AbstractConnectableAutomaton.setConnectionStatus(ConnectionStatus)andAbstractConnectableAutomaton.isOpenable()methods are your hooks when extending this class.
-
-
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 AbstractInputStreamReceiver()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description intavailable()Checks for datagram.voidclose()protected booleanisOpenable(InputStream aInputStream)Checks if is openable.protected voidopen(InputStream aInputStream)Open, see alsoConnectionOpenable.open(Object).DATAreceive()Reads (receives) the next datagram passed from aDatagramTransmittercounterpart.-
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.ConnectionStatusAccessor
getConnectionStatus, isOpened
-
Methods inherited from interface org.refcodes.io.DatagramsDestination
receive
-
Methods inherited from interface org.refcodes.io.DatagramsReceiver
receive, receiveAll
-
-
-
-
Method Detail
-
available
public int available() throws IOExceptionChecks for datagram.- Specified by:
availablein interfaceAvailability- Returns:
- true, if successful
- Throws:
IOException- the open exception
-
receive
public DATA receive() throws IOException
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.EOFException- Signals that an end of file or end of stream has been reached unexpectedly during input.
-
close
public void close() throws IOException- Specified by:
closein interfaceorg.refcodes.component.Closable- Overrides:
closein classorg.refcodes.component.AbstractConnectableAutomaton- Throws:
IOException
-
open
protected void open(InputStream aInputStream) throws IOException
Open, see alsoConnectionOpenable.open(Object).- Parameters:
aInputStream- the input stream- Throws:
IOException- the open exception
-
isOpenable
protected boolean isOpenable(InputStream aInputStream)
Checks if is openable. See alsoConnectionOpenable.ConnectionOpenAutomaton.isOpenable(Object).- Parameters:
aInputStream- the input stream- Returns:
- true, if is openable
-
-