]> git.llucax.com Git - z.facultad/75.42/plaqui.git/blobdiff - Server/include/plaqui/server/receiver.h
Capturo las seniales ANSI C SIGINT, SIGTERM y SIGQUIT para que el server salga
[z.facultad/75.42/plaqui.git] / Server / include / plaqui / server / receiver.h
index 4bfda778309d51175f145fe04487b0fa990c6e9f..ddf4fd3810021335d7b88d6d036f0ef5eeafa845 100644 (file)
@@ -30,6 +30,7 @@
 
 #include "plaqui/server/connection.h"
 #include <socket++/sockinet.h>
 
 #include "plaqui/server/connection.h"
 #include <socket++/sockinet.h>
+#include <sigc++/signal.h>
 #include <string>
 
 namespace PlaQui {
 #include <string>
 
 namespace PlaQui {
@@ -39,12 +40,49 @@ namespace Server {
        /// Conexión para recibir el estado de una planta.
        class Receiver: public Connection {
 
        /// Conexión para recibir el estado de una planta.
        class Receiver: public Connection {
 
+               /////////////////////////////////////////////////////////////////////
+               // Constantes.
+
+               private:
+
+                       /// Marca de comienzo de frame.
+                       static const std::string FRAME_BEGIN;
+
+                       /// Marca de fin de frame.
+                       static const std::string FRAME_END;
+
+               /////////////////////////////////////////////////////////////////////
+               // Tipos.
+
+               public:
+
+                       /// Tipo de señal para indicar que se recibió un cuadro.
+                       typedef SigC::Signal1<void, const std::string&> SignalFrameReceived;
+
+
+               // Atributos.
+
+               private:
+
+                       /// Señal que indica que se recibió un cuadro.
+                       SignalFrameReceived frame_received;
+
+               /////////////////////////////////////////////////////////////////////
+               // Métodos.
+
+               private:
+
+                       /**
+                        * Recibe la transmisión.
+                        */
+                       virtual void real_run(void) throw();
+
                public:
 
                        /**
                         * Destructor.
                         */
                public:
 
                        /**
                         * Destructor.
                         */
-                       virtual ~Receiver(void) {}
+                       virtual ~Receiver(void);
 
                        /**
                         * Constructor.
 
                        /**
                         * Constructor.
@@ -52,12 +90,13 @@ namespace Server {
                         * \param port Puerto por el cual recibir estado de la planta.
                         * \param host Host del cual recibir el estado de la planta.
                         */
                         * \param port Puerto por el cual recibir estado de la planta.
                         * \param host Host del cual recibir el estado de la planta.
                         */
-                       Receiver(int port = 7528, std::string host = "localhost");
+                       Receiver(const Connection::Port& port = 7528,
+                                       const std::string& host = "localhost") throw(sockerr);
 
                        /**
 
                        /**
-                        * Recibe la transmisión.
+                        * Obtiene la señal que avisa cuando se recibió un cuadro.
                         */
                         */
-                       virtual void run(void);
+                       SignalFrameReceived& signal_frame_received(void);
 
        };
 
 
        };