X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flibmarklin%2Ftrafficmanager.h;h=266d2ff65ccf037eafcd7fdce468fddbd8bb9ad3;hb=dcfa1e9503b7e97b61396d7458f0b2e5896779cd;hp=ac3f395ce45a50bd1f3ad248c2dc246a0bdffa2f;hpb=319f90fd59587efc1242c34f307abc29f323642b;p=r2c2.git diff --git a/source/libmarklin/trafficmanager.h b/source/libmarklin/trafficmanager.h index ac3f395..266d2ff 100644 --- a/source/libmarklin/trafficmanager.h +++ b/source/libmarklin/trafficmanager.h @@ -19,6 +19,18 @@ class Turnout; class TrafficManager { +public: + class Loader: public Msp::DataFile::BasicLoader + { + public: + Loader(TrafficManager &); + private: + void train(unsigned, unsigned); + }; + + sigc::signal signal_train_added; + sigc::signal signal_block_reserved; + private: Control &control; Layout &layout; @@ -27,19 +39,21 @@ private: Msp::Time::TimeStamp last_tick; public: - sigc::signal signal_block_reserved; - TrafficManager(Control &, Layout &); ~TrafficManager(); Control &get_control() const { return control; } + Layout &get_layout() const { return layout; } const std::list &get_blocks() const { return blocks; } + Block &get_block(unsigned) const; Block &get_block_by_track(const Track &) const; const std::list &get_trains() const { return trains; } + Train &get_train_by_locomotive(const Locomotive &) const; void add_train(Train *); void tick(); + void save(const std::string &) const; private: - void turnout_route_changed(unsigned, Turnout *); + void turnout_path_changed(unsigned, Turnout *); }; } // namespace Marklin