java.lang.Object
org.refcodes.io.AbstractBytesDestination
org.refcodes.io.AbstractBytesReceiver
org.refcodes.io.LoopbackBytesTransceiver
- 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.ConnectionComponent<LoopbackBytesTransceiver>
,org.refcodes.component.ConnectionComponent.ConnectionAutomaton<LoopbackBytesTransceiver>
,org.refcodes.component.ConnectionOpenable<LoopbackBytesTransceiver>
,org.refcodes.component.ConnectionOpenable.ConnectionOpenAutomaton<LoopbackBytesTransceiver>
,org.refcodes.component.ConnectionStatusAccessor
,org.refcodes.component.Flushable
,org.refcodes.component.OpenedAccessor
,Availability
,ByteDestination
,ByteReceiver
,BytesDestination
,ByteSource
,BytesReceiver
,BytesSource
,BytesTransceiver
,BytesTransmitter
,ByteTransceiver
,ByteTransmitter
,ConnectionBytesReceiver<LoopbackBytesTransceiver>
,ConnectionBytesTransceiver<LoopbackBytesTransceiver>
,ConnectionBytesTransmitter<LoopbackBytesTransceiver>
,Receivable
,Skippable
,TimeoutInputStreamAccessor
,Transmittable
,org.refcodes.mixin.InputStreamAccessor
,org.refcodes.mixin.Loggable
,org.refcodes.mixin.OutputStreamAccessor
public class LoopbackBytesTransceiver
extends AbstractBytesReceiver
implements ConnectionBytesTransceiver<LoopbackBytesTransceiver>
A
LoopbackBytesTransceiver
is a DatagramTransceiver
connected
directly within the same JVM with another LoopbackBytesTransceiver
; a
"loopback" connection is used for establishing the connection which cannot be
accessed outside the JVM or the running machine.-
Nested Class Summary
Nested classes/interfaces inherited from class org.refcodes.io.AbstractBytesReceiver
AbstractBytesReceiver.ConnectableAutomaton
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.ConnectionComponent
org.refcodes.component.ConnectionComponent.ConnectionAutomaton<CON extends Object>, org.refcodes.component.ConnectionComponent.ConnectionComponentBuilder<CON extends Object,
B extends org.refcodes.component.ConnectionComponent.ConnectionComponentBuilder<CON, B>> Nested classes/interfaces inherited from interface org.refcodes.component.ConnectionOpenable
org.refcodes.component.ConnectionOpenable.ConnectionOpenAutomaton<CON extends Object>, org.refcodes.component.ConnectionOpenable.ConnectionOpenBuilder<CON extends Object,
B extends org.refcodes.component.ConnectionOpenable.ConnectionOpenBuilder<CON, B>> 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
-
Field Summary
Fields inherited from class org.refcodes.io.AbstractBytesReceiver
_automaton
Fields inherited from class org.refcodes.io.AbstractBytesDestination
_datagramQueue, DATAGRAM_QUEUE_SIZE
Fields inherited from interface org.refcodes.mixin.Loggable
RUNTIME_LOGGER_CLASS, RUNTIME_LOGGER_FACTORY_CLASS, RUNTIME_LOGGER_FACTORY_METHOD
-
Constructor Summary
ConstructorDescriptionInstantiates a new loopback byte transceiver impl.LoopbackBytesTransceiver
(int aCapacity) Instantiates a new loopback byte transceiver impl. -
Method Summary
Modifier and TypeMethodDescriptionvoid
close()
void
flush()
boolean
isOpenable
(LoopbackBytesTransceiver aLoopbackTransceiver) void
open
(LoopbackBytesTransceiver aLoopbackTransceiver) void
pushDatagram
(byte aDatagram) Pushes a datagram into the receiver and puts it into the blocking queue containing the so far received datagrams.void
transmitByte
(byte aByte) Writes (sends) a byte.Methods inherited from class org.refcodes.io.AbstractBytesReceiver
available, getConnectionStatus, isClosable, isClosed, isOpenable, isOpened, open, receiveAllBytes, receiveByte, receiveBytes, setConnectionStatus
Methods inherited from class org.refcodes.io.AbstractBytesDestination
pushDatagrams, pushDatagrams
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.ConnectionOpenable
openUnchecked
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.mixin.Loggable
alert, alert, critical, critical, debug, error, info, notice, panic, trace, warn, warn
Methods inherited from interface org.refcodes.io.Skippable
available, skipAvailable, skipAvailableExcept, skipAvailableTill, skipAvailableTillSilenceFor, skipAvailableTillSilenceFor, skipAvailableWithin, skipAvailableWithin, skipAvailableWithin
-
Constructor Details
-
LoopbackBytesTransceiver
public LoopbackBytesTransceiver()Instantiates a new loopback byte transceiver impl. -
LoopbackBytesTransceiver
public LoopbackBytesTransceiver(int aCapacity) Instantiates a new loopback byte transceiver impl.- Parameters:
aCapacity
- the capacity
-
-
Method Details
-
isOpenable
- Specified by:
isOpenable
in interfaceorg.refcodes.component.ConnectionOpenable.ConnectionOpenAutomaton<LoopbackBytesTransceiver>
-
open
- Specified by:
open
in interfaceorg.refcodes.component.ConnectionOpenable<LoopbackBytesTransceiver>
- 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.
-
pushDatagram
Pushes a datagram into the receiver and puts it into the blocking queue containing the so far received datagrams. Them datagrams can be retrieved viaAbstractBytesDestination.receiveByte()
: UseAbstractBytesReceiver
extension'sAbstractBytesReceiver.available()
to test beforehand whether there is a datagram available.- Overrides:
pushDatagram
in classAbstractBytesDestination
- Parameters:
aDatagram
- The datagram to be pushed at the end of the blocking queue; to be retrieved with theAbstractBytesDestination.receiveByte()
method.- Throws:
IOException
- the open exception
-
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 classAbstractBytesReceiver
- Throws:
IOException
-