]> git.tdb.fi Git - r2c2.git/blobdiff - source/network/client.h
Strip Id tags and copyright notices from files
[r2c2.git] / source / network / client.h
index 02295dfa32690aeb9a2d2610269fd4132ce83254..a8f043e575e0fde9996adaec7f314a3a8983488d 100644 (file)
@@ -1,10 +1,3 @@
-/* $Id$
-
-This file is part of R²C²
-Copyright © 2009  Mikkosoft Productions, Mikko Rasa
-Distributed under the GPL
-*/
-
 #ifndef R2C2_NET_CLIENT_H_
 #define R2C2_NET_CLIENT_H_
 
@@ -17,7 +10,9 @@ Distributed under the GPL
 
 namespace R2C2 {
 
-class Client: public Msp::Net::PacketReceiver<TrainInfoPacket>,
+class Client: Msp::Net::PacketReceiver<DriverStatePacket>,
+       Msp::Net::PacketReceiver<EmergencyPacket>,
+       Msp::Net::PacketReceiver<TrainInfoPacket>,
        Msp::Net::PacketReceiver<TrainFunctionPacket>,
        Msp::Net::PacketReceiver<TrainControlPacket>,
        Msp::Net::PacketReceiver<TrainStatusPacket>,
@@ -26,6 +21,9 @@ class Client: public Msp::Net::PacketReceiver<TrainInfoPacket>,
        Msp::Net::PacketReceiver<ErrorPacket>
 {
 public:
+       sigc::signal<void, bool> signal_power_changed;
+       sigc::signal<void, bool> signal_halt_changed;
+       sigc::signal<void, const std::string &> signal_emergency;
        sigc::signal<void, NetTrain &> signal_train_added;
        sigc::signal<void, const std::string &> signal_error;
 
@@ -35,6 +33,8 @@ private:
        Msp::Net::StreamSocket *socket;
        Msp::Net::Communicator *comm;
        Msp::IO::EventDispatcher *event_disp;
+       bool power;
+       bool halt;
        std::list<std::string> routes;
        std::map<unsigned, NetTrain *> trains;
 
@@ -51,10 +51,14 @@ public:
 
        const Catalogue &get_catalogue() const { return catalogue; }
        const std::list<std::string> &get_routes() const { return routes; }
+       void set_power(bool);
+       void set_halt(bool);
        NetTrain &get_train(unsigned) const;
        const std::map<unsigned, NetTrain *> &get_trains() const { return trains; }
 
 private:
+       virtual void receive(const DriverStatePacket &);
+       virtual void receive(const EmergencyPacket &);
        virtual void receive(const TrainInfoPacket &);
        virtual void receive(const TrainControlPacket &);
        virtual void receive(const TrainFunctionPacket &);