X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;ds=sidebyside;f=source%2Flibmarklin%2Froute.h;fp=source%2Flibmarklin%2Froute.h;h=6e69bba955aa3c24b8705e7370b5d230d04bd186;hb=444c7efb2fadb10e98197a62b791829d821370c0;hp=a8e220d5de1c91997eda62fb4680d974bf73affa;hpb=f9254f57b736927a57a2fd793ee18f6c9766dd43;p=r2c2.git diff --git a/source/libmarklin/route.h b/source/libmarklin/route.h index a8e220d..6e69bba 100644 --- a/source/libmarklin/route.h +++ b/source/libmarklin/route.h @@ -1,7 +1,7 @@ /* $Id$ This file is part of the MSP Märklin suite -Copyright © 2007-2008 Mikkosoft Productions, Mikko Rasa +Copyright © 2007-2009 Mikkosoft Productions, Mikko Rasa Distributed under the GPL */ @@ -11,6 +11,7 @@ Distributed under the GPL #include #include #include +#include namespace Marklin { @@ -19,17 +20,33 @@ class Turnout; class Route { +public: + class Loader: public Msp::DataFile::BasicLoader + { + public: + Loader(Route &); + private: + void turnout(unsigned, unsigned); + }; + private: std::string name; - std::set tracks; - std::map turnouts; + std::set tracks; + std::map turnouts; public: - Route(); - ~Route(); - - const std::map &get_turnouts() const { return turnouts; } - void add_track(Track *); + Route(const std::string &); + + const std::string &get_name() const { return name; } + int get_turnout(unsigned) const; + const std::map &get_turnouts() const { return turnouts; } + void add_track(const Track &); + void add_tracks(const std::set &); + const std::set &get_tracks() const { return tracks; } + void save(std::list &) const; +private: + void update_turnouts(); + unsigned check_validity(const Track &) const; }; } // namespace Marklin