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;
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 &);
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);