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
, BidirectionalConnectionByteTransceiver<InputStream,OutputStream>
, BidirectionalStreamConnectionByteTransceiver
, ByteBlockConsumer
, ByteBlockProvider
, ByteBlockReceiver
, ByteBlockSender
, ByteConsumer
, ByteDatagramConsumer
, ByteDatagramProvider
, ByteDatagramReceiver
, ByteDatagramSender
, ByteProvider
, ByteReceiver
, ByteSender
, ByteTransceiver
, Receivable
, Sendable
, org.refcodes.mixin.Releaseable
public class BidirectionalStreamConnectionByteTransceiverImpl extends AbstractInputStreamByteReceiver implements BidirectionalStreamConnectionByteTransceiver
org.refcodes.component.BidirectionalConnectionComponent.BidirectionalConnectionAutomaton<INPUT extends Object,OUTPUT extends Object>
org.refcodes.component.BidirectionalConnectionOpenable.BidirectionalConnectionOpenAutomaton<INPUT extends Object,OUTPUT extends Object>
org.refcodes.component.Closable.CloseAutomaton, org.refcodes.component.Closable.CloseBuilder<B extends org.refcodes.component.Closable.CloseBuilder<B>>
org.refcodes.component.ClosedAccessor.ClosedMutator, org.refcodes.component.ClosedAccessor.ClosedProperty
org.refcodes.component.ConnectableComponent.ConnectableAutomaton
org.refcodes.component.ConnectionStatusAccessor.ConnectionStatusMutator, org.refcodes.component.ConnectionStatusAccessor.ConnectionStatusProperty
Constructor | Description |
---|---|
BidirectionalStreamConnectionByteTransceiverImpl() |
Modifier and Type | Method | Description |
---|---|---|
void |
close() |
|
void |
flush() |
|
boolean |
isOpenable(InputStream aInputStream,
OutputStream aOutputStream) |
|
void |
open(InputStream aInputStream,
OutputStream aOutputStream) |
|
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(byte aDatagram) |
Writes (sends) a byte.
|
getConnectionStatus, isClosable, isClosed, isOpenable, isOpened, open, setConnectionStatus
hasDatagram, isOpenable, open, readDatagram, releaseAll
writeDatagrams
readDatagram
readDatagrams, readDatagrams
writeDatagrams
closeIn, closeQuietly, closeUnchecked
getConnectionStatus, isConnectionOpened
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
hasDatagram
public BidirectionalStreamConnectionByteTransceiverImpl()
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
open
in interface org.refcodes.component.BidirectionalConnectionOpenable<InputStream,OutputStream>
org.refcodes.component.OpenException
public void writeDatagram(byte aDatagram) throws org.refcodes.component.OpenException
writeDatagram
in interface ByteConsumer
writeDatagram
in interface ByteDatagramConsumer
aDatagram
- The byte to be pushed.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
flush
in interface ByteSender
flush
in interface Flushable
flush
in interface org.refcodes.component.Flushable
org.refcodes.component.OpenException
public void close() throws org.refcodes.component.CloseException
close
in interface org.refcodes.component.Closable
close
in class AbstractInputStreamByteReceiver
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.aOutputStream
- the output streamorg.refcodes.component.OpenException
- the open exceptionCopyright © 2018. All rights reserved.