X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fnetwork%2Fclient.h;h=02931e553d69a9efc1a8afed0d4714da924654f2;hb=7b4155fa0581d7c5fe198e4fb1dea61fa0846eec;hp=ce8dcb66fc15cdb681157b57d3b5e50b968741fc;hpb=010d8321e982d1684fcbff5bf6fc2bdec7cb7bae;p=r2c2.git diff --git a/source/network/client.h b/source/network/client.h index ce8dcb6..02931e5 100644 --- a/source/network/client.h +++ b/source/network/client.h @@ -1,40 +1,45 @@ -/* $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; + Catalogue &catalogue; Protocol proto; Msp::Net::StreamSocket *socket; Msp::Net::Communicator *comm; Msp::IO::EventDispatcher *event_disp; + bool power; + bool halt; + std::list routes; std::map trains; public: - Client(const Catalogue &); + Client(Catalogue &); ~Client(); void use_event_dispatcher(Msp::IO::EventDispatcher &); @@ -44,16 +49,25 @@ public: void send(const P &pkt) { if(comm) comm->send(pkt); } - const Catalogue &get_catalogue() const { return catalogue; } - NetTrain &get_train(unsigned); + Catalogue &get_catalogue() const { return catalogue; } + 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