Class I2CPMessageQueue

  • All Implemented Interfaces:
    Closeable, AutoCloseable
    Direct Known Subclasses:
    I2CPMessageQueueImpl

    public abstract class I2CPMessageQueue
    extends Object
    implements Closeable
    Contains the methods to talk to a router or client via I2CP, when both are in the same JVM. This interface contains methods to access two queues, one for transmission and one for receiving. The methods are identical to those in java.util.concurrent.BlockingQueue. Reading may be done in a thread using the QueuedI2CPMessageReader class. Non-blocking writing may be done directly with offer().
    Since:
    0.8.3
    Author:
    zzz
    • Constructor Detail

      • I2CPMessageQueue

        public I2CPMessageQueue()
    • Method Detail

      • offer

        public abstract boolean offer​(I2CPMessage msg)
        Send a message, nonblocking.
        Returns:
        success (false if no space available)
      • offer

        public abstract boolean offer​(I2CPMessage msg,
                                      long timeout)
                               throws InterruptedException
        Send a message, blocking.
        Parameters:
        timeout - how long to wait for space (ms)
        Returns:
        success (false if no space available or if timed out)
        Throws:
        InterruptedException
        Since:
        0.9.3
      • poll

        public abstract I2CPMessage poll()
        Receive a message, nonblocking. Unused for now.
        Returns:
        message or null if none available