1 #ifndef LIBR2C2_DEPARTURES_H_
2 #define LIBR2C2_DEPARTURES_H_
7 #include <sigc++/signal.h>
8 #include <msp/time/timedelta.h>
18 class Departures: public sigc::trackable
25 Msp::Time::TimeDelta time;
27 Departure(Zone &, Train &, const Msp::Time::TimeDelta &);
30 sigc::signal<void, const Departure &> signal_departure_added;
31 sigc::signal<void, const Departure &> signal_departure_removed;
34 std::vector<Zone *> zones;
35 std::list<Departure> departures;
38 Departures(const Layout &, const std::string &);
40 const std::list<Departure> &get_departures() const { return departures; }
43 void train_route_changed(const Route *, Train &);
44 void train_departed(Train &);
45 void update_departures(Train &);
46 void merge_departures(Train &, const std::list<Departure> &);
47 Zone *get_attached_zone(const TrackChain &) const;