/* * DiscreteSwitch.h * * Created on: 21 мая 2021 г. * Author: sozonov */ #ifndef UMLIBRARY_SCHEMATIC_DISCRETESWITCH_HH_ #define UMLIBRARY_SCHEMATIC_DISCRETESWITCH_H_ #include "../systemic/IFunctor.hh" //!Класс вызова функции при наличии разрешающего статуса. class DiscreteSwitchLogics { public: bool enable; //!<Значение разрешающего статуса. DiscreteSwitchLogics(){} //!Входной сигнал. При выставленном разрешающем статусе вызов выходного сигнала. void inputSignal(){if(enable) outputSignal();} //!Выходной сигнал. virtual void outputSignal(); }; namespace application { namespace schematic { class DiscreteSwitchInterface : public systemic::IFunctor{ public: systemic::IFunctor & output; //!<Колбэк выходного сигнала. systemic::IStatus & enable; DiscreteSwitchInterface(systemic::IFunctor & _out, systemic::IStatus &_enable):output(_out), enable(_enable){} virtual void operator()() { if(enable) output(); } }; }} #endif /* UMLIBRARY_SCHEMATIC_DISCRETESWITCH_HH_ */