public class BidirectionalStreamConnectionTransceiverImpl<DATA extends Serializable> extends AbstractInputStreamReceiver<DATA> implements BidirectionalStreamConnectionTransceiver<DATA>
org.refcodes.component.ConnectableComponent.ConnectableAutomaton
org.refcodes.component.OpenedAccessor.OpenedMutator, org.refcodes.component.OpenedAccessor.OpenedProperty
org.refcodes.component.Closable.CloseAutomaton
org.refcodes.component.ClosedAccessor.ClosedMutator, org.refcodes.component.ClosedAccessor.ClosedProperty
org.refcodes.component.ConnectionStatusAccessor.ConnectionStatusMutator, org.refcodes.component.ConnectionStatusAccessor.ConnectionStatusProperty
Constructor and Description |
---|
BidirectionalStreamConnectionTransceiverImpl() |
Modifier and Type | Method and Description |
---|---|
void |
close() |
void |
flush() |
boolean |
isOpenable(InputStream aInputStream,
OutputStream aOutputStream) |
void |
open(InputStream aInputStream,
OutputStream aOutputStream)
-------------------------------------------------------------------------
HINT: For testing purposes you can pass an already flushed
ObjectOutputStream (via ObjectOutputStream.flush() )
encapsulating a PipedOutputStream which in turn encapsulates a
PipedInputStream to this open(OutputStream) method. |
protected void |
open(OutputStream aOutputStream)
-------------------------------------------------------------------------
HINT: For testing purposes you can pass an already flushed
ObjectOutputStream (via ObjectOutputStream.flush() )
encapsulating a PipedOutputStream which in turn encapsulates a
PipedInputStream to this open(OutputStream) method. |
void |
writeDatagram(DATA aDatagram)
Writes (sends) a datagram to a listening
DatagramReceiver . |
hasDatagram, isOpenable, open, readDatagram, releaseAll
getConnectionStatus, isClosable, isClosed, isOpenable, isOpened, open, setConnectionStatus
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
writeDatagrams, writeDatagrams
readDatagrams
readDatagram
hasDatagram
public BidirectionalStreamConnectionTransceiverImpl()
public boolean isOpenable(InputStream aInputStream, OutputStream aOutputStream)
isOpenable
in interface org.refcodes.component.BidirectionalConnectionOpenable.BidirectionalConnectionOpenAutomaton<InputStream,OutputStream>
public void open(InputStream aInputStream, OutputStream aOutputStream) throws org.refcodes.component.OpenException
ObjectOutputStream
(via ObjectOutputStream.flush()
)
encapsulating a PipedOutputStream
which in turn encapsulates a
PipedInputStream
to this open(OutputStream)
method. This
enables you a non-blocking test of the
BidirectionalStreamConnectionTransceiverImpl
connected with the
BidirectionalStreamConnectionTransceiverImpl
counterpart which is being
opened with the PipedInputStream
.
-------------------------------------------------------------------------open
in interface org.refcodes.component.BidirectionalConnectionOpenable<InputStream,OutputStream>
org.refcodes.component.OpenException
public void writeDatagram(DATA aDatagram) throws org.refcodes.component.OpenException
DatagramReceiver
.
-------------------------------------------------------------------------
ATTENTION: For maintainers, please keep the below code in sync with the
code from OutputStreamConnectionSenderImpl.writeDatagram(Serializable)
.writeDatagram
in interface DatagramSender<DATA extends Serializable>
aDatagram
- The datagram to be pushed to the receiving
DatagramSender
.org.refcodes.component.OpenException
- Thrown in case opening or accessing an open line
(connection, junction, link) caused problems.public void flush() throws org.refcodes.component.OpenException
public void close() throws org.refcodes.component.CloseException
close
in interface org.refcodes.component.Closable
close
in class AbstractInputStreamReceiver<DATA extends Serializable>
org.refcodes.component.CloseException
protected void open(OutputStream aOutputStream) throws org.refcodes.component.OpenException
ObjectOutputStream
(via ObjectOutputStream.flush()
)
encapsulating a PipedOutputStream
which in turn encapsulates a
PipedInputStream
to this open(OutputStream)
method. This
enables you a non-blocking test of the OutputStreamConnectionSenderImpl
connected with the InputStreamConnectionReceiverImpl
counterpart which is
being opened with the PipedInputStream
.
-------------------------------------------------------------------------
ATTENTION: For maintainers, please keep the below code in sync with the
code from OutputStreamConnectionSenderImpl.open(java.io.OutputStream)
;
except do not set the connection status here, make it protected and do
not @Override anything.org.refcodes.component.OpenException
Copyright © 2016. All rights reserved.