58 lines
1.8 KiB
C++
58 lines
1.8 KiB
C++
/*
|
|
* ParamCompareInitializer.cpp
|
|
*
|
|
* Created on: 23 ÿíâ. 2022 ã.
|
|
* Author: sozonov
|
|
*/
|
|
|
|
|
|
#include "ParamCompare.hh"
|
|
#include "../../systemic/MemberFuntion.hpp"
|
|
|
|
#include "../../systemic/CustomParameters.hpp"
|
|
|
|
#include "../../systemic/CompareParams.hh"
|
|
|
|
#include <cstring>
|
|
|
|
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<char *, std::size_t> setting_data_first = platform_string_1.get();
|
|
std::pair<char *, std::size_t> setting_data_second = platform_string_2.get();
|
|
|
|
|
|
typedef systemic::CompareParams CompareParams;
|
|
|
|
CompareParams * compare_params = memories::instance_object<CompareParams>( 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<CompareAction>( env.static_setup_ma, *compare_params );
|
|
|
|
env.rholder.share<Action>( *compare_action, links.compare );
|
|
}
|
|
|
|
env.statuses.create(links.equal, compare_params->state() );
|
|
}
|
|
|
|
}
|
|
|