/* * ParamCompareInitializer.cpp * * Created on: 23 ÿíâ. 2022 ã. * Author: sozonov */ #include "ParamCompare.hh" #include "../../systemic/MemberFuntion.hpp" #include "../../systemic/CustomParameters.hpp" #include "../../systemic/CompareParams.hh" #include application::basic::ParamCompare::ParamCompare( const Links & links ) : links(links){} bool application::basic::ParamCompare::input( Environment & env ) { return systemic::getStringView( platform_string_1, env.cparams, const_prov, links.first_param ) and systemic::getStringView( platform_string_2, env.cparams, const_prov, links.second_param ); } void application::basic::ParamCompare::build( Environment & env ) { if(links.equal) { std::pair setting_data_first = platform_string_1.get(); std::pair setting_data_second = platform_string_2.get(); typedef systemic::CompareParams CompareParams; CompareParams * compare_params = memories::instance_object( env.static_data_ma, setting_data_first, setting_data_second ); if(links.compare) { typedef systemic::detail::MemberFuntion< CompareParams, void, &CompareParams::compare> CompareAction; CompareAction * compare_action = memories::instance_object( env.static_setup_ma, *compare_params ); env.rholder.share( *compare_action, links.compare ); } env.statuses.create(links.equal, compare_params->state() ); } }