namespace Marklin {
class Locomotive;
+class Route;
class Sensor;
class TrafficManager;
class Turnout;
sigc::signal<void, const std::string &> signal_name_changed;
sigc::signal<void, unsigned> signal_target_speed_changed;
+ sigc::signal<void, const Route *> signal_route_changed;
sigc::signal<void, const std::string &> signal_status_changed;
private:
std::list<BlockRef> cur_blocks;
std::list<BlockRef> rsv_blocks;
unsigned target_speed;
+ const Route *route;
Msp::Time::TimeStamp try_reserve;
std::string status;
void set_name(const std::string &);
void set_speed(unsigned);
void set_reverse(bool);
+ void set_route(const Route *);
const std::string &get_name() const { return name; }
Locomotive &get_locomotive() const { return loco; }
unsigned get_target_speed() const { return target_speed; }
+ const Route *get_route() const { return route; }
const std::string &get_status() const { return status; }
const Point &get_position() const { return pos; }
void place(Block *, unsigned);