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, 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, BidirectionalConnectionByteTransceiver<InputStream, OutputStream>, BidirectionalStreamConnectionByteTransceiver, ByteDestination, ByteReceiver, BytesDestination, ByteSource, BytesReceiver, BytesSource, BytesTransceiver, BytesTransmitter, ByteTransceiver, ByteTransmitter, Receivable, Skippable, TimeoutInputStreamAccessor, Transmittable, InputStreamAccessor, OutputStreamAccessor
public class BidirectionalStreamConnectionByteTransceiverImpl
extends AbstractInputStreamByteReceiver
implements BidirectionalStreamConnectionByteTransceiver
The Class BidirectionalStreamConnectionByteTransceiverImpl.
-
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 BytesReceiver
BytesReceiver.ReceiverInputStreamNested classes/interfaces inherited from interface BytesTransmitter
BytesTransmitter.TransmitterOutputStreamNested 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 InputStreamAccessor
InputStreamAccessor.InputStreamBuilder<B>, InputStreamAccessor.InputStreamMutator, InputStreamAccessor.InputStreamPropertyNested classes/interfaces inherited from interface OpenedAccessor
OpenedAccessor.OpenedMutator, OpenedAccessor.OpenedPropertyNested classes/interfaces inherited from interface OutputStreamAccessor
OutputStreamAccessor.OutputStreamBuilder<B>, OutputStreamAccessor.OutputStreamMutator, OutputStreamAccessor.OutputStreamPropertyNested classes/interfaces inherited from interface TimeoutInputStreamAccessor
TimeoutInputStreamAccessor.TimeoutInputStreamBuilder<B>, TimeoutInputStreamAccessor.TimeoutInputStreamMutator, TimeoutInputStreamAccessor.TimeoutInputStreamProperty -
Constructor Summary
Constructors -
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.voidtransmitByte(byte aByte) Writes (sends) a byte.Methods inherited from class AbstractInputStreamByteReceiver
available, isOpenable, open, receiveByteMethods 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 BytesDestination
receiveByte, receiveBytesMethods inherited from interface BytesReceiver
getInputStream, getInputStream, receiveAllBytes, receiveBytes, receiveBytesWithin, receiveBytesWithin, receiveByteWithin, skipMethods inherited from interface BytesSource
transmitBytesMethods inherited from interface BytesTransmitter
getOutputStream, transmitBytesMethods 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 Flushable
flushUnchecked, isFlushableMethods inherited from interface Skippable
available, skipAvailable, skipAvailableExcept, skipAvailableTill, skipAvailableTillSilenceFor, skipAvailableTillSilenceFor, skipAvailableWithin, skipAvailableWithin, skipAvailableWithin
-
Constructor Details
-
BidirectionalStreamConnectionByteTransceiverImpl
public BidirectionalStreamConnectionByteTransceiverImpl()
-
-
Method Details
-
isOpenable
- Specified by:
isOpenablein interfaceBidirectionalConnectionOpenable.BidirectionalConnectionOpenAutomaton<InputStream, OutputStream>
-
open
- Specified by:
openin interfaceBidirectionalConnectionOpenable<InputStream, OutputStream>- Throws:
IOException
-
transmitByte
Writes (sends) a byte.- Specified by:
transmitBytein interfaceByteSource- Specified by:
transmitBytein 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:
flushin interfaceByteTransmitter- Specified by:
flushin interfaceFlushable- Specified by:
flushin interfaceFlushable- Throws:
IOException
-
close
- Specified by:
closein interfaceClosable- Overrides:
closein classAbstractInputStreamByteReceiver- 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
-