+ void set_priority(int);
+ void yield_to(const Train &);
+ int get_priority() const { return priority; }
+ Controller &get_controller() const { return *controller; }
+
+ void add_vehicle(const VehicleType &);
+ void remove_vehicle(unsigned);
+ unsigned get_n_vehicles() const;
+ Vehicle &get_vehicle(unsigned);
+ const Vehicle &get_vehicle(unsigned) const;
+
+ void set_control(const std::string &, float);
+ void set_active(bool);