X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flibr2c2%2Ftrainrouter.h;h=3c23496710a7b8e3b8df004ca40f1a988faf5e26;hb=d4c2cc962dc4c7b11c2db360fef7a80de3334c11;hp=cbaa520cd20d945c5e1249ba5679fddb07c9b9b9;hpb=3de7ae761b9a1fd1c1cd40457cc7067f4cf57c36;p=r2c2.git diff --git a/source/libr2c2/trainrouter.h b/source/libr2c2/trainrouter.h index cbaa520..3c23496 100644 --- a/source/libr2c2/trainrouter.h +++ b/source/libr2c2/trainrouter.h @@ -37,6 +37,8 @@ public: unsigned sequence_out; SequencePoint(Block &, unsigned); + + bool is_cleared() const; }; private: @@ -44,6 +46,7 @@ private: int priority; RouteList routes; + RouteList::iterator reserving_route; unsigned arriving; const TrackChain *destination; std::vector waypoints; @@ -51,8 +54,8 @@ private: std::vector metrics; bool metrics_stale; std::list sequence_points; - std::list pending_sequence_checks; unsigned current_sequence; + bool sequence_check_pending; Msp::Time::TimeDelta delay; Msp::RefPtr planner; @@ -88,12 +91,11 @@ public: private: void block_reserved(Block &, Train *); void train_advanced(Block &); - const Route *get_route_for_block(const Block &) const; void create_metrics(); Route *create_lead_route(Route *, const Route *); - bool advance_route(RouteList::iterator &, const Block &); - bool is_on_route(const Block &); + bool is_valid_for_track(const Route &, Track &) const; + bool advance_to_track(RouteList::iterator &, Track &); static void start_planning(Layout &); };