Class StoreMessageSelector

  • All Implemented Interfaces:
    MessageSelector

    class StoreMessageSelector
    extends Object
    implements MessageSelector
    Check to see the message is a reply from the peer regarding the current store
    • Constructor Detail

      • StoreMessageSelector

        public StoreMessageSelector​(RouterContext ctx,
                                    long storeJobId,
                                    RouterInfo peer,
                                    long waitingForId,
                                    long expiration)
        Parameters:
        storeJobId - just for logging
        peer - just for logging
    • Method Detail

      • continueMatching

        public boolean continueMatching()
        Description copied from interface: MessageSelector
        Returns true if the selector should still keep searching for further matches. This is called only if isMatch() returns true. If this returns true, isMatch() will not be called again.
        Specified by:
        continueMatching in interface MessageSelector
      • getExpiration

        public long getExpiration()
        Description copied from interface: MessageSelector
        Returns the # of milliseconds since the epoch after which this selector should stop searching for matches. At some time after expiration, if continueMatching() has not returned false, the job specified by OutNetMessage.getOnFailedReplyJob() will be run for every OutNetMessage associated with this selector (by OutboundMessageRegistry).
        Specified by:
        getExpiration in interface MessageSelector
      • isMatch

        public boolean isMatch​(I2NPMessage message)
        Description copied from interface: MessageSelector
        Returns true if the received message matches the selector. If this returns true, the job specified by OutNetMessage.getOnReplyJob() will be run for every OutNetMessage associated with this selector (by InNetMessagePool), after calling setMessage() for that ReplyJob. WARNING this is called from within OutboundMessageSelector.getOriginalMessages() inside a lock and can lead to deadlocks if the selector does too much in isMatch(). Until the lock is removed, take care to keep it simple.
        Specified by:
        isMatch in interface MessageSelector