#define _LOGIC_CONTROL_H_
#include "iconector.h"
+#include <string>
namespace PlaQui {
namespace Model {
* implementar.
*/
virtual bool get_output() = 0;
+
+ /** Dice si la logica esta o no en operacion
+ *
+ * La logica de control puede no estar siendo utilizada, y eso
+ * se deduce si tiene alguien conectado a sus entradas (o sea, si
+ * tiene alguien a quien consultar por un estado logico).
+ * Si no hay nadie conectado, se contempla que no se esta utilizando
+ * y se debe utilizar en los casos que sea necesario para no recibir
+ * entradas falsas en los objetos controlados.
+ * \see Exclusa::update
+ */
+ bool is_operational() { return (in_list.begin() != in_list.end()); }
+
+ void get_state_as_xml(std::stringstream &out) {
+ out << "\t<logic name=\"" << name << "\">" << std::endl;
+ out << "\t\t<active>" << ((get_output())?"true":"false") << "</active>" << std::endl;
+ out << "\t</logic>" << std::endl;
+ }
+
+ void set_name(const std::string &_name) { name = _name; }
+ std::string get_name() { return name; }
+protected:
+ std::string name;
};
}