]> git.llucax.com Git - z.facultad/75.42/plaqui.git/blobdiff - Model/include/logiccontrol.h
Mini bugfix.
[z.facultad/75.42/plaqui.git] / Model / include / logiccontrol.h
index 758f238c0262d02dd14eb93b049d5839fa5e097d..e3c252e4aa1023c0a0619f03b205d40145c3e920 100644 (file)
@@ -3,6 +3,7 @@
 #define _LOGIC_CONTROL_H_
 
 #include "iconector.h"
+#include <string>
 
 namespace PlaQui {
 namespace Model {
@@ -28,6 +29,29 @@ public:
         *  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;
 };
 
 }