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, org.refcodes.component.BidirectionalConnectionComponent<InputStream, OutputStream>, org.refcodes.component.BidirectionalConnectionComponent.BidirectionalConnectionAutomaton<InputStream, OutputStream>, org.refcodes.component.BidirectionalConnectionOpenable<InputStream, OutputStream>, org.refcodes.component.BidirectionalConnectionOpenable.BidirectionalConnectionOpenAutomaton<InputStream, OutputStream>, 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.Flushable, org.refcodes.component.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.
- Author:
- steiner
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.refcodes.component.BidirectionalConnectionComponent
org.refcodes.component.BidirectionalConnectionComponent.BidirectionalConnectionAutomaton<INPUT,OUTPUT> Nested classes/interfaces inherited from interface org.refcodes.component.BidirectionalConnectionOpenable
org.refcodes.component.BidirectionalConnectionOpenable.BidirectionalConnectionOpenAutomaton<INPUT,OUTPUT> Nested classes/interfaces inherited from interface org.refcodes.component.Closable
org.refcodes.component.Closable.CloseAutomaton, 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.ClosedPropertyNested classes/interfaces inherited from interface org.refcodes.component.ConnectableComponent
org.refcodes.component.ConnectableComponent.ConnectableAutomatonNested classes/interfaces inherited from interface org.refcodes.component.ConnectionStatusAccessor
org.refcodes.component.ConnectionStatusAccessor.ConnectionStatusMutator, org.refcodes.component.ConnectionStatusAccessor.ConnectionStatusPropertyNested classes/interfaces inherited from interface org.refcodes.component.Flushable
org.refcodes.component.Flushable.FlushBuilder<B>Nested classes/interfaces inherited from interface org.refcodes.component.OpenedAccessor
org.refcodes.component.OpenedAccessor.OpenedMutator, org.refcodes.component.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 org.refcodes.component.AbstractConnectableAutomaton
getConnectionStatus, isClosable, isClosed, isOpenable, isOpened, open, setConnectionStatusMethods inherited from class org.refcodes.component.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 org.refcodes.component.Closable
closeIn, closeQuietly, closeUncheckedMethods inherited from interface org.refcodes.component.Closable.CloseAutomaton
isClosableMethods inherited from interface org.refcodes.component.ClosedAccessor
isClosedMethods inherited from interface org.refcodes.component.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 org.refcodes.component.Flushable
flushUnchecked, isFlushable
-
Constructor Details
-
BidirectionalStreamConnectionTransceiverImpl
public BidirectionalStreamConnectionTransceiverImpl()Instantiates a new bidirectional stream connection transceiver impl.
-
-
Method Details
-
isOpenable
- Specified by:
isOpenablein interfaceorg.refcodes.component.BidirectionalConnectionOpenable.BidirectionalConnectionOpenAutomaton<InputStream, OutputStream>
-
open
- Specified by:
openin interfaceorg.refcodes.component.BidirectionalConnectionOpenable<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 interfaceorg.refcodes.component.Flushable- Throws:
IOException
-
close
- Specified by:
closein interfaceorg.refcodes.component.Closable- 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
-