X-Git-Url: https://git.llucax.com/z.facultad/75.42/plaqui.git/blobdiff_plain/a0481d50f6da9cac5efd3502c3657b3fc461ec0d..667418327423ba116d24751926a95a2f1235849c:/Server/include/plaqui/server/plant.h?ds=sidebyside diff --git a/Server/include/plaqui/server/plant.h b/Server/include/plaqui/server/plant.h index 92f6afd..7709063 100644 --- a/Server/include/plaqui/server/plant.h +++ b/Server/include/plaqui/server/plant.h @@ -29,6 +29,8 @@ #define PLAQUI_PLANT_H #include "plaqui/server/runnable.h" +#include "plaqui/server/transmitter.h" +#include "simulator.h" #include namespace PlaQui { @@ -41,18 +43,35 @@ namespace Server { // Tipos. + private: + + /// Lista de conexiones de control. + typedef std::list TransmitterList; + public: /// Tipo de señal para indicar que se actualizó la planta. - typedef SigC::Signal0 SignalUpdated; + //typedef SigC::Signal0 SignalUpdated; // Atributos. private: + /// Transmisiones del estado de las plantas. + TransmitterList transmissions; + + /// Mutex para las transmisiones. + Glib::Mutex transmissions_mutex; + + /// Simulador usado para calcular el estado de la planta. + Model::Simulator simulator; + /// Señal para indicar que se actualizó la planta. - SignalUpdated updated; + //SignalUpdated updated; + + /// Nombre de la planta. + //std::string name; // Métodos. @@ -74,14 +93,31 @@ namespace Server { /** * Constructor desde un archivo. * + * \param name Nombre de la planta. * \param filename Nombre del archivo de donde obtener la planta. */ Plant(const std::string& filename); + /** + * Comienza una transmisión del estado de la planta. + * + * \return true si comenzó la transmisión, false si hubo problemas. + */ + bool transmission_start(const string& host, + const Connection::Port& port); + + /** + * Comienza una transmisión del estado de la planta. + * + * \return true si detuvo la transmisión, false si no existía. + */ + bool transmission_stop(const string& host, + const Connection::Port& port); + /** * Obtiene la señal para indicar que se actualizó la planta. */ - SignalUpdated& signal_updated(void); + //SignalUpdated& signal_updated(void); };