void route(const std::string &);
void track(unsigned);
void train(unsigned, unsigned);
void route(const std::string &);
void track(unsigned);
void train(unsigned, unsigned);
sigc::signal<void, Route &> signal_route_removed;
sigc::signal<void, Train &> signal_train_added;
sigc::signal<void, Train &> signal_train_removed;
sigc::signal<void, Route &> signal_route_removed;
sigc::signal<void, Train &> signal_train_added;
sigc::signal<void, Train &> signal_train_removed;
std::set<Block *> blocks;
std::map<unsigned, Train *> trains;
std::set<Block *> blocks;
std::map<unsigned, Train *> trains;
const std::map<unsigned, Train *> &get_trains() const { return trains; }
void remove_train(Train &);
const std::map<unsigned, Train *> &get_trains() const { return trains; }
void remove_train(Train &);