X-Git-Url: https://git.llucax.com/z.facultad/75.42/plaqui.git/blobdiff_plain/a0481d50f6da9cac5efd3502c3657b3fc461ec0d..63715b9ec8f3b126b4e495a4c4485cd68fd6973a:/Server/include/plaqui/server/plant.h diff --git a/Server/include/plaqui/server/plant.h b/Server/include/plaqui/server/plant.h index 92f6afd..c6e64a6 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,27 @@ namespace Server { // Tipos. - public: + private: - /// Tipo de señal para indicar que se actualizó la planta. - typedef SigC::Signal0 SignalUpdated; + /// Lista de conexiones de control. + typedef std::list TransmitterList; // Atributos. private: - /// Señal para indicar que se actualizó la planta. - SignalUpdated updated; + /// 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; + + /// Nombre del archivo donde esta el XML de la planta. + std::string filename; // Métodos. @@ -74,14 +85,30 @@ 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); /** - * Obtiene la señal para indicar que se actualizó la planta. + * Comienza una transmisión del estado de la planta. + * + * \return true si comenzó la transmisión, false si hubo problemas. + */ + bool transmission_start(string& host, 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 el XML de la planta. */ - SignalUpdated& signal_updated(void); + const std::string get_xml(void) const; };