X-Git-Url: https://git.llucax.com/z.facultad/75.42/plaqui.git/blobdiff_plain/6e0194f46ac77c18bfeabf84ef94a32f23e41073..a359eb714e150b2b59856d0056b9880aaaedd128:/Server/include/plaqui/server/controlclient.h?ds=inline diff --git a/Server/include/plaqui/server/controlclient.h b/Server/include/plaqui/server/controlclient.h index 3b61edc..669fba4 100644 --- a/Server/include/plaqui/server/controlclient.h +++ b/Server/include/plaqui/server/controlclient.h @@ -28,18 +28,49 @@ #ifndef PLAQUI_CONTROLCLIENT_H #define PLAQUI_CONTROLCLIENT_H +#include "plaqui/server/command.h" #include "plaqui/server/connection.h" #include -namespace Plaqui { +namespace PlaQui { + +namespace Server { /// Conexión para enviar comandos de control a una planta. class ControlClient: public Connection { + // Tipos. + + public: + + /// Tipo de señal para indicar que se conectó. + typedef SigC::Signal0 SignalConnected; + + /// Tipo de señal para indicar que se recibió una respuesta OK. + typedef SigC::Signal1 SignalOKReceived; + + /// Tipo de señal para indicar que se recibió un error. + typedef SigC::Signal1 SignalErrorReceived; + + // Atributos. + + protected: + + /// Señal para indicar que se conectó. + SignalConnected connected; + + /// Señal para indicar que se recibió una respuesta OK. + SignalOKReceived ok_received; + + /// Señal para indicar que se recibió un error. + SignalErrorReceived error_received; + + // Métodos. + private: /** - * Atiende la conexión. + * Realiza la conexión al servidor. */ virtual void real_run(void); @@ -48,7 +79,7 @@ namespace Plaqui { /** * Destructor. */ - virtual ~ControlClient(void) {} + virtual ~ControlClient(void); /** * Constructor. @@ -57,10 +88,35 @@ namespace Plaqui { * control. * \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); + + /** + * Envía un comando al servidor. + * + * \param command Comando a enviar. + */ + void send(const Command& command); + + /** + * Obtiene la señal para indicar que se conectó. + */ + SignalConnected& signal_connected(void); + + /** + * 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); }; } +} + #endif // PLAQUI_CONTROLCLIENT_H