X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fnetwork%2Fclient.h;h=a8f043e575e0fde9996adaec7f314a3a8983488d;hb=95339ab1d15219938c7b2945f4f558dc162c9127;hp=ce8dcb66fc15cdb681157b57d3b5e50b968741fc;hpb=010d8321e982d1684fcbff5bf6fc2bdec7cb7bae;p=r2c2.git diff --git a/source/network/client.h b/source/network/client.h index ce8dcb6..a8f043e 100644 --- a/source/network/client.h +++ b/source/network/client.h @@ -1,29 +1,31 @@ -/* $Id$ - -This file is part of the MSP Märklin suite -Copyright © 2009 Mikkosoft Productions, Mikko Rasa -Distributed under the GPL -*/ - -#ifndef MARKLINNET_CLIENT_H_ -#define MARKLINNET_CLIENT_H_ +#ifndef R2C2_NET_CLIENT_H_ +#define R2C2_NET_CLIENT_H_ #include #include -#include "libmarklin/catalogue.h" +#include "libr2c2/catalogue.h" #include "packets.h" #include "protocol.h" #include "train.h" -namespace Marklin { +namespace R2C2 { -class Client: public Msp::Net::PacketReceiver, - Msp::Net::PacketReceiver, +class Client: Msp::Net::PacketReceiver, + Msp::Net::PacketReceiver, + Msp::Net::PacketReceiver, Msp::Net::PacketReceiver, - Msp::Net::PacketReceiver + Msp::Net::PacketReceiver, + Msp::Net::PacketReceiver, + Msp::Net::PacketReceiver, + Msp::Net::PacketReceiver, + Msp::Net::PacketReceiver { public: + sigc::signal signal_power_changed; + sigc::signal signal_halt_changed; + sigc::signal signal_emergency; sigc::signal signal_train_added; + sigc::signal signal_error; private: const Catalogue &catalogue; @@ -31,6 +33,9 @@ private: Msp::Net::StreamSocket *socket; Msp::Net::Communicator *comm; Msp::IO::EventDispatcher *event_disp; + bool power; + bool halt; + std::list routes; std::map trains; public: @@ -45,15 +50,24 @@ public: { if(comm) comm->send(pkt); } const Catalogue &get_catalogue() const { return catalogue; } - NetTrain &get_train(unsigned); + const std::list &get_routes() const { return routes; } + void set_power(bool); + void set_halt(bool); + NetTrain &get_train(unsigned) const; + const std::map &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 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 +} // namespace R2C2 #endif