template<class Caller, typename InputType = int>
class uniset::TriggerOR< Caller, InputType >
Триггер "ИЛИ", со множеством входов. Логика включения следующая:
- "1" на любом входе даёт на выходе "1"
- "0" на ВСЕХ входах даёт на выходе "0"
В конструкторе указывается функция, которая будет вызываться при ИЗМЕНЕНИИ состояния выхода.
- Предупреждения
- Нет блокирования совместного доступа(не рассчитан на работу в многопоточной среде).
- Пример использования
#include "TriggerOR.h"
class MyClass
{
public:
MyClass(){};
~MyClass(){};
void out( bool newstate){ cout << "OR out state="<< newstate <<endl;}
...
};
...
MyClass rec;
TriggerOR<MyClass> tr(&rec, &MyClass::out);
tr.add(1,true);
tr.add(2,false);
tr.add(3,false);
tr.add(4,false);
...
tr.commit(1,false);