]> git.tdb.fi Git - r2c2.git/blobdiff - source/libmarklin/route.h
Add Block::has_track and Route::has_track methods
[r2c2.git] / source / libmarklin / route.h
index 7c188b00e702bf37bf7786ccbdbd0af010799b20..75241d8b604bea37c278e30f45e9894f2f867476 100644 (file)
@@ -42,7 +42,7 @@ private:
        Layout &layout;
        std::string name;
        bool temporary;
-       std::set<const Track *> tracks;
+       std::set<Track *> tracks;
        TurnoutMap turnouts;
 
 public:
@@ -53,21 +53,24 @@ public:
        const std::string &get_name() const { return name; }
        void set_temporary(bool);
        bool is_temporary() const { return temporary; }
+       void set_turnout(unsigned, unsigned);
        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 add_track(Track &);
+       void add_tracks(const std::set<Track *> &);
+       void add_track_chain(Track &, unsigned, const TurnoutMap &);
+       const std::set<Track *> &get_tracks() const { return tracks; }
+       bool has_track(Track &) const;
        void save(std::list<Msp::DataFile::Statement> &) const;
 private:
-       unsigned check_validity(const Track &) const;
+       unsigned check_validity(Track &) const;
        void track_removed(Track &);
 
 public:
-       static Route *find(const Track &, unsigned, const Track &);
-       static Route *find(const Track &, unsigned, const Route &);
+       static Route *find(Track &, unsigned, Track &);
+       static Route *find(Track &, unsigned, const Route &);
+       static Route *find(Track &, unsigned, const std::set<Track *> &);
 };
 
 } // namespace Marklin