Class PrefetchBidirectionalStreamTransceiver<DATA extends Serializable>
java.lang.Object
org.refcodes.io.PrefetchBidirectionalStreamTransceiver<DATA>
- Type Parameters:
DATA- the generic type
- All Implemented Interfaces:
Flushable, Closable, Closable.CloseAutomaton, ClosedAccessor, ConnectableComponent, ConnectableComponent.ConnectableAutomaton, ConnectionStatusAccessor, Flushable, OpenedAccessor, Availability, DatagramDestination<DATA>, DatagramReceiver<DATA>, DatagramsDestination<DATA>, DatagramSource<DATA>, DatagramsReceiver<DATA>, DatagramsSource<DATA>, DatagramsTransceiver<DATA>, DatagramsTransmitter<DATA>, DatagramTransceiver<DATA>, DatagramTransmitter<DATA>, Receivable, Transmittable
public class PrefetchBidirectionalStreamTransceiver<DATA extends Serializable>
extends Object
implements DatagramsTransceiver<DATA>
The Class PrefetchBidirectionalStreamTransceiver.
-
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 Flushable
Flushable.FlushBuilder<B>Nested classes/interfaces inherited from interface OpenedAccessor
OpenedAccessor.OpenedMutator, OpenedAccessor.OpenedProperty -
Constructor Summary
ConstructorsConstructorDescriptionPrefetchBidirectionalStreamTransceiver(InputStream aInputStream, OutputStream aOutputStream) Instantiates a new prefetch bidirectional stream transceiver impl.PrefetchBidirectionalStreamTransceiver(InputStream aInputStream, OutputStream aOutputStream, ExecutorService aExecutorService) Instantiates a new prefetch bidirectional stream transceiver impl. -
Method Summary
Modifier and TypeMethodDescriptionintDetermines the number of available datagram from aDatagramTransmitter.voidclose()voidflush()booleanbooleanisClosed()booleanisOpened()receive()Reads (receives) the next datagram passed from aDatagramTransmittercounterpart.DATA[]Reads (receives) the all currently available data.voidWrites (sends) a datagram to a listeningDatagramReceiver.voidWrites (sends) a datagram block to a listeningDatagramReceiverorDatagramsReceiver.voidWrite datagrams.Methods 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 DatagramsDestination
receiveMethods inherited from interface DatagramsReceiver
receiveMethods inherited from interface Flushable
flushUnchecked, isFlushable
-
Constructor Details
-
PrefetchBidirectionalStreamTransceiver
public PrefetchBidirectionalStreamTransceiver(InputStream aInputStream, OutputStream aOutputStream) throws IOException Instantiates a new prefetch bidirectional stream transceiver impl.- Parameters:
aInputStream- the input streamaOutputStream- the output stream- Throws:
IOException- the open exception
-
PrefetchBidirectionalStreamTransceiver
public PrefetchBidirectionalStreamTransceiver(InputStream aInputStream, OutputStream aOutputStream, ExecutorService aExecutorService) throws IOException Instantiates a new prefetch bidirectional stream transceiver impl.- Parameters:
aInputStream- the input streamaOutputStream- the output streamaExecutorService- the executor service- Throws:
IOException- the open exception
-
-
Method Details
-
isClosed
public boolean isClosed()- Specified by:
isClosedin interfaceClosedAccessor
-
isOpened
public boolean isOpened()- Specified by:
isOpenedin interfaceConnectionStatusAccessor- Specified by:
isOpenedin interfaceOpenedAccessor
-
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
- Specified by:
getConnectionStatusin interfaceConnectionStatusAccessor
-
close
- Specified by:
closein interfaceClosable- 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.
-
transmit
Writes (sends) a datagram block to a listeningDatagramReceiverorDatagramsReceiver.- Specified by:
transmitin interfaceDatagramsSource<DATA extends Serializable>- Parameters:
aDatagram- The datagram to be pushed to the receivingDatagramReceiverorDatagramsReceiver.- Throws:
IOException- Thrown in case opening or accessing an open line (connection, junction, link) caused problems.
-
transmit
Write datagrams.- Specified by:
transmitin interfaceDatagramsSource<DATA extends Serializable>- Specified by:
transmitin interfaceDatagramsTransmitter<DATA extends Serializable>- Parameters:
aDatagram- the datagramaOffset- the offsetaLength- the length- Throws:
IOException- the open exception
-
transmit
Writes (sends) a datagram to a listeningDatagramReceiver.- Specified by:
transmitin interfaceDatagramSource<DATA extends Serializable>- Specified by:
transmitin interfaceDatagramsSource<DATA extends Serializable>- Parameters:
aDatagram- The datagram to be pushed to the receivingDatagramSource.- Throws:
IOException- Thrown in case opening or accessing an open line (connection, junction, link) caused problems.
-
flush
- Specified by:
flushin interfaceDatagramTransmitter<DATA extends Serializable>- Specified by:
flushin interfaceFlushable- Specified by:
flushin interfaceFlushable- Throws:
IOException
-
isClosable
public boolean isClosable()- Specified by:
isClosablein interfaceClosable.CloseAutomaton
-