X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;ds=sidebyside;f=source%2Flibr2c2%2Ftrainrouter.h;h=6f697f997b6349ba686b409022ce9e1d6fd79e86;hb=df72b71642bbc5b9a4e5010ebca8643fbeea3ca8;hp=c69d28c9389057c3ea37cb14fd5ed3ed5ad0a52a;hpb=d578d036656c0e89fe9dca5aefd1f81d2777a69e;p=r2c2.git diff --git a/source/libr2c2/trainrouter.h b/source/libr2c2/trainrouter.h index c69d28c..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; @@ -58,8 +62,11 @@ public: int get_priority() const { return priority; } bool set_route(const Route *); - void add_wait(Block &, Train *); + bool add_route(const Route &); 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; }