From 60dbba7a5ff2108f1eb285280c128af43c3308f5 Mon Sep 17 00:00:00 2001 From: "Timur A. Fatkhullin" Date: Fri, 7 Aug 2026 17:22:08 +0300 Subject: [PATCH] /// --- include/adclib/adclib_netmsg.h | 35 ++++++++++++++++++++++++++-------- 1 file changed, 27 insertions(+), 8 deletions(-) diff --git a/include/adclib/adclib_netmsg.h b/include/adclib/adclib_netmsg.h index 1583ef0..5f65537 100644 --- a/include/adclib/adclib_netmsg.h +++ b/include/adclib/adclib_netmsg.h @@ -50,6 +50,11 @@ public: return std::ranges::equal(this->_key, ADCLIB_NETMSG_KEYWORD_ACK); } + bool isERR() const + { + return std::ranges::equal(this->_key, ADCLIB_NETMSG_KEYWORD_ERR); + } + bool isCMD() const { return std::ranges::equal(this->_key, ADCLIB_NETMSG_KEYWORD_CMD); @@ -74,20 +79,34 @@ public: error_t createERR(error_t err) { - return this->setKey(ADCLIB_NETMSG_KEYWORD_ERR, err.value()); + return this->setKeyValue(ADCLIB_NETMSG_KEYWORD_ERR, err.value()); } - template - error_t createSET(ATTR_NAME_T&& attr_name, ValueT&& value) + template + requires(sizeof...(ArgTs) > 0) + error_t createSET(ATTR_NAME_T&& attr_name, ArgTs&&... args) { - return this->setKeyValue(ADCLIB_NETMSG_KEYWORD_SET, std::forward(attr_name), - std::forward(value)); + auto err = this->setKeyValue(ADCLIB_NETMSG_KEYWORD_SET, std::forward(attr_name)); + if (err) { + return err; + } + + return this->appendValue(std::forward(args)...); } - template - error_t createGET(ATTR_NAME_T&& attr_name) + template + error_t createGET(ATTR_NAME_T&& attr_name, ArgTs&&... args) { - return this->setKeyValue(ADCLIB_NETMSG_KEYWORD_GET, std::forward(attr_name)); + auto err = this->setKeyValue(ADCLIB_NETMSG_KEYWORD_GET, std::forward(attr_name)); + if (err) { + return err; + } + + if constexpr (sizeof...(ArgTs)) { + return this->appendValue(std::forward(args)...); + } + + return {}; } template