X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flibmarklin%2Ftrafficmanager.h;h=d75bf3ae50b48cecca640c87cb4ac354e5e6867a;hb=444c7efb2fadb10e98197a62b791829d821370c0;hp=9db94448a72ac9068a4d5c7a64eedf551403174f;hpb=52cbe8d99669f843f8f75c51128e2748584dd03a;p=r2c2.git diff --git a/source/libmarklin/trafficmanager.h b/source/libmarklin/trafficmanager.h index 9db9444..d75bf3a 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_ @@ -13,21 +20,35 @@ class Turnout; class TrafficManager { public: - sigc::signal signal_block_reserved; + class Loader: public Msp::DataFile::BasicLoader + { + public: + Loader(TrafficManager &); + private: + void train(unsigned, unsigned); + }; - TrafficManager(Control &, Layout &); - ~TrafficManager(); + sigc::signal signal_block_reserved; - Control &get_control() const { return control; } - Block *get_block_by_track(const Track *) const; - const TrainSeq &get_trains() const { return trains; } - void add_train(Train *); private: Control &control; Layout &layout; std::list blocks; std::list trains; + Msp::Time::TimeStamp last_tick; +public: + 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; } + void add_train(Train *); + void tick(); + void save(const std::string &) const; +private: void turnout_route_changed(unsigned, Turnout *); };