#define LIBMARKLIN_ROUTE_H_
#include <list>
+#include <map>
+#include <set>
#include <string>
-#include "track.h"
namespace Marklin {
+class Track;
+class Turnout;
+
class Route
{
public:
typedef std::map<unsigned, unsigned> TurnoutMap;
Route();
- const TurnoutMap &get_turnouts() const { return turnouts; }
+ const std::map<unsigned, Turnout *> &get_turnouts() const { return turnouts; }
void add_track(Track *);
~Route();
private:
std::string name;
- TrackSeq tracks;
- TurnoutMap turnouts;
+ std::set<Track *> tracks;
+ std::map<unsigned, Turnout *> turnouts;
};
-typedef std::list<Route *> RouteSeq;
} // namespace Marklin