- java.lang.Object
-
- org.refcodes.io.PrefetchBidirectionalStreamByteTransceiver
-
- All Implemented Interfaces:
Flushable,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,ByteDestination,ByteReceiver,BytesDestination,ByteSource,BytesReceiver,BytesSource,BytesTransceiver,BytesTransmitter,ByteTransceiver,ByteTransmitter,Receivable,Skippable,TimeoutInputStreamAccessor,Transmittable,org.refcodes.mixin.InputStreamAccessor,org.refcodes.mixin.OutputStreamAccessor
public class PrefetchBidirectionalStreamByteTransceiver extends Object implements BytesTransceiver
The Class PrefetchBidirectionalStreamByteTransceiver.- Author:
- steiner
-
-
Nested Class Summary
-
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
Constructors Constructor Description PrefetchBidirectionalStreamByteTransceiver(InputStream aInputStream, OutputStream aOutputStream)Instantiates a new prefetch bidirectional stream byte transceiver impl.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description intavailable()Determines the number of available datagram from aDatagramTransmitter.voidclose()voidflush()Flush.org.refcodes.component.ConnectionStatusgetConnectionStatus()booleanisClosable()booleanisClosed()booleanisOpened()byte[]receiveAllBytes()Reads (receives) the all currently available data.bytereceiveByte()Reads (receives) the next byte, in case none byte is available, then this method blocks until one is available.voidtransmitAllBytes(byte[] aDatagram)Write datagrams.voidtransmitByte(byte aByte)Write datagram.voidtransmitBytes(byte[] aDatagram, int aOffset, int aLength)Write datagrams.-
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
hasAvailable
-
Methods inherited from interface org.refcodes.io.BytesDestination
receiveBytes
-
Methods inherited from interface org.refcodes.io.BytesReceiver
getInputStream, getInputStream, receiveBytes, receiveBytesWithin, receiveBytesWithin, receiveByteWithin, skip
-
Methods inherited from interface org.refcodes.io.BytesTransmitter
getOutputStream
-
Methods inherited from interface org.refcodes.component.Closable
closeIn, closeQuietly, closeUnchecked
-
Methods inherited from interface org.refcodes.io.Skippable
skipAvailable, skipAvailableExcept, skipAvailableTill, skipAvailableTillSilenceFor, skipAvailableTillSilenceFor, skipAvailableWithin, skipAvailableWithin
-
-
-
-
Constructor Detail
-
PrefetchBidirectionalStreamByteTransceiver
public PrefetchBidirectionalStreamByteTransceiver(InputStream aInputStream, OutputStream aOutputStream) throws IOException
Instantiates a new prefetch bidirectional stream byte transceiver impl.- Parameters:
aInputStream- the input streamaOutputStream- the output stream- Throws:
IOException- the open exception
-
-
Method Detail
-
isClosed
public boolean isClosed()
- Specified by:
isClosedin interfaceorg.refcodes.component.ClosedAccessor
-
isOpened
public boolean isOpened()
- Specified by:
isOpenedin interfaceorg.refcodes.component.ConnectionStatusAccessor- Specified by:
isOpenedin interfaceorg.refcodes.component.OpenedAccessor
-
available
public int available() throws IOExceptionDetermines the number of available datagram from aDatagramTransmitter. Use theDatagramDestinationextenison'sDatagramDestination.receive()method for retrieving available datagrams.- Specified by:
availablein interfaceAvailability- Specified by:
availablein interfaceSkippable- Returns:
- The number of datagrams ready to be retrieved .
- Throws:
IOException- Thrown in case opening or accessing an open line (connection, junction, link) caused problems.
-
receiveAllBytes
public byte[] receiveAllBytes() throws IOExceptionReads (receives) the all currently available data.- Specified by:
receiveAllBytesin interfaceBytesDestination- Specified by:
receiveAllBytesin interfaceBytesReceiver- Returns:
- The according data.
- Throws:
IOException- Thrown in case opening or accessing an open line (connection, junction, link) caused problems.EOFException- Signals that an end of file or end of stream has been reached unexpectedly during input.
-
getConnectionStatus
public org.refcodes.component.ConnectionStatus getConnectionStatus()
- Specified by:
getConnectionStatusin interfaceorg.refcodes.component.ConnectionStatusAccessor
-
close
public void close() throws IOException- Specified by:
closein interfaceorg.refcodes.component.Closable- Throws:
IOException
-
receiveByte
public byte receiveByte() throws IOExceptionReads (receives) the next byte, in case none byte is available, then this method blocks until one is available.- Specified by:
receiveBytein interfaceByteDestination- Specified by:
receiveBytein interfaceBytesDestination- Returns:
- The next byte available .
- Throws:
IOException- Thrown in case opening or accessing an open line (connection, junction, link) caused problems.EOFException- Signals that an end of file or end of stream has been reached unexpectedly during input.
-
transmitAllBytes
public void transmitAllBytes(byte[] aDatagram) throws IOExceptionWrite datagrams.- Specified by:
transmitAllBytesin interfaceBytesSource- Parameters:
aDatagram- the datagram- Throws:
IOException- the open exception
-
transmitBytes
public void transmitBytes(byte[] aDatagram, int aOffset, int aLength) throws IOExceptionWrite datagrams.- Specified by:
transmitBytesin interfaceBytesSource- Specified by:
transmitBytesin interfaceBytesTransmitter- Parameters:
aDatagram- the datagramaOffset- the offsetaLength- the length- Throws:
IOException- the open exception
-
transmitByte
public void transmitByte(byte aByte) throws IOExceptionWrite datagram.- Specified by:
transmitBytein interfaceByteSource- Specified by:
transmitBytein interfaceBytesSource- Parameters:
aByte- the datagram- Throws:
IOException- the open exception
-
flush
public void flush() throws IOExceptionFlush.- Specified by:
flushin interfaceByteTransmitter- Specified by:
flushin interfaceFlushable- Specified by:
flushin interfaceorg.refcodes.component.Flushable- Throws:
IOException- the open exception
-
isClosable
public boolean isClosable()
- Specified by:
isClosablein interfaceorg.refcodes.component.Closable.CloseAutomaton
-
-