changes according to new naming scheme of the snippets-library
new naming scheme (delete "adclib_" prefixes)
This commit is contained in:
@@ -103,29 +103,29 @@ inline std::error_code make_error_code(AdcDeviceErrorCode ec)
|
||||
|
||||
|
||||
template <typename T>
|
||||
concept adclib_command_exec_t = snplib::snplib_callable_c<T> && (snplib::snplib_func_traits_t<T>::arity == 0) &&
|
||||
std::same_as<adc_error_t, typename snplib::snplib_func_traits_t<T>::ret_t>;
|
||||
concept device_command_exec_t = snplib::callable_c<T> && (snplib::func_traits_t<T>::arity == 0) &&
|
||||
std::same_as<adc_error_t, typename snplib::func_traits_t<T>::ret_t>;
|
||||
|
||||
template <typename T>
|
||||
concept adclib_attr_getter_c = std::same_as<T, std::nullptr_t> || requires(T t) {
|
||||
concept device_attr_getter_c = std::same_as<T, std::nullptr_t> || requires(T t) {
|
||||
{ t() } -> adc_result_c;
|
||||
};
|
||||
|
||||
template <typename T>
|
||||
concept adclib_attr_setter_c =
|
||||
std::same_as<T, std::nullptr_t> || (snplib::snplib_callable_c<T> && (snplib::snplib_func_traits_t<T>::arity >= 1) &&
|
||||
std::same_as<adc_error_t, typename snplib::snplib_func_traits_t<T>::ret_t>);
|
||||
concept device_attr_setter_c =
|
||||
std::same_as<T, std::nullptr_t> || (snplib::callable_c<T> && (snplib::func_traits_t<T>::arity >= 1) &&
|
||||
std::same_as<adc_error_t, typename snplib::func_traits_t<T>::ret_t>);
|
||||
|
||||
|
||||
// deduce value type from getter and setter
|
||||
template <adclib_attr_getter_c GT, adclib_attr_setter_c ST>
|
||||
using adclib_attr_value_deduced_t = std::conditional_t<
|
||||
std::is_null_pointer_v<GT>,
|
||||
std::conditional_t<std::is_null_pointer_v<ST>, void, std::remove_cvref_t<snplib::snplib_func_arg1_t<ST>>>,
|
||||
std::conditional_t<std::is_null_pointer_v<ST>, void, std::remove_cvref_t<snplib::func_arg1_t<ST>>>,
|
||||
typename std::invoke_result_t<GT>::value_type>;
|
||||
|
||||
|
||||
template <adclib_attr_getter_c GT, adclib_attr_setter_c ST>
|
||||
template <adclib_attr_getter_c GT, device_attr_setter_c ST>
|
||||
struct adclib_is_deduced_void_t {
|
||||
static constexpr bool value = std::is_void_v<adclib_attr_value_deduced_t<GT, ST>>;
|
||||
};
|
||||
@@ -134,22 +134,20 @@ struct adclib_is_deduced_void_t {
|
||||
// "from": adc_result_t<UT> func(const adc_result_t<VT>&)
|
||||
// "to": adc_result_t<VT> func(const adc_result_t<UT>&)
|
||||
template <typename T, typename VT>
|
||||
concept adclib_attr_conv_from_func_c =
|
||||
concept device_attr_conv_from_func_c =
|
||||
std::same_as<T, std::nullptr_t> ||
|
||||
(std::invocable<T, const adc_result_t<VT>&> && !std::is_void_v<std::invoke_result_t<T, const adc_result_t<VT>&>>);
|
||||
(std::invocable<T, const ret_result_t<VT>&> && !std::is_void_v<std::invoke_result_t<T, const ret_result_t<VT>&>>);
|
||||
|
||||
template <typename T, typename VT>
|
||||
concept adclib_attr_conv_to_func_c = std::same_as<T, std::nullptr_t> ||
|
||||
(snplib::snplib_callable_c<T> && (snplib::snplib_func_traits_t<T>::arity == 1) &&
|
||||
std::same_as<adc_result_t<VT>, typename snplib::snplib_func_traits_t<T>::ret_t>);
|
||||
concept device_attr_conv_to_func_c =
|
||||
std::same_as<T, std::nullptr_t> || (snplib::callable_c<T> && (snplib::func_traits_t<T>::arity == 1) &&
|
||||
std::same_as<ret_result_t<VT>, typename snplib::func_traits_t<T>::ret_t>);
|
||||
|
||||
template <typename VT, adclib_attr_conv_from_func_c<VT> CONV_FROM_T, adclib_attr_conv_to_func_c<VT> CONV_TO_T>
|
||||
using adclib_attr_user_deduced_t =
|
||||
std::conditional_t<std::is_null_pointer_v<CONV_FROM_T>,
|
||||
std::conditional_t<std::is_null_pointer_v<CONV_TO_T>,
|
||||
void,
|
||||
std::remove_cvref_t<snplib::snplib_func_arg1_t<CONV_TO_T>>>,
|
||||
typename snplib::snplib_func_traits_t<CONV_FROM_T>::ret_t>;
|
||||
template <typename VT, device_attr_conv_from_func_c<VT> CONV_FROM_T, device_attr_conv_to_func_c<VT> CONV_TO_T>
|
||||
using device_attr_user_deduced_t = std::conditional_t<
|
||||
std::is_null_pointer_v<CONV_FROM_T>,
|
||||
std::conditional_t<std::is_null_pointer_v<CONV_TO_T>, void, std::remove_cvref_t<snplib::func_arg1_t<CONV_TO_T>>>,
|
||||
typename snplib::func_traits_t<CONV_FROM_T>::ret_t>;
|
||||
|
||||
|
||||
|
||||
@@ -161,7 +159,7 @@ class AdcGenericDevice
|
||||
protected:
|
||||
template <typename VT>
|
||||
struct attr_t {
|
||||
std::function<adc_result_t<VT>()> getter{};
|
||||
std::function<ret_result_t<VT>()> getter{};
|
||||
std::function<adc_error_t(VT const&)> setter{};
|
||||
|
||||
// template <typename UT>
|
||||
@@ -195,7 +193,7 @@ protected:
|
||||
requires requires(VT v, UT u) { v = u; }
|
||||
operator attr_t<UT>() const
|
||||
{
|
||||
return attr_t<UT>{.getter = [this]() -> adc_result_t<UT> {
|
||||
return attr_t<UT>{.getter = [this]() -> ret_result_t<UT> {
|
||||
auto val = getter();
|
||||
if (val) {
|
||||
return static_cast<UT>(val.value());
|
||||
@@ -206,8 +204,8 @@ protected:
|
||||
.setter = [this](UT const& u) { return setter(static_cast<VT>(u)); }};
|
||||
}
|
||||
|
||||
adc_error_t serialize(snplib::snplib_output_char_range_c auto& output,
|
||||
snplib::snplib_serialization_params_c auto const& params)
|
||||
adc_error_t serialize(snplib::output_char_range_c auto& output,
|
||||
snplib::serialization_params_c auto const& params)
|
||||
{
|
||||
if (!getter) {
|
||||
return AdcDeviceErrorCode::ERROR_WO_ATTR;
|
||||
@@ -215,9 +213,9 @@ protected:
|
||||
|
||||
auto val = getter();
|
||||
if (val) {
|
||||
auto ret = snplib::snplib_serializer_t<VT>{}(output, val.value(), params);
|
||||
auto ret = snplib::serializer_t<VT>{}(output, val.value(), params);
|
||||
if (ret) {
|
||||
return snplib::snplib_deduced_error(ret, AdcDeviceErrorCode::ERROR_SERIALIZATION);
|
||||
return snplib::deduced_ret_error(ret, AdcDeviceErrorCode::ERROR_SERIALIZATION);
|
||||
}
|
||||
|
||||
return AdcDeviceErrorCode::ERROR_OK;
|
||||
@@ -226,17 +224,17 @@ protected:
|
||||
return val.error();
|
||||
}
|
||||
|
||||
adc_error_t deserialize(snplib::snplib_input_char_range_c auto const& input,
|
||||
snplib::snplib_serialization_params_c auto const& params)
|
||||
adc_error_t deserialize(snplib::input_char_range_c auto const& input,
|
||||
snplib::serialization_params_c auto const& params)
|
||||
{
|
||||
if (!setter) {
|
||||
return AdcDeviceErrorCode::ERROR_RO_ATTR;
|
||||
}
|
||||
|
||||
VT value; // WARNING: must be default-constructible!!!
|
||||
auto ret = snplib::snplib_deserializer_t<VT>{}(input, value, params);
|
||||
auto ret = snplib::deserializer_t<VT>{}(input, value, params);
|
||||
if (ret) {
|
||||
return snplib::snplib_deduced_error(ret, AdcDeviceErrorCode::ERROR_DESERIALIZATION);
|
||||
return snplib::deduced_ret_error(ret, AdcDeviceErrorCode::ERROR_DESERIALIZATION);
|
||||
}
|
||||
|
||||
return setter(value);
|
||||
@@ -248,7 +246,7 @@ protected:
|
||||
attr_proxy_t(AdcGenericDevice& dev, ATTR_ID_T id) : _dev(dev), _id(std::move(id)) {}
|
||||
|
||||
template <typename VT>
|
||||
operator adc_result_t<VT>() const
|
||||
operator ret_result_t<VT>() const
|
||||
{
|
||||
auto attr = _dev._attrs.template get<attr_t<VT>>(_id);
|
||||
if (attr) {
|
||||
@@ -329,13 +327,13 @@ public:
|
||||
return _devId;
|
||||
}
|
||||
|
||||
// template <snplib::snplib_callable_c ET>
|
||||
// template <snplib::callable_c ET>
|
||||
// void addCommand(CMD_ID_T id, ET&& exec_func)
|
||||
// {
|
||||
// _commands.emplace(std::move(id), std::forward<ET>(exec_func));
|
||||
// }
|
||||
|
||||
template <adclib_command_exec_t ET>
|
||||
template <device_command_exec_t ET>
|
||||
void addCommand(CMD_ID_T id, ET&& exec_func)
|
||||
{
|
||||
_commands.emplace(std::move(id), std::forward<ET>(exec_func));
|
||||
@@ -355,7 +353,7 @@ public:
|
||||
std::tuple<attr_t<VTs>...>{});
|
||||
}
|
||||
|
||||
template <adclib_attr_getter_c GT, adclib_attr_setter_c ST, typename... FuncTs>
|
||||
template <adclib_attr_getter_c GT, device_attr_setter_c ST, typename... FuncTs>
|
||||
requires(sizeof...(FuncTs) > 1)
|
||||
void addAttr(ATTR_ID_T id, GT&& getter, ST&& setter, FuncTs&&... cnv_pairs)
|
||||
{
|
||||
@@ -380,7 +378,7 @@ public:
|
||||
// 1, decltype(tp)>>...>,
|
||||
// "Getter and setter cannot be nullptr_t at the same time!");
|
||||
|
||||
auto from_cnv_func = []<size_t I, snplib::snplib_tuple_c TpT>(TpT const& func_tp) {
|
||||
auto from_cnv_func = []<size_t I, snplib::tuple_c TpT>(TpT const& func_tp) {
|
||||
using from_fn_t = std::decay_t<std::tuple_element_t<I, TpT>>;
|
||||
using to_fn_t = std::decay_t<std::tuple_element_t<I + 1, TpT>>;
|
||||
|
||||
@@ -388,7 +386,7 @@ public:
|
||||
|
||||
return [&func_tp](attr_t<v_t> const& attr) mutable -> attr_t<u_t> {
|
||||
return attr_t<u_t>{
|
||||
.getter = [&attr, &func_tp]() mutable -> adc_result_t<u_t> {
|
||||
.getter = [&attr, &func_tp]() mutable -> ret_result_t<u_t> {
|
||||
return std::forward<std::tuple_element_t<I, TpT>>(std::get<I>(func_tp))(attr.getter());
|
||||
},
|
||||
.setter = [&attr, &func_tp](u_t const& uv) mutable -> adc_error_t {
|
||||
@@ -402,7 +400,7 @@ public:
|
||||
}};
|
||||
};
|
||||
};
|
||||
// auto from_cnv_func = []<size_t I, snplib::snplib_tuple_c TpT>(TpT&& func_tp) {
|
||||
// auto from_cnv_func = []<size_t I, snplib::tuple_c TpT>(TpT&& func_tp) {
|
||||
// using tp_t = std::remove_cvref_t<TpT>;
|
||||
|
||||
// using from_fn_t = std::decay_t<std::tuple_element_t<I, tp_t>>;
|
||||
@@ -434,7 +432,7 @@ public:
|
||||
// };
|
||||
// };
|
||||
|
||||
auto to_cnv_func = [id, this]<size_t I, snplib::snplib_tuple_c TpT>(TpT const& func_tp) {
|
||||
auto to_cnv_func = [id, this]<size_t I, snplib::tuple_c TpT>(TpT const& func_tp) {
|
||||
using from_fn_t = std::decay_t<std::tuple_element_t<I, TpT>>;
|
||||
using to_fn_t = std::decay_t<std::tuple_element_t<I + 1, TpT>>;
|
||||
|
||||
@@ -481,7 +479,7 @@ public:
|
||||
|
||||
// function-like access to attributes
|
||||
template <typename VT>
|
||||
adc_result_t<VT> attr(ATTR_ID_T id)
|
||||
ret_result_t<VT> attr(ATTR_ID_T id)
|
||||
{
|
||||
return attr_proxy_t{*this, std::move(id)};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user