Class InNetMessagePool

  • All Implemented Interfaces:
    Service

    public class InNetMessagePool
    extends Object
    implements Service
    Manage a pool of inbound InNetMessages. This pool is filled by the Network communication system when it receives messages, and various jobs periodically retrieve them for processing. Actually, this doesn't 'pool' anything, since DISPATCH_DIRECT = true.
    • Field Detail

      • PROP_DISPATCH_THREADED

        public static final String PROP_DISPATCH_THREADED
        If set to true, we will have two additional threads - one for dispatching tunnel data messages, and another for dispatching tunnel gateway messages. These will not use the JobQueue but will operate sequentially. Otherwise, if this is set to false, the messages will be queued up in the jobQueue, using the jobQueue's single thread.
        See Also:
        Constant Field Values
      • DEFAULT_DISPATCH_THREADED

        public static final boolean DEFAULT_DISPATCH_THREADED
        See Also:
        Constant Field Values
    • Constructor Detail

      • InNetMessagePool

        public InNetMessagePool​(RouterContext context)
    • Method Detail

      • unregisterHandlerJobBuilder

        @Deprecated
        public HandlerJobBuilder unregisterHandlerJobBuilder​(int i2npMessageType)
        Deprecated.
        unused
        Returns:
        previous builder for this message type, or null
        Throws:
        ArrayIndexOutOfBoundsException - if i2npMessageType is greater than MAX_I2NP_MESSAGE_TYPE
      • add

        public int add​(I2NPMessage messageBody,
                       RouterIdentity fromRouter,
                       Hash fromRouterHash)
        Add a new message to the pool. If there is a HandlerJobBuilder for the inbound message type, the message is loaded into a job created by that builder and queued up for processing instead (though if the builder doesn't create a job, it is added to the pool)
        Parameters:
        messageBody - non-null
        fromRouter - may be null
        fromRouterHash - may be null, calculated from fromRouter if null
        Returns:
        -1 for some types of errors but not all; 0 otherwise (was queue length, long ago)
      • handleReplies

        public int handleReplies​(I2NPMessage messageBody)
      • restart

        public void restart()
        does nothing since we aren't threaded
        Specified by:
        restart in interface Service
      • shutdown

        public void shutdown()
        does nothing since we aren't threaded
        Specified by:
        shutdown in interface Service
      • startup

        public void startup()
        does nothing since we aren't threaded
        Specified by:
        startup in interface Service