X-Git-Url: https://git.llucax.com/z.facultad/75.42/plaqui.git/blobdiff_plain/a0481d50f6da9cac5efd3502c3657b3fc461ec0d..d664a4c16bb56138b53e8d6dba92e199bd3ea6c7:/Server/include/plaqui/server/plant.h?ds=inline 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); };