1 package cz.cuni.amis.pogamut.base.agent.navigation;
2
3 import java.util.List;
4
5 /**
6 * Simple interface that defines a method for estimating timeout for traveling along the path.
7 * <p><p>
8 * Implementors can be used to provide maximum time (timeout) that is needed to reach the end of the path.
9 * It is useful for {@link IPathExecutor} so it won't stuck whenever the execution fails unexpectedly.
10 *
11 * @author Jimmy
12 *
13 * @param <PATH_ELEMENT>
14 */
15 public interface IPathExecutionEstimator<PATH_ELEMENT> {
16
17 /**
18 * Returns maximum amount of time (in ms) that is needed to follow the path and reach its end.
19 * <p><p>
20 * Usually used to determine timeout for path execution by {@link IPathExecutor}.
21 *
22 * @param path
23 * @return time in ms
24 */
25 public double getTimeout(List<PATH_ELEMENT> path);
26
27 }