Class LoopbackReceiverImpl<DATA extends java.io.Serializable>

  • Type Parameters:
    DATA - The type of the datagram to be operated with.
    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<DATA>, org.refcodes.component.ConnectionComponent.ConnectionAutomaton<DATA>, org.refcodes.component.ConnectionOpenable<DATA>, org.refcodes.component.ConnectionOpenable.ConnectionOpenAutomaton<DATA>, org.refcodes.component.ConnectionStatusAccessor, org.refcodes.component.OpenedAccessor, BlockProvider<DATA>, BlockReceiver<DATA>, ConnectionReceiver<DATA,LoopbackSender<DATA>>, DatagramProvider<DATA>, DatagramReceiver<DATA>, LoopbackReceiver<DATA>, Provider<DATA>, Receivable, Receiver<DATA>, org.refcodes.mixin.Releaseable


    public class LoopbackReceiverImpl<DATA extends java.io.Serializable>
    extends AbstractReceiver<DATA>
    implements LoopbackReceiver<DATA>
    Implementation of the LoopbackReceiver interface.
    • Nested Class Summary

      • 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 java.lang.Object>, org.refcodes.component.ConnectionComponent.ConnectionComponentBuilder<CON extends java.lang.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 java.lang.Object>, org.refcodes.component.ConnectionOpenable.ConnectionOpenBuilder<CON extends java.lang.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.OpenedAccessor

        org.refcodes.component.OpenedAccessor.OpenedMutator, org.refcodes.component.OpenedAccessor.OpenedProperty
    • Field Summary

      • Fields inherited from interface org.refcodes.mixin.Loggable

        RUNTIME_LOGGER_CLASS, RUNTIME_LOGGER_FACTORY_CLASS, RUNTIME_LOGGER_FACTORY_METHOD
    • Constructor Summary

      Constructors 
      Constructor Description
      LoopbackReceiverImpl​()
      Instantiates a new loopback receiver impl.
      LoopbackReceiverImpl​(int aCapacity)
      Instantiates a new loopback receiver impl.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void close​()
      boolean isOpenable​(LoopbackSender<DATA> aLoopbackSender)
      void open​(LoopbackSender<DATA> aLoopbackSender)
      void pushDatagram​(DATA aDatagram)
      Pushes a datagram into the receiver and puts it into the blocking queue containing the so far received datagrams.
      void pushDatagrams​(DATA[] aDatagrams)
      Pushes datagrams into the receiver and puts them into the blocking queue containing the so far received datagrams.
      void pushDatagrams​(DATA[] 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.component.AbstractConnectableAutomaton

        getConnectionStatus, isClosable, isClosed, isOpenable, isOpened, open, setConnectionStatus
      • 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, isConnectionOpened
      • Methods inherited from interface org.refcodes.mixin.Loggable

        alert, alert, critical, critical, debug, error, info, notice, panic, trace, warn, warn
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface org.refcodes.component.OpenedAccessor

        isOpened
      • Methods inherited from interface org.refcodes.mixin.Releaseable

        releaseAll
    • Constructor Detail

      • LoopbackReceiverImpl

        public LoopbackReceiverImpl​()
        Instantiates a new loopback receiver impl.
      • LoopbackReceiverImpl

        public LoopbackReceiverImpl​(int aCapacity)
        Instantiates a new loopback receiver impl.
        Parameters:
        aCapacity - the capacity
    • Method Detail

      • isOpenable

        public boolean isOpenable​(LoopbackSender<DATA> aLoopbackSender)
        Specified by:
        isOpenable in interface org.refcodes.component.ConnectionOpenable.ConnectionOpenAutomaton<DATA extends java.io.Serializable>
      • open

        public void open​(LoopbackSender<DATA> aLoopbackSender)
                  throws org.refcodes.component.OpenException
        Specified by:
        open in interface org.refcodes.component.ConnectionOpenable<DATA extends java.io.Serializable>
        Throws:
        org.refcodes.component.OpenException
      • pushDatagrams

        public void pushDatagrams​(DATA[] aDatagrams,
                                  int aOffset,
                                  int aLength)
                           throws org.refcodes.component.OpenException
        Pushes datagrams into the receiver and puts them into the blocking queue containing the so far received datagrams. Them datagrams can be retrieved via AbstractReceiver.readDatagram(): use AbstractReceiver.hasDatagram() to test beforehand whether there is a datagram available.
        Specified by:
        pushDatagrams in interface LoopbackReceiver<DATA extends java.io.Serializable>
        Overrides:
        pushDatagrams in class AbstractReceiver<DATA extends java.io.Serializable>
        Parameters:
        aDatagrams - The datagrams to be pushed at the end of the blocking queue; to be retrieved with the AbstractReceiver.readDatagram() 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:
        org.refcodes.component.OpenException - the open exception
      • close

        public void close​()
                   throws org.refcodes.component.CloseException
        Specified by:
        close in interface org.refcodes.component.Closable
        Overrides:
        close in class AbstractReceiver<DATA extends java.io.Serializable>
        Throws:
        org.refcodes.component.CloseException