void advance(const Msp::Time::TimeDelta &);
void advance_track(unsigned);
void update_estimate();
+ bool is_viable() const;
};
struct RoutingStep
std::list<RoutingStep> steps;
std::list<RoutingStep> queue;
const RoutingStep *goal;
+ Msp::Time::TimeDelta timeout;
Result result;
PlanningThread *thread;
TrainRoutePlanner(Layout &);
~TrainRoutePlanner();
+ void set_timeout(const Msp::Time::TimeDelta &);
Result plan();
void plan_async();
Result check();