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