X-Git-Url: https://git.llucax.com/z.facultad/75.42/plaqui.git/blobdiff_plain/6bffb655ac989fe4f115763270f84175bf24e4bb..913bfb3f1238e29dfcc564fd1d4c836dbd412227:/Server/include/plaqui/server/controlclient.h diff --git a/Server/include/plaqui/server/controlclient.h b/Server/include/plaqui/server/controlclient.h index 6eabc85..2cc26ad 100644 --- a/Server/include/plaqui/server/controlclient.h +++ b/Server/include/plaqui/server/controlclient.h @@ -28,7 +28,9 @@ #ifndef PLAQUI_CONTROLCLIENT_H #define PLAQUI_CONTROLCLIENT_H +#include "plaqui/server/command.h" #include "plaqui/server/connection.h" +#include "plaqui/server/receiver.h" // FIXME TEMPRORAL #include namespace PlaQui { @@ -38,16 +40,41 @@ namespace Server { /// Conexión para enviar comandos de control a una planta. class ControlClient: public Connection { - // Tipos. + ///////////////////////////////////////////////////////////////////// + /// \name Señales + //@{ public: /// Tipo de señal para indicar que se recibió una respuesta OK. - typedef SigC::signal0 SignalOKReceived; + typedef SigC::Signal1 SignalOKReceived; /// Tipo de señal para indicar que se recibió un error. - typedef SigC::signal0 SignalErrorReceived; + typedef SigC::Signal2 + SignalErrorReceived; + /// Tipo de señal para indicar que se recibió un frame. FIXME + typedef Receiver::SignalFrameReceived SignalFrameReceived; + + /** + * Obtiene la señal para indicar que se recibió una respuesta OK. + */ + SignalOKReceived& signal_ok_received(void); + + /** + * Obtiene la señal para indicar que se recibió un error. + */ + SignalErrorReceived& signal_error_received(void); + + /** + * Obtiene la señal que avisa cuando se recibió un cuadro. + * \todo FIXME Temporal. + */ + SignalFrameReceived& signal_frame_received(void); + + //@} + + ///////////////////////////////////////////////////////////////////// // Atributos. protected: @@ -58,6 +85,10 @@ namespace Server { /// Señal para indicar que se recibió un error. SignalErrorReceived error_received; + /// Receptor del estado de la planta FIXME Temporal. + Receiver* receiver; + + ///////////////////////////////////////////////////////////////////// // Métodos. private: @@ -65,7 +96,7 @@ namespace Server { /** * Realiza la conexión al servidor. */ - virtual void real_run(void); + virtual void real_run(void) throw(); public: @@ -77,28 +108,31 @@ namespace Server { /** * Constructor. * - * \param host Host al cual conectarse para enviar comandos de + * \param _host Host al cual conectarse para enviar comandos de * control. - * \param port Puerto al cual conectarse. + * \param _port Puerto al cual conectarse. */ - ControlClient(std::string host = "localhost", int port = 7522); + ControlClient(const std::string& _host = "localhost", + const Connection::Port& _port = 7522) throw(sockerr); /** - * Obtiene la señal para indicar que se recibió una respuesta OK. + * Envía un comando al servidor. + * + * \param command Comando a enviar. */ - SignalOKReceived& signal_ok_received(void); + void send(const Command& command); /** - * Obtiene la señal para indicar que se recibió un error. + * Envia una señal de error si hay un error en la recepción. + * \todo FIXME Temporal. */ - SignalErrorReceived& signal_error_received(void); + void on_receiver_error(const Error& code, const std::string& desc); /** - * Envía un comando al servidor. - * - * \param command Comando a enviar. + * Limpia el puntero del receptor cuando termina. + * \todo FIXME Temporal. */ - void send(const Command& command); + void on_receiver_finished(void); };