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::map<std::string, Route *> routes;
std::set<Block *> blocks;
std::map<unsigned, Train *> trains;
std::map<std::string, Route *> routes;
std::set<Block *> blocks;
std::map<unsigned, Train *> trains;
void add_route(Route &);
const std::map<std::string, Route *> &get_routes() const { return routes; }
Route &get_route(const std::string &) const;
void add_route(Route &);
const std::map<std::string, Route *> &get_routes() const { return routes; }
Route &get_route(const std::string &) const;
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 &);