]> git.tdb.fi Git - r2c2.git/blobdiff - source/network/client.h
Export routes over network
[r2c2.git] / source / network / client.h
index ce8dcb66fc15cdb681157b57d3b5e50b968741fc..3a9cbc0717a659cc042e8874b6333d5f099b0f89 100644 (file)
@@ -20,7 +20,9 @@ namespace Marklin {
 class Client: public Msp::Net::PacketReceiver<TrainInfoPacket>,
        Msp::Net::PacketReceiver<TrainSpeedPacket>,
        Msp::Net::PacketReceiver<TrainFunctionPacket>,
-       Msp::Net::PacketReceiver<TrainStatusPacket>
+       Msp::Net::PacketReceiver<TrainStatusPacket>,
+       Msp::Net::PacketReceiver<RouteInfoPacket>,
+       Msp::Net::PacketReceiver<TrainRoutePacket>
 {
 public:
        sigc::signal<void, NetTrain &> signal_train_added;
@@ -31,6 +33,7 @@ private:
        Msp::Net::StreamSocket *socket;
        Msp::Net::Communicator *comm;
        Msp::IO::EventDispatcher *event_disp;
+       std::list<std::string> routes;
        std::map<unsigned, NetTrain *> trains;
 
 public:
@@ -45,6 +48,7 @@ public:
        { if(comm) comm->send(pkt); }
 
        const Catalogue &get_catalogue() const { return catalogue; }
+       const std::list<std::string> &get_routes() const { return routes; }
        NetTrain &get_train(unsigned);
 
 private:
@@ -52,6 +56,8 @@ private:
        virtual void receive(const TrainSpeedPacket &);
        virtual void receive(const TrainFunctionPacket &);
        virtual void receive(const TrainStatusPacket &);
+       virtual void receive(const RouteInfoPacket &);
+       virtual void receive(const TrainRoutePacket &);
 };
 
 } // namespace Marklin