/* * ActionStatusLogic.cpp * * Created on: 20 мая 2020 г. * Author: LeonidTitov */ #include "ActionStatusLogic.hh" #include "../../schematic/action/StatusGetAction.hh" bool application::schematic::ActionStatusAnd::input( Environment & env ) { return grab( a, env.rholder.getShared( links.a ) ) and grab( b, env.rholder.getShared( links.b ) ); } void application::schematic::ActionStatusAnd::build( Environment & env ) { std::logical_and logical_and; Logic * logic = memories::instance_object( env.static_setup_ma, logical_and, *a, *b ); env.rholder.share( *logic, links.logic_and ); } bool application::schematic::CheckCondition::input( Environment & env ) { return grab( action, env.rholder.getShared( links.action ) ) and ( condition = env.statuses.get( links.condition ) ); } void application::schematic::CheckCondition::build( Environment & env ) { typedef ::schematic::functor::StatusGetAction CheckStatusAction; CheckStatusAction * check_action = memories::instance_object(env.static_object_ma, *condition, *action ); env.rholder.share( *check_action, links.check ); }