/* * StatusChangeAction.hh * * Created on: 10 июн. 2020 г. * Author: LeonidTitov */ #ifndef UMLIBRARY_APPLICATION_SCHEMATIC_STATUSCHANGEACTION_HH_ #define UMLIBRARY_APPLICATION_SCHEMATIC_STATUSCHANGEACTION_HH_ #include "../ISetupStep.hh" #include "../../systemic/IStatus.hh" #include "../../schematic/action/StatusChangeAction.hh" namespace application { namespace schematic { //!Модуль осуществляет заданное действие по событию перехода статуса в заданное состояние. struct StatusChangeAction : public ISetupStep { typedef systemic::IFunctor Action; Action * action = nullptr; systemic::IStatus * trigger = nullptr; bool input( Environment & env ); void build( Environment & env ); struct Links { Environment::StatusId trigger; //!<Контролируемый статус. Environment::Id action; //!<Совершаемое действие. }; //!Условия выполнения. struct Setting { bool expected_value; //!<Заданное состояние, при переходе в которое необходимо осуществить действие. }; const Links & links; const Setting & setting; const configuration::ProcessConfig & params; StatusChangeAction( const Links & links, const Setting & setting, const configuration::ProcessConfig & params ) : links(links), setting(setting), params(params) {} }; }} #endif /* UMLIBRARY_APPLICATION_SCHEMATIC_STATUSCHANGEACTION_HH_ */