+void Dummy::tick()
+{
+ Time::TimeStamp t = Time::now();
+ for(map<unsigned, TurnoutState>::iterator i=turnouts.begin(); i!=turnouts.end(); ++i)
+ {
+ if(i->second.timeout && t>=i->second.timeout)
+ {
+ if(turnout_fail_rate && rand()<turnout_fail_rate)
+ {
+ signal_turnout_failed.emit(i->first);
+ i->second.pending = i->second.state;
+ }
+ i->second.state = i->second.pending;
+ i->second.timeout = Time::TimeStamp();
+ signal_turnout.emit(i->first, i->second.state);
+ }
+ }
+}
+