X-Git-Url: https://git.llucax.com/z.facultad/75.42/plaqui.git/blobdiff_plain/989d0da7e93d155dde399bf3047ab6b4af550bb6..e46a2c7e43af9156a434d9cf41c2beb5b25b36d1:/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 7709063..31aea96 100644 --- a/Server/include/plaqui/server/plant.h +++ b/Server/include/plaqui/server/plant.h @@ -48,11 +48,6 @@ namespace Server { /// 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; - // Atributos. @@ -67,11 +62,11 @@ namespace Server { /// Simulador usado para calcular el estado de la planta. Model::Simulator simulator; - /// Señal para indicar que se actualizó la planta. - //SignalUpdated updated; + /// Mutex para el simulador. + Glib::Mutex simulator_mutex; - /// Nombre de la planta. - //std::string name; + /// Nombre del archivo donde esta el XML de la planta. + std::string filename; // Métodos. @@ -93,7 +88,6 @@ 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); @@ -103,8 +97,7 @@ namespace Server { * * \return true si comenzó la transmisión, false si hubo problemas. */ - bool transmission_start(const string& host, - const Connection::Port& port); + bool transmission_start(string& host, Connection::Port& port); /** * Comienza una transmisión del estado de la planta. @@ -115,9 +108,30 @@ namespace Server { const Connection::Port& port); /** - * Obtiene la señal para indicar que se actualizó la planta. + * Borra una transmisión de la lista de transmisiones al finalizar. + * + * \param transmission Transmisión a eliminar. + */ + void on_transmission_finished(Transmitter* transmission); + + /** + * Abre (o cierra) un elemento de la planta. + * + * Sólo la bomba y la exclusa pueden ser abiertos y cerrados. + * + * \param element Nombre del elemento a abrir o cerrar. + * \param open true si se quiere abrir el elemento, false si se + * lo quiere cerrar. + * + * \return true si se abrió o cerró el elemento, false si no existía + * o si no era una bomba o exclusa. + */ + bool set_open(const std::string& element, bool open = true); + + /** + * Obtiene el XML de la planta. */ - //SignalUpdated& signal_updated(void); + const std::string get_xml(void) const; };