+ void set_priority(int);
+ int get_priority() const { return priority; }
+ ControlModel &get_control() const { return *control; }
+
+ Vehicle &get_vehicle(unsigned);
+ const Vehicle &get_vehicle(unsigned) const;
+
+ void set_control(const std::string &, float);
+ void set_active(bool);
+ void set_function(unsigned, bool);
+ float get_control(const std::string &) const;
+ bool is_active() const { return active; }
+ bool get_function(unsigned) const;
+ unsigned get_functions() const { return functions; }
+
+ void set_timetable(Timetable *);
+ Timetable *get_timetable() { return timetable; }
+
+ void set_route(const Route *);
+ void go_to(const Track &);
+ const Route *get_route() const { return route; }
+ void place(Block &, unsigned);
+ bool is_placed() const { return !cur_blocks.empty(); }
+ bool free_block(Block &);
+ int get_entry_to_block(Block &) const;
+ float get_reserved_distance() const;
+
+ const std::string &get_status() const { return status; }
+
+ void tick(const Msp::Time::TimeStamp &, const Msp::Time::TimeDelta &);
+
+ void save(std::list<Msp::DataFile::Statement> &) const;