/// Lista de conexiones de control.
typedef std::list<Transmitter*> TransmitterList;
- public:
-
- /// Tipo de señal para indicar que se actualizó la planta.
- //typedef SigC::Signal0<void> SignalUpdated;
-
// Atributos.
/// 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.
/**
* 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);
*
* \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.
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.
+ */
+ bool 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;
};