comm = new Net::Communicator(*socket, proto, *this);
}
-NetTrain &Client::get_train(unsigned addr)
+NetTrain &Client::get_train(unsigned addr) const
{
- map<unsigned, NetTrain *>::iterator i = trains.find(addr);
+ map<unsigned, NetTrain *>::const_iterator i = trains.find(addr);
if(i==trains.end())
throw KeyError("Unknown train");
return *i->second;
signal_train_added.emit(*train);
}
-void Client::receive(const TrainSpeedPacket &pkt)
+void Client::receive(const TrainControlPacket &pkt)
{
get_train(pkt.address).process_packet(pkt);
}
get_train(pkt.address).process_packet(pkt);
}
+void Client::receive(const RouteInfoPacket &pkt)
+{
+ routes.push_back(pkt.name);
+}
+
+void Client::receive(const TrainRoutePacket &pkt)
+{
+ get_train(pkt.address).process_packet(pkt);
+}
+
+void Client::receive(const ErrorPacket &pkt)
+{
+ signal_error.emit(pkt.message);
+}
+
} // namespace Marklin