Module org.refcodes.io
Package org.refcodes.io
Class BidirectionalStreamConnectionByteTransceiverImpl
java.lang.Object
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.ReceiverInputStreamNested classes/interfaces inherited from interface org.refcodes.io.BytesTransmitter
BytesTransmitter.TransmitterOutputStreamNested 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.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 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.InputStreamPropertyNested classes/interfaces inherited from interface org.refcodes.component.OpenedAccessor
org.refcodes.component.OpenedAccessor.OpenedMutator, org.refcodes.component.OpenedAccessor.OpenedPropertyNested 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.OutputStreamPropertyNested classes/interfaces inherited from interface org.refcodes.io.TimeoutInputStreamAccessor
TimeoutInputStreamAccessor.TimeoutInputStreamBuilder<B extends TimeoutInputStreamAccessor.TimeoutInputStreamBuilder<?>>, 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 org.refcodes.io.AbstractInputStreamByteReceiver
available, isOpenable, open, receiveByteMethods inherited from class org.refcodes.component.AbstractConnectableAutomaton
getConnectionStatus, isClosable, isClosed, isOpenable, isOpened, open, setConnectionStatusMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.refcodes.io.Availability
available, hasAvailableMethods inherited from interface org.refcodes.io.BytesDestination
receiveByte, receiveBytesMethods inherited from interface org.refcodes.io.BytesReceiver
getInputStream, getInputStream, receiveAllBytes, receiveBytes, receiveBytesWithin, receiveBytesWithin, receiveByteWithin, skipMethods inherited from interface org.refcodes.io.BytesSource
transmitAllBytesMethods inherited from interface org.refcodes.io.BytesTransmitter
getOutputStream, transmitBytesMethods 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 org.refcodes.component.Flushable
flushUnchecked, isFlushableMethods 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:
isOpenablein interfaceorg.refcodes.component.BidirectionalConnectionOpenable.BidirectionalConnectionOpenAutomaton<InputStream,OutputStream>
-
open
- Specified by:
openin interfaceorg.refcodes.component.BidirectionalConnectionOpenable<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 interfaceorg.refcodes.component.Flushable- Throws:
IOException
-
close
- Specified by:
closein interfaceorg.refcodes.component.Closable- 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
-