]> git.tdb.fi Git - r2c2.git/blobdiff - source/network/client.h
Foundations of using physics simulation for trains
[r2c2.git] / source / network / client.h
index 3a9cbc0717a659cc042e8874b6333d5f099b0f89..2ab8722f1eb8f24dca84c2e223904b30295ee327 100644 (file)
@@ -18,14 +18,16 @@ Distributed under the GPL
 namespace Marklin {
 
 class Client: public Msp::Net::PacketReceiver<TrainInfoPacket>,
-       Msp::Net::PacketReceiver<TrainSpeedPacket>,
        Msp::Net::PacketReceiver<TrainFunctionPacket>,
+       Msp::Net::PacketReceiver<TrainControlPacket>,
        Msp::Net::PacketReceiver<TrainStatusPacket>,
        Msp::Net::PacketReceiver<RouteInfoPacket>,
-       Msp::Net::PacketReceiver<TrainRoutePacket>
+       Msp::Net::PacketReceiver<TrainRoutePacket>,
+       Msp::Net::PacketReceiver<ErrorPacket>
 {
 public:
        sigc::signal<void, NetTrain &> signal_train_added;
+       sigc::signal<void, const std::string &> signal_error;
 
 private:
        const Catalogue &catalogue;
@@ -49,15 +51,17 @@ public:
 
        const Catalogue &get_catalogue() const { return catalogue; }
        const std::list<std::string> &get_routes() const { return routes; }
-       NetTrain &get_train(unsigned);
+       NetTrain &get_train(unsigned) const;
+       const std::map<unsigned, NetTrain *> &get_trains() const { return trains; }
 
 private:
        virtual void receive(const TrainInfoPacket &);
-       virtual void receive(const TrainSpeedPacket &);
+       virtual void receive(const TrainControlPacket &);
        virtual void receive(const TrainFunctionPacket &);
        virtual void receive(const TrainStatusPacket &);
        virtual void receive(const RouteInfoPacket &);
        virtual void receive(const TrainRoutePacket &);
+       virtual void receive(const ErrorPacket &);
 };
 
 } // namespace Marklin