]> git.llucax.com Git - z.facultad/75.42/plaqui.git/blob - Model/include/logiccontrol.h
- Se agrega el método HTTPRequest::method_str() para obtener el método como un
[z.facultad/75.42/plaqui.git] / Model / include / logiccontrol.h
1
2 #ifndef _LOGIC_CONTROL_H_
3 #define _LOGIC_CONTROL_H_
4
5 #include "iconector.h"
6
7 namespace PlaQui {
8 namespace Model {
9
10 /** Modelo de control lógico para automatización
11  *
12  */
13 class LogicControl:public IConector {
14 public:
15         /** Constructor
16          *
17          *  \param ins Cantidad de entradas
18          *  \param outs Cantidad de salidas
19          */
20         LogicControl(int ins, int outs):IConector(ins, outs) {}
21         /// Destructor
22         virtual ~LogicControl() {}
23
24         /** Retorna el estado actual.
25          *
26          *  Esta función retorna un valor booleano resultado
27          *  de aplicar la operación lógica que cada hijo decida
28          *  implementar.
29          */
30         virtual bool get_output() = 0;
31
32         /** Dice si la logica esta o no en operacion
33          *
34          *  La logica de control puede no estar siendo utilizada, y eso
35          *  se deduce si tiene alguien conectado a sus entradas.
36          *  Si no hay nadie conectado, se contempla que no se esta utilizando
37          *  y se debe utilizar en los casos que sea necesario para no recibir
38          *  entradas falsas en los objetos controlados.
39          *  \see Exclusa::update
40          */
41         bool is_operational() { return (in_list.begin() != in_list.end()); }
42 };
43
44 }
45 }
46 #endif // _LOGIC_CONTROL_H_
47