/* * StatusTrigger.cpp * * Created on: 4 авг. 2020 г. * Author: LeonidTitov */ #include "StatusTrigger.hh" #include "../../schematic/ResetSetActionTrigger.hh" #include "../../systemic/FunctorLazyFast.hpp" void application::schematic::StatusTrigger::build( Environment & env ) { typedef ::schematic::ResetSetActionTrigger RSTirgger; RSTirgger * trigger = memories::instance_object( env.static_object_ma, config.initial_value ); typedef systemic::detail::FunctorLazyFast TriggerAction; typedef systemic::detail::FunctorLazyFast TriggerAction; TriggerAction::Function set_f = &RSTirgger::set; TriggerAction::Function reset_f = &RSTirgger::reset; TriggerAction * set = memories::instance_object( env.static_object_ma, *trigger, set_f ); TriggerAction * reset = memories::instance_object( env.static_object_ma, *trigger, reset_f ); typedef systemic::IFunctor Action; env.rholder.share(*set, links.set ); env.rholder.share(*reset, links.reset ); env.statuses.create( links.trigger, trigger->trigger() ); } application::schematic::StatusTrigger::StatusTrigger( const Links & links, const Setting & config ) : links(links), config(config) {}