X-Git-Url: https://git.llucax.com/z.facultad/75.42/plaqui.git/blobdiff_plain/00cffd5f7c35a915c09d55e6292775e9e01bdeec..bed1e8f7b596cf1aa73c25b8b39dcffe145fa018:/Server/include/plaqui/server/receiver.h diff --git a/Server/include/plaqui/server/receiver.h b/Server/include/plaqui/server/receiver.h index de481f6..ddf4fd3 100644 --- a/Server/include/plaqui/server/receiver.h +++ b/Server/include/plaqui/server/receiver.h @@ -28,8 +28,9 @@ #ifndef PLAQUI_RECEIVER_H #define PLAQUI_RECEIVER_H -#include "plaqui/server/serverconnection.h" +#include "plaqui/server/connection.h" #include +#include #include namespace PlaQui { @@ -37,14 +38,44 @@ namespace PlaQui { namespace Server { /// Conexión para recibir el estado de una planta. - class Receiver: public ServerConnection { + 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 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); + virtual void real_run(void) throw(); public: @@ -59,7 +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. */ - Receiver(int port = 7528, std::string host = "localhost"); + Receiver(const Connection::Port& port = 7528, + const std::string& host = "localhost") throw(sockerr); + + /** + * Obtiene la señal que avisa cuando se recibió un cuadro. + */ + SignalFrameReceived& signal_frame_received(void); };