#define PLAQUI_PLANT_H
#include "plaqui/server/runnable.h"
+#include "plaqui/server/transmitter.h"
+#include "simulator.h"
#include <sigc++/signal.h>
namespace PlaQui {
// Tipos.
+ private:
+
+ /// 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;
+ //typedef SigC::Signal0<void> 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.
/**
* 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);
};