Module org.refcodes.io
Package org.refcodes.io
Class BidirectionalStreamConnectionByteTransceiverImpl
java.lang.Object
org.refcodes.component.AbstractConnectable
org.refcodes.component.AbstractConnectableAutomaton
org.refcodes.io.AbstractInputStreamByteReceiver
org.refcodes.io.BidirectionalStreamConnectionByteTransceiverImpl
- 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
,BidirectionalConnectionByteTransceiver<InputStream,
,OutputStream> BidirectionalStreamConnectionByteTransceiver
,ByteDestination
,ByteReceiver
,BytesDestination
,ByteSource
,BytesReceiver
,BytesSource
,BytesTransceiver
,BytesTransmitter
,ByteTransceiver
,ByteTransmitter
,Receivable
,Skippable
,TimeoutInputStreamAccessor
,Transmittable
,org.refcodes.mixin.InputStreamAccessor
,org.refcodes.mixin.OutputStreamAccessor
public class BidirectionalStreamConnectionByteTransceiverImpl
extends AbstractInputStreamByteReceiver
implements BidirectionalStreamConnectionByteTransceiver
The Class BidirectionalStreamConnectionByteTransceiverImpl.
- Author:
- steiner
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.refcodes.component.BidirectionalConnectionComponent
org.refcodes.component.BidirectionalConnectionComponent.BidirectionalConnectionAutomaton<INPUT extends Object,
OUTPUT extends Object> Nested classes/interfaces inherited from interface org.refcodes.component.BidirectionalConnectionOpenable
org.refcodes.component.BidirectionalConnectionOpenable.BidirectionalConnectionOpenAutomaton<INPUT extends Object,
OUTPUT extends Object> Nested classes/interfaces inherited from interface org.refcodes.io.BytesReceiver
BytesReceiver.ReceiverInputStream
Nested classes/interfaces inherited from interface org.refcodes.io.BytesTransmitter
BytesTransmitter.TransmitterOutputStream
Nested classes/interfaces inherited from interface org.refcodes.component.Closable
org.refcodes.component.Closable.CloseAutomaton, org.refcodes.component.Closable.CloseBuilder<B extends 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.ClosedProperty
Nested classes/interfaces inherited from interface org.refcodes.component.ConnectableComponent
org.refcodes.component.ConnectableComponent.ConnectableAutomaton
Nested classes/interfaces inherited from interface org.refcodes.component.ConnectionStatusAccessor
org.refcodes.component.ConnectionStatusAccessor.ConnectionStatusMutator, org.refcodes.component.ConnectionStatusAccessor.ConnectionStatusProperty
Nested classes/interfaces inherited from interface org.refcodes.component.Flushable
org.refcodes.component.Flushable.FlushBuilder<B extends org.refcodes.component.Flushable.FlushBuilder<B>>
Nested classes/interfaces inherited from interface org.refcodes.mixin.InputStreamAccessor
org.refcodes.mixin.InputStreamAccessor.InputStreamBuilder<B extends org.refcodes.mixin.InputStreamAccessor.InputStreamBuilder<?>>, org.refcodes.mixin.InputStreamAccessor.InputStreamMutator, org.refcodes.mixin.InputStreamAccessor.InputStreamProperty
Nested classes/interfaces inherited from interface org.refcodes.component.OpenedAccessor
org.refcodes.component.OpenedAccessor.OpenedMutator, org.refcodes.component.OpenedAccessor.OpenedProperty
Nested classes/interfaces inherited from interface org.refcodes.mixin.OutputStreamAccessor
org.refcodes.mixin.OutputStreamAccessor.OutputStreamBuilder<B extends org.refcodes.mixin.OutputStreamAccessor.OutputStreamBuilder<?>>, org.refcodes.mixin.OutputStreamAccessor.OutputStreamMutator, org.refcodes.mixin.OutputStreamAccessor.OutputStreamProperty
Nested classes/interfaces inherited from interface org.refcodes.io.TimeoutInputStreamAccessor
TimeoutInputStreamAccessor.TimeoutInputStreamBuilder<B extends TimeoutInputStreamAccessor.TimeoutInputStreamBuilder<?>>, TimeoutInputStreamAccessor.TimeoutInputStreamMutator, TimeoutInputStreamAccessor.TimeoutInputStreamProperty
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
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 flushedObjectOutputStream
(viaObjectOutputStream.flush()
) encapsulating aPipedOutputStream
which in turn encapsulates aPipedInputStream
to thisopen(OutputStream)
method.void
transmitByte
(byte aByte) Writes (sends) a byte.Methods inherited from class org.refcodes.io.AbstractInputStreamByteReceiver
available, isOpenable, open, receiveByte
Methods inherited from class org.refcodes.component.AbstractConnectableAutomaton
getConnectionStatus, isClosable, isClosed, isOpenable, isOpened, open, setConnectionStatus
Methods inherited from class org.refcodes.component.AbstractConnectable
isThrownAsOfAlreadyClosed
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.refcodes.io.Availability
available, hasAvailable
Methods inherited from interface org.refcodes.io.BytesDestination
receiveByte, receiveBytes
Methods inherited from interface org.refcodes.io.BytesReceiver
getInputStream, getInputStream, receiveAllBytes, receiveBytes, receiveBytesWithin, receiveBytesWithin, receiveByteWithin, skip
Methods inherited from interface org.refcodes.io.BytesSource
transmitAllBytes
Methods inherited from interface org.refcodes.io.BytesTransmitter
getOutputStream, transmitBytes
Methods inherited from interface org.refcodes.component.Closable
closeIn, closeQuietly, closeUnchecked
Methods inherited from interface org.refcodes.component.Closable.CloseAutomaton
isClosable
Methods inherited from interface org.refcodes.component.ClosedAccessor
isClosed
Methods inherited from interface org.refcodes.component.ConnectionStatusAccessor
getConnectionStatus, isOpened
Methods inherited from interface org.refcodes.component.Flushable
flushUnchecked, isFlushable
Methods inherited from interface org.refcodes.io.Skippable
available, skipAvailable, skipAvailableExcept, skipAvailableTill, skipAvailableTillSilenceFor, skipAvailableTillSilenceFor, skipAvailableWithin, skipAvailableWithin, skipAvailableWithin
-
Constructor Details
-
BidirectionalStreamConnectionByteTransceiverImpl
public BidirectionalStreamConnectionByteTransceiverImpl()
-
-
Method Details
-
isOpenable
- Specified by:
isOpenable
in interfaceorg.refcodes.component.BidirectionalConnectionOpenable.BidirectionalConnectionOpenAutomaton<InputStream,
OutputStream>
-
open
- Specified by:
open
in interfaceorg.refcodes.component.BidirectionalConnectionOpenable<InputStream,
OutputStream> - Throws:
IOException
-
transmitByte
Writes (sends) a byte.- Specified by:
transmitByte
in interfaceByteSource
- Specified by:
transmitByte
in interfaceBytesSource
- Parameters:
aByte
- The byte to be pushed.- Throws:
IOException
- Thrown in case opening or accessing an open line (connection, junction, link) caused problems.
-
flush
- Specified by:
flush
in interfaceByteTransmitter
- Specified by:
flush
in interfaceFlushable
- Specified by:
flush
in interfaceorg.refcodes.component.Flushable
- Throws:
IOException
-
close
- Specified by:
close
in interfaceorg.refcodes.component.Closable
- Overrides:
close
in classAbstractInputStreamByteReceiver
- Throws:
IOException
-
open
HINT: For testing purposes you can pass an already flushedObjectOutputStream
(viaObjectOutputStream.flush()
) encapsulating aPipedOutputStream
which in turn encapsulates aPipedInputStream
to thisopen(OutputStream)
method. This enables you a non-blocking test of theOutputStreamConnectionDatagramsTransmitter
connected with theInputStreamConnectionReceiverImpl
counterpart 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
-