Class BidirectionalStreamConnectionTransceiverImpl<DATA extends Serializable>
java.lang.Object
org.refcodes.component.AbstractConnectable
org.refcodes.component.AbstractConnectableAutomaton
org.refcodes.io.AbstractInputStreamReceiver<DATA>
org.refcodes.io.BidirectionalStreamConnectionTransceiverImpl<DATA>
- Type Parameters:
DATA- the generic type
- All Implemented Interfaces:
Flushable, BidirectionalConnectionComponent<InputStream, OutputStream>, BidirectionalConnectionComponent.BidirectionalConnectionAutomaton<InputStream, OutputStream>, BidirectionalConnectionOpenable<InputStream, OutputStream>, BidirectionalConnectionOpenable.BidirectionalConnectionOpenAutomaton<InputStream, OutputStream>, Closable, Closable.CloseAutomaton, ClosedAccessor, ConnectableComponent, ConnectableComponent.ConnectableAutomaton, ConnectionStatusAccessor, Flushable, OpenedAccessor, Availability, BidirectionalConnectionTransceiver<DATA, InputStream, OutputStream>, BidirectionalStreamConnectionTransceiver<DATA>, DatagramDestination<DATA>, DatagramReceiver<DATA>, DatagramsDestination<DATA>, DatagramSource<DATA>, DatagramsReceiver<DATA>, DatagramsSource<DATA>, DatagramsTransceiver<DATA>, DatagramsTransmitter<DATA>, DatagramTransceiver<DATA>, DatagramTransmitter<DATA>, Receivable, Transmittable
public class BidirectionalStreamConnectionTransceiverImpl<DATA extends Serializable>
extends AbstractInputStreamReceiver<DATA>
implements BidirectionalStreamConnectionTransceiver<DATA>
The Class BidirectionalStreamConnectionTransceiverImpl.
-
Nested Class Summary
Nested classes/interfaces inherited from interface BidirectionalConnectionComponent
BidirectionalConnectionComponent.BidirectionalConnectionAutomaton<INPUT,OUTPUT> Nested classes/interfaces inherited from interface BidirectionalConnectionOpenable
BidirectionalConnectionOpenable.BidirectionalConnectionOpenAutomaton<INPUT,OUTPUT> 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
ConstructorsConstructorDescriptionInstantiates a new bidirectional stream connection transceiver impl. -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()voidflush()booleanisOpenable(InputStream aInputStream, OutputStream aOutputStream) voidopen(InputStream aInputStream, OutputStream aOutputStream) protected voidopen(OutputStream aOutputStream) HINT: For testing purposes you can pass an already flushedObjectOutputStream(viaObjectOutputStream.flush()) encapsulating aPipedOutputStreamwhich in turn encapsulates aPipedInputStreamto thisopen(OutputStream)method.voidWrites (sends) a datagram to a listeningDatagramReceiver.Methods inherited from class AbstractInputStreamReceiver
available, isOpenable, open, receiveMethods 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
available, 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
receive, receiveMethods inherited from interface DatagramsReceiver
receive, receiveAllMethods inherited from interface DatagramsSource
transmitMethods inherited from interface DatagramsTransmitter
transmitMethods inherited from interface Flushable
flushUnchecked, isFlushable
-
Constructor Details
-
BidirectionalStreamConnectionTransceiverImpl
public BidirectionalStreamConnectionTransceiverImpl()Instantiates a new bidirectional stream connection transceiver impl.
-
-
Method Details
-
isOpenable
- Specified by:
isOpenablein interfaceBidirectionalConnectionOpenable.BidirectionalConnectionOpenAutomaton<InputStream, OutputStream>
-
open
- Specified by:
openin interfaceBidirectionalConnectionOpenable<InputStream, OutputStream>- Throws:
IOException
-
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
-
close
- Specified by:
closein interfaceClosable- Overrides:
closein classAbstractInputStreamReceiver<DATA extends Serializable>- Throws:
IOException
-
open
HINT: For testing purposes you can pass an already flushedObjectOutputStream(viaObjectOutputStream.flush()) encapsulating aPipedOutputStreamwhich in turn encapsulates aPipedInputStreamto thisopen(OutputStream)method. This enables you a non-blocking test of theOutputStreamConnectionDatagramsTransmitterconnected with theInputStreamConnectionReceiverImplcounterpart which is being opened with thePipedInputStream. ATTENTION: For maintainers, please keep the below code in sync with the code fromOutputStreamConnectionDatagramsTransmitter.open(java.io.OutputStream); except do not set the connection status here, make it protected and do not @Override anything.- Parameters:
aOutputStream- the output stream- Throws:
IOException- the open exception
-