#include <queue>
+#include <msp/core/maputils.h>
#include <msp/strings/format.h>
#include "layout.h"
#include "route.h"
{
if(!addr)
throw InvalidParameterValue("Invalid turnout address");
- map<unsigned, int>::iterator i = turnouts.find(addr);
- if(i==turnouts.end())
- throw KeyError("Turnout is not in this route");
- if(i->second>=0 && path!=static_cast<unsigned>(i->second))
+ int &state = get_item(turnouts, addr);
+ if(state>=0 && path!=static_cast<unsigned>(state))
throw InvalidState("Setting conflicts with route");
- i->second = path;
+ state = path;
}
void Route::update_turnouts()