- java.lang.Object
-
- org.refcodes.io.AbstractBytesDestination
-
- org.refcodes.io.AbstractBytesReceiver
-
- org.refcodes.io.LoopbackBytesReceiver
-
- All Implemented Interfaces:
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<LoopbackBytesTransmitter>,org.refcodes.component.ConnectionComponent.ConnectionAutomaton<LoopbackBytesTransmitter>,org.refcodes.component.ConnectionOpenable<LoopbackBytesTransmitter>,org.refcodes.component.ConnectionOpenable.ConnectionOpenAutomaton<LoopbackBytesTransmitter>,org.refcodes.component.ConnectionStatusAccessor,org.refcodes.component.OpenedAccessor,Availability,ByteDestination,ByteReceiver,BytesDestination,BytesReceiver,ConnectionBytesReceiver<LoopbackBytesTransmitter>,Receivable,Skippable,TimeoutInputStreamAccessor,org.refcodes.mixin.InputStreamAccessor,org.refcodes.mixin.Loggable
public class LoopbackBytesReceiver extends AbstractBytesReceiver implements ConnectionBytesReceiver<LoopbackBytesTransmitter>
ALoopbackBytesReceiveris aDatagramReceiverconnected directly within the same JVM with aLoopbackBytesTransmitter; 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.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.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.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
-
-
Constructor Summary
Constructors Constructor Description LoopbackBytesReceiver()Instantiates a new loopback byte receiver impl.LoopbackBytesReceiver(int aCapacity)Instantiates a new loopback byte receiver impl.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose()booleanisOpenable(LoopbackBytesTransmitter aLoopbackSender)voidopen(LoopbackBytesTransmitter aLoopbackSender)voidpushDatagram(byte aDatagram)Pushes a datagram into the receiver and puts it into the blocking queue containing the so far received datagrams.voidpushDatagrams(byte[] aDatagrams)Pushes datagrams into the receiver and puts them into the blocking queue containing the so far received datagrams.voidpushDatagrams(byte[] aDatagrams, int aOffset, int aLength)Pushes datagrams into the receiver and puts them into the blocking queue containing the so far received datagrams.-
Methods inherited from class org.refcodes.io.AbstractBytesReceiver
available, getConnectionStatus, isClosable, isClosed, isOpenable, isOpened, open, receiveAllBytes, receiveByte, receiveBytes, setConnectionStatus
-
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.component.Closable
closeIn, closeQuietly, closeUnchecked
-
Methods inherited from interface org.refcodes.component.ConnectionStatusAccessor
getConnectionStatus, isOpened
-
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
-
-
-
-
Method Detail
-
isOpenable
public boolean isOpenable(LoopbackBytesTransmitter aLoopbackSender)
- Specified by:
isOpenablein interfaceorg.refcodes.component.ConnectionOpenable.ConnectionOpenAutomaton<LoopbackBytesTransmitter>
-
open
public void open(LoopbackBytesTransmitter aLoopbackSender) throws IOException
- Specified by:
openin interfaceorg.refcodes.component.ConnectionOpenable<LoopbackBytesTransmitter>- Throws:
IOException
-
pushDatagram
public void pushDatagram(byte aDatagram) throws IOExceptionPushes 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(): UseAbstractBytesReceiverextension'sAbstractBytesReceiver.available()to test beforehand whether there is a datagram available.- Overrides:
pushDatagramin 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
-
pushDatagrams
public void pushDatagrams(byte[] aDatagrams) throws IOExceptionPushes datagrams into the receiver and puts them into the blocking queue containing the so far received datagrams. Them datagrams can be retrieved viaAbstractBytesDestination.receiveByte(): UseAbstractBytesReceiverextension'sAbstractBytesReceiver.available()to test beforehand whether there is a datagram available.- Overrides:
pushDatagramsin classAbstractBytesDestination- Parameters:
aDatagrams- The datagrams to be pushed at the end of the blocking queue; to be retrieved with theAbstractBytesDestination.receiveByte()method.- Throws:
IOException- the open exception
-
pushDatagrams
public void pushDatagrams(byte[] aDatagrams, int aOffset, int aLength) throws IOExceptionPushes datagrams into the receiver and puts them into the blocking queue containing the so far received datagrams. Them datagrams can be retrieved viaAbstractBytesDestination.receiveByte(): UseAbstractBytesReceiverextension'sAbstractBytesReceiver.available()to test beforehand whether there is a datagram available.- Overrides:
pushDatagramsin classAbstractBytesDestination- Parameters:
aDatagrams- The datagrams to be pushed at the end of the blocking queue; to be retrieved with theAbstractBytesDestination.receiveByte()method.aOffset- The offset to start taking data from to be pushed.aLength- The number of elements to be pushed from the offset onwards.- Throws:
IOException- the open exception
-
close
public void close() throws IOException- Specified by:
closein interfaceorg.refcodes.component.Closable- Overrides:
closein classAbstractBytesReceiver- Throws:
IOException
-
-