X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fnetwork%2Fclient.cpp;h=d418b8cad92c719d7d0a5f0cb217b8ee6ba89fea;hb=90f9efba8d88f41c7a180734b7bcbdd1501d995e;hp=4eb4b25f5aefdd81498cd06a66b78925426b03f8;hpb=010d8321e982d1684fcbff5bf6fc2bdec7cb7bae;p=r2c2.git diff --git a/source/network/client.cpp b/source/network/client.cpp index 4eb4b25..d418b8c 100644 --- a/source/network/client.cpp +++ b/source/network/client.cpp @@ -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::iterator i = trains.find(addr); + map::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