]> git.tdb.fi Git - r2c2.git/blobdiff - source/network/client.cpp
Rename the project to R²C²
[r2c2.git] / source / network / client.cpp
index 4eb4b25f5aefdd81498cd06a66b78925426b03f8..d418b8cad92c719d7d0a5f0cb217b8ee6ba89fea 100644 (file)
@@ -1,6 +1,6 @@
 /* $Id$
 
-This file is part of the MSP Märklin suite
+This file is part of R²C²
 Copyright © 2009  Mikkosoft Productions, Mikko Rasa
 Distributed under the GPL
 */
@@ -10,7 +10,7 @@ Distributed under the GPL
 using namespace std;
 using namespace Msp;
 
-namespace Marklin {
+namespace R2C2 {
 
 Client::Client(const Catalogue &c):
        catalogue(c),
@@ -43,9 +43,9 @@ void Client::connect(const Net::SockAddr &addr)
        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;
@@ -58,7 +58,7 @@ void Client::receive(const TrainInfoPacket &pkt)
        signal_train_added.emit(*train);
 }
 
-void Client::receive(const TrainSpeedPacket &pkt)
+void Client::receive(const TrainControlPacket &pkt)
 {
        get_train(pkt.address).process_packet(pkt);
 }
@@ -73,4 +73,19 @@ void Client::receive(const TrainStatusPacket &pkt)
        get_train(pkt.address).process_packet(pkt);
 }
 
-} // namespace Marklin
+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 R2C2