X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;ds=sidebyside;f=source%2Flibmarklin%2Ftrafficmanager.h;h=85381e0f4454bdb2f05ef3b47d78831c9abf607b;hb=010d8321e982d1684fcbff5bf6fc2bdec7cb7bae;hp=2ef4bc9e9346a2d17a729c4660c1c9f3c3f90888;hpb=1d735b80482317fd930eb47ca255ab9f1f120a7d;p=r2c2.git diff --git a/source/libmarklin/trafficmanager.h b/source/libmarklin/trafficmanager.h index 2ef4bc9..85381e0 100644 --- a/source/libmarklin/trafficmanager.h +++ b/source/libmarklin/trafficmanager.h @@ -1,3 +1,10 @@ +/* $Id$ + +This file is part of the MSP Märklin suite +Copyright © 2006-2009 Mikkosoft Productions, Mikko Rasa +Distributed under the GPL +*/ + #ifndef LIBMARKLIN_TRAFFICMANAGER_H_ #define LIBMARKLIN_TRAFFICMANAGER_H_ @@ -12,23 +19,37 @@ 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; std::list blocks; std::list trains; + Msp::Time::TimeStamp last_tick; public: - sigc::signal signal_block_reserved; - TrafficManager(Control &, Layout &); ~TrafficManager(); Control &get_control() const { return control; } + const std::list &get_blocks() const { return blocks; } 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 *); };