Class AbstractDatagramsReceiver<DATA extends Serializable>

    • 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.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 
      Modifier and Type Field Description
      static int DATAGRAM_QUEUE_SIZE  
      • Fields inherited from interface org.refcodes.mixin.Loggable

        RUNTIME_LOGGER_CLASS, RUNTIME_LOGGER_FACTORY_CLASS, RUNTIME_LOGGER_FACTORY_METHOD
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      int available()
      Determines the number of available datagram from a DatagramTransmitter.
      void close()
      protected void pushDatagram​(DATA aDatagram)
      Pushes a datagram into the receiver and puts it into the blocking queue containing the so far received datagrams.
      protected void pushDatagrams​(DATA[] aDatagrams)
      Pushes datagrams into the receiver and puts them into the blocking queue containing the so far received datagrams.
      protected 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.
      DATA receive()
      Reads (receives) the next datagram passed from a DatagramTransmitter counterpart.
      DATA[] receiveAll()
      Reads (receives) the all currently available data.
      • 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.ConnectionStatusAccessor

        getConnectionStatus, isOpened
      • Methods inherited from interface org.refcodes.mixin.Loggable

        alert, alert, critical, critical, debug, error, info, notice, panic, trace, warn, warn
    • Constructor Detail

      • AbstractDatagramsReceiver

        public AbstractDatagramsReceiver()
        Constructs a AbstractDatagramsReceiver with a default sized blocking queue enabling a maximum of DATAGRAM_QUEUE_SIZE datagrams. Make sure your code fetches the datagrams quick enough to prevent filling up of the queue. In case the queue is filled up, adding elements via pushDatagram(Serializable) to the queue is blocked until elements are taken from the queue via receive().
      • AbstractDatagramsReceiver

        public AbstractDatagramsReceiver​(int aCapacity)
        Constructs a AbstractDatagramsReceiver with a custom sized blocking queue enabling a maximum of datagrams as specified by the capacity parameter. Make sure your code fetches the datagrams quick enough to prevent filling up of the queue. In case the queue is filled up, adding elements via pushDatagram(Serializable) to the queue is blocked until elements are taken from the queue via receive().
        Parameters:
        aCapacity - The capacity of the queue holding the received datagrams.
    • Method Detail

      • close

        public void close()
                   throws IOException
        Specified by:
        close in interface org.refcodes.component.Closable
        Overrides:
        close in class org.refcodes.component.AbstractConnectableAutomaton
        Throws:
        IOException
      • pushDatagram

        protected void pushDatagram​(DATA aDatagram)
                             throws IOException
        Pushes a datagram into the receiver and puts it into the blocking queue containing the so far received datagrams. Them datagrams can be retrieved via receive(): use available() to test beforehand whether there is a datagram available.
        Parameters:
        aDatagram - The datagram to be pushed at the end of the blocking queue; to be retrieved with the receive() method.
        Throws:
        IOException - the open exception
      • pushDatagrams

        protected void pushDatagrams​(DATA[] aDatagrams)
                              throws IOException
        Pushes datagrams into the receiver and puts them into the blocking queue containing the so far received datagrams. Them datagrams can be retrieved via receive(): use available() to test beforehand whether there is a datagram available.
        Parameters:
        aDatagrams - The datagrams to be pushed at the end of the blocking queue; to be retrieved with the receive() method.
        Throws:
        IOException - the open exception
      • pushDatagrams

        protected void pushDatagrams​(DATA[] aDatagrams,
                                     int aOffset,
                                     int aLength)
                              throws IOException
        Pushes datagrams into the receiver and puts them into the blocking queue containing the so far received datagrams. Them datagrams can be retrieved via receive(): use available() to test beforehand whether there is a datagram available.
        Parameters:
        aDatagrams - The datagrams to be pushed at the end of the blocking queue; to be retrieved with the receive() 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