#include "plaqui/server/command.h"
#include "plaqui/server/connection.h"
-#include "plaqui/server/receiver.h" // TODO TEMPRORAL
+#include "plaqui/server/receiver.h" // FIXME TEMPRORAL
#include <string>
namespace PlaQui {
/// 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 conectó.
- typedef SigC::Signal0<void> SignalConnected;
-
/// Tipo de señal para indicar que se recibió una respuesta OK.
typedef SigC::Signal1<void, const std::string&> SignalOKReceived;
/// Tipo de señal para indicar que se recibió un error.
- typedef SigC::Signal1<void, unsigned> SignalErrorReceived;
+ typedef SigC::Signal2<void, unsigned, const std::string&>
+ 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:
- /// 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;
- /// Receptor del estado de la planta TODO Temporal.
- Receiver receiver;
+ /// Receptor del estado de la planta FIXME Temporal.
+ Receiver* receiver;
+ /////////////////////////////////////////////////////////////////////
// Métodos.
private:
/**
* Realiza la conexión al servidor.
*/
- virtual void real_run(void);
+ virtual void real_run(void) throw();
public:
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.
+ * 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);
/**
- * Obtiene la señal que avisa cuando se recibió un cuadro.
+ * Limpia el puntero del receptor cuando termina.
+ * \todo FIXME Temporal.
*/
- Receiver::SignalFrameReceived& signal_frame_received(void);
+ void on_receiver_finished(void);
};