]> git.tdb.fi Git - r2c2.git/blobdiff - source/network/server.h
Send and receive power/halt states over network
[r2c2.git] / source / network / server.h
index ced08aac06eb2df544a9dd8e741cf6cdcfc75e2f..dc7543fe293278f09be6fb673731108500bae8bf 100644 (file)
@@ -21,9 +21,10 @@ namespace R2C2 {
 class Server
 {
 private:
-       struct Connection: private Msp::Net::PacketReceiver<TrainControlPacket>,
-               private Msp::Net::PacketReceiver<TrainFunctionPacket>,
-               private Msp::Net::PacketReceiver<TrainRoutePacket>
+       struct Connection: Msp::Net::PacketReceiver<DriverStatePacket>,
+               Msp::Net::PacketReceiver<TrainControlPacket>,
+               Msp::Net::PacketReceiver<TrainFunctionPacket>,
+               Msp::Net::PacketReceiver<TrainRoutePacket>
        {
                Server &server;
                Msp::Net::StreamSocket *socket;
@@ -35,6 +36,7 @@ private:
 
                void handshake_done();
                void end_of_file();
+               virtual void receive(const DriverStatePacket &);
                virtual void receive(const TrainControlPacket &);
                virtual void receive(const TrainFunctionPacket &);
                virtual void receive(const TrainRoutePacket &);
@@ -53,6 +55,8 @@ public:
 private:
        void incoming_connection();
 
+       void driver_state_changed();
+       void emergency(const std::string &);
        void train_added(Train &);
        void train_control_changed(const Train &, const std::string &, float);
        void train_function_changed(const Train &, unsigned, bool);