class Route: public sigc::trackable
{
public:
+ typedef std::map<unsigned, int> TurnoutMap;
+
class Loader: public Msp::DataFile::BasicLoader<Route>
{
+ private:
+ TurnoutMap turnouts;
+
public:
Loader(Route &);
private:
+ virtual void finish();
void turnout(unsigned, unsigned);
};
std::string name;
bool temporary;
std::set<const Track *> tracks;
- std::map<unsigned, int> turnouts;
+ TurnoutMap turnouts;
public:
Route(Layout &, const std::string &);
const std::string &get_name() const { return name; }
void set_temporary(bool);
bool is_temporary() const { return temporary; }
+ void update_turnouts();
int get_turnout(unsigned) const;
const std::map<unsigned, int> &get_turnouts() const { return turnouts; }
void add_track(const Track &);
void add_tracks(const std::set<const Track *> &);
+ void add_track_chain(const Track &, unsigned, const TurnoutMap &);
const std::set<const Track *> &get_tracks() const { return tracks; }
void save(std::list<Msp::DataFile::Statement> &) const;
private:
- void update_turnouts();
unsigned check_validity(const Track &) const;
void track_removed(Track &);