/* This code is part of Freenet. It is distributed under the GNU General
* Public License, version 2 (or at your option any later version). See
* http://www.gnu.org/ for further details of the GPL. */
package freenet.node;
/**
* Interface which returns the time at which the failure table timeout on any given node will
* expire for a specific key.
* @author toad
*/
public interface TimedOutNodesList {
/** When does the timeout for this node end?
* @param peer The peer we are proposing to route to.
* @param htl Timeouts with lower HTL than this will be ignored.
* @param now The current time from System.currentTimeMillis().
* @param forPerNodeFailureTables If true, return the timeout for purposes of
* per-node failure tables i.e. which to route to (paranoid high); if false,
* return the timeout for purposes of RecentlyFailed request quenching
* (trusting low).
* @return The time at which the timeout ends for the node in question.
* -1 if there is no timeout. */
long getTimeoutTime(PeerNode peer, short htl, long now, boolean forPerNodeFailureTables);
}