solve problem with adc_func_traits
add and use concept adc_is_callable rewrite value holder and device attribute classes with new constructor's arguments resolution scheme
This commit is contained in:
@@ -32,13 +32,15 @@ TEST_CASE("[ADC DEVICE ATTRIBUTE]")
|
||||
|
||||
using attr_t = AdcDeviceAttribute<std::string_view>;
|
||||
|
||||
// attr_t attr(AdcValueHolder::_defaultTrivialConvTypes, "ATTR_A", attr_t::ReadWrite, vv::getter, vv::setter,
|
||||
// vv::validator);
|
||||
attr_t attr("ATTR_A", vv::getter, vv::setter, vv::validator, AdcValueHolder::_defaultTrivialConvTypes);
|
||||
attr_t attr("ATTR_A", AdcValueHolder::_defaultTrivialConvTypes, vv::getter, vv::setter, vv::validator);
|
||||
|
||||
attr = 10.7;
|
||||
av = attr;
|
||||
|
||||
std::cout << "ATTR = " << av << "\n";
|
||||
// std::cout << "ATTR = " << (unsigned)attr << "\n";
|
||||
|
||||
attr_t aw("ATTR_WO", AdcValueHolder::_defaultTrivialConvTypes, vv::setter, vv::validator);
|
||||
|
||||
std::cout << "ACC_TYPE: " << aw.accessType() << "\n";
|
||||
}
|
||||
|
||||
@@ -46,7 +46,8 @@ TEST_CASE("[ADC VALUEHOLDER]")
|
||||
return true;
|
||||
};
|
||||
|
||||
adc::AdcValueHolder vht(getter, setter, adc::AdcValueHolder::_defaultTrivialConvTypes);
|
||||
// adc::AdcValueHolder vht(getter, setter, adc::AdcValueHolder::_defaultTrivialConvTypes);
|
||||
adc::AdcValueHolder vht(adc::AdcValueHolder::_defaultTrivialConvTypes, getter, setter);
|
||||
adc::AdcValueHolder vh(getter, setter, validator);
|
||||
// auto vah = adc::make_arith_valueholder(getter, setter);
|
||||
auto vah = adc::makeArithmValue<adc::AdcValueHolder>(getter, setter);
|
||||
@@ -178,7 +179,8 @@ TEST_CASE("[ADC VALUEHOLDER]")
|
||||
|
||||
|
||||
|
||||
adc::AdcSerializingValueHolder svh(getter, setter, validator, adc::AdcValueHolder::_defaultTrivialConvTypes);
|
||||
// adc::AdcSerializingValueHolder svh(getter, setter, validator, adc::AdcValueHolder::_defaultTrivialConvTypes);
|
||||
adc::AdcSerializingValueHolder svh(adc::AdcValueHolder::_defaultTrivialConvTypes, getter, setter, validator);
|
||||
|
||||
svh = 77.65412;
|
||||
|
||||
@@ -193,7 +195,8 @@ TEST_CASE("[ADC VALUEHOLDER]")
|
||||
// fl = vsh;
|
||||
// std::cout << "VSH: " << fl << "\n";
|
||||
|
||||
svh.resetValueHolder(gdbl, sdbl, vdbl, adc::AdcValueHolder::_defaultTrivialConvTypes);
|
||||
// svh.resetValueHolder(gdbl, sdbl, vdbl, adc::AdcValueHolder::_defaultTrivialConvTypes);
|
||||
svh.resetValueHolder(adc::AdcValueHolder::_defaultTrivialConvTypes, gdbl, sdbl, vdbl);
|
||||
// svh.resetValueHolder([]() { return dbl_val; }, [](const double& v) { dbl_val = v; },
|
||||
// [](const double&) { return true; }, adc::AdcValueHolder::_defaultTrivialConvTypes);
|
||||
std::cout << "SERIALIZED: " << svh.serialize() << "\n";
|
||||
|
||||
Reference in New Issue
Block a user