X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flibr2c2%2Ftrainrouter.h;h=6f697f997b6349ba686b409022ce9e1d6fd79e86;hb=5eeb8f5749586b9aae2996d2143e300388d15611;hp=c1b6977f3734d45b19f615146c899d0ef22dedc0;hpb=de7380fdde172fa7e905e8af91d5842994faa9fb;p=r2c2.git diff --git a/source/libr2c2/trainrouter.h b/source/libr2c2/trainrouter.h index c1b6977..6f697f9 100644 --- a/source/libr2c2/trainrouter.h +++ b/source/libr2c2/trainrouter.h @@ -29,12 +29,14 @@ public: sigc::signal signal_waypoint_reached; private: - struct Wait + struct SequencePoint { Block *block; - Train *train; + Train *preceding_train; + unsigned sequence_in; + unsigned sequence_out; - Wait(); + SequencePoint(Block &, unsigned); }; typedef std::list RouteList; @@ -45,7 +47,9 @@ private: const TrackChain *destination; std::vector waypoints; std::vector metrics; - std::list waits; + std::list sequence_points; + std::list pending_sequence_checks; + unsigned current_sequence; Msp::Time::TimeDelta delay; bool update_pending; @@ -59,8 +63,10 @@ public: bool set_route(const Route *); bool add_route(const Route &); - void add_wait(Block &, Train *); const Route *get_route() const; + void add_sequence_point(Block &, unsigned); + void add_sequence_point(Block &, Train &, unsigned, unsigned); + unsigned get_current_sequence() const { return current_sequence; } void set_destination(const TrackChain &); const TrackChain *get_destination() const { return destination; }