X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flibr2c2%2Ftimetable.h;h=3385a8eeaf97de6a3142d868a436d01d0125f22e;hb=b652dfb998dd416d26f909798e58964ef84eda11;hp=07250ca94a941376601ad0dafd4b7419c4daaba2;hpb=1ac853ffc606b29ffd88b923ed3551ee6282afb2;p=r2c2.git diff --git a/source/libr2c2/timetable.h b/source/libr2c2/timetable.h index 07250ca..3385a8e 100644 --- a/source/libr2c2/timetable.h +++ b/source/libr2c2/timetable.h @@ -27,7 +27,8 @@ public: enum RowType { ARRIVE = 1, - DEPART + DEPART, + THROUGH }; struct Row @@ -55,6 +56,15 @@ public: void save(std::list &) const; }; + struct RowTypeMatch + { + RowType type; + + RowTypeMatch(RowType t): type(t) { } + + bool operator()(const Row &r) const { return r.type==type; } + }; + sigc::signal signal_row_added; sigc::signal signal_row_modified; sigc::signal signal_row_removed; @@ -63,6 +73,7 @@ private: std::list rows; std::list::iterator current_row; bool update_pending; + bool sync_to_clock; public: Timetable(Train &); @@ -81,8 +92,10 @@ public: private: void check_update(std::list::const_iterator); + std::list::iterator find_trip(const std::list::iterator &, std::list::iterator *); void update_route(); void event(TrainAI &, const Message &); + void record_time(); }; } // namespace R2C2