java.lang.Object
net.i2p.router.message.OutboundClientMessageOneShotJob.ReplySelector
- All Implemented Interfaces:
MessageSelector
- Enclosing class:
OutboundClientMessageOneShotJob
private static class OutboundClientMessageOneShotJob.ReplySelectorextends Object implements MessageSelector
Keep an eye out for any of the delivery status message tokens that have been sent down the various tunnels to deliver this message.
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final longWhen the selector stops matching.private final longToken the reply must carry.Constructor Summary
ConstructorsConstructorDescriptionReplySelector(long token, long expiration) Matches the reply for one pending send.Method Summary
All MethodsModifier and TypeMethodDescriptionbooleanReturns true if the selector should still keep searching for further matches.longReturns the # of milliseconds since the epoch after which this selector should stop searching for matches.booleanisMatch(I2NPMessage inMsg) Returns true if the received message matches the selector.toString()
Field Details
_pendingToken
private final long _pendingTokenToken the reply must carry._expiration
private final long _expirationWhen the selector stops matching.
Constructor Details
ReplySelector
public ReplySelector(long token, long expiration) Matches the reply for one pending send.- Parameters:
token- the token the reply must carryexpiration- when the selector stops matching
Method Details
continueMatching
public boolean continueMatching()Description copied from interface:MessageSelectorReturns 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:
continueMatchingin interfaceMessageSelector- Returns:
- true to keep searching for further matches, false to stop searching
getExpiration
public long getExpiration()Description copied from interface:MessageSelectorReturns the # of milliseconds since the epoch after which this selector should stop searching for matches. At some time after expiration, ifMessageSelector.continueMatching()has not returned false, the job specified byOutNetMessage.getOnFailedReplyJob()will be run for every OutNetMessage associated with this selector (by OutboundMessageRegistry).- Specified by:
getExpirationin interfaceMessageSelector- Returns:
- the number of milliseconds since the epoch at which to stop searching
isMatch
Description copied from interface:MessageSelectorReturns true if the received message matches the selector. If this returns true, the job specified byOutNetMessage.getOnReplyJob()will be run for every OutNetMessage associated with this selector (byInNetMessagePool), 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 inMessageSelector.isMatch(I2NPMessage). Until the lock is removed, take care to keep it simple.- Specified by:
isMatchin interfaceMessageSelector- Parameters:
inMsg- the received message to test against this selector- Returns:
- true if the received message is one this selector was waiting for
toString