Class AbstractInputStreamReceiver<DATA extends Serializable>
java.lang.Object
org.refcodes.component.AbstractConnectable
org.refcodes.component.AbstractConnectableAutomaton
org.refcodes.io.AbstractInputStreamReceiver<DATA>
- Type Parameters:
DATA- The type of the datagram to be operated with.
- All Implemented Interfaces:
Closable, Closable.CloseAutomaton, ClosedAccessor, ConnectableComponent, ConnectableComponent.ConnectableAutomaton, ConnectionStatusAccessor, OpenedAccessor, Availability, DatagramDestination<DATA>, DatagramReceiver<DATA>, DatagramsDestination<DATA>, DatagramsReceiver<DATA>, Receivable
- Direct Known Subclasses:
BidirectionalStreamConnectionTransceiverImpl, InputStreamConnectionReceiverImpl
public abstract class AbstractInputStreamReceiver<DATA extends Serializable>
extends AbstractConnectableAutomaton
implements DatagramsReceiver<DATA>
Abstract implementation of the
DatagramsReceiver interface. The
open(InputStream), AbstractConnectableAutomaton.setConnectionStatus(ConnectionStatus)
and AbstractConnectableAutomaton.isOpenable() methods are your hooks when extending this class.-
Nested Class Summary
Nested classes/interfaces inherited from interface Closable
Closable.CloseAutomaton, Closable.CloseBuilder<B>Nested classes/interfaces inherited from interface ClosedAccessor
ClosedAccessor.ClosedMutator, ClosedAccessor.ClosedPropertyNested classes/interfaces inherited from interface ConnectableComponent
ConnectableComponent.ConnectableAutomatonNested classes/interfaces inherited from interface ConnectionStatusAccessor
ConnectionStatusAccessor.ConnectionStatusMutator, ConnectionStatusAccessor.ConnectionStatusPropertyNested classes/interfaces inherited from interface OpenedAccessor
OpenedAccessor.OpenedMutator, OpenedAccessor.OpenedProperty -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionintChecks for datagram.voidclose()protected booleanisOpenable(InputStream aInputStream) Checks if is openable.protected voidopen(InputStream aInputStream) Open, see alsoConnectionOpenable.open(Object).receive()Reads (receives) the next datagram passed from aDatagramTransmittercounterpart.Methods inherited from class AbstractConnectableAutomaton
getConnectionStatus, isClosable, isClosed, isOpenable, isOpened, open, setConnectionStatusMethods inherited from class AbstractConnectable
isThrownAsOfAlreadyClosedMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface Availability
hasAvailableMethods inherited from interface Closable
closeIn, closeQuietly, closeUncheckedMethods inherited from interface Closable.CloseAutomaton
isClosableMethods inherited from interface ClosedAccessor
isClosedMethods inherited from interface ConnectionStatusAccessor
getConnectionStatus, isOpenedMethods inherited from interface DatagramsDestination
receiveMethods inherited from interface DatagramsReceiver
receive, receiveAll
-
Constructor Details
-
AbstractInputStreamReceiver
public AbstractInputStreamReceiver()
-
-
Method Details
-
available
Checks for datagram.- Specified by:
availablein interfaceAvailability- Returns:
- true, if successful
- Throws:
IOException- the open exception
-
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.
-
close
- Specified by:
closein interfaceClosable- Overrides:
closein classAbstractConnectableAutomaton- 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
-