From 0affb0eaec692412b61f13869716c0b87e074dbd Mon Sep 17 00:00:00 2001 From: Pavel Kirienko Date: Mon, 23 Mar 2015 18:34:19 +0300 Subject: [PATCH] Convenience method IParamManager::isParamValueEmpty() --- libuavcan/include/uavcan/protocol/param_server.hpp | 13 +++++++++++-- libuavcan/src/protocol/uc_param_server.cpp | 12 ++---------- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/libuavcan/include/uavcan/protocol/param_server.hpp b/libuavcan/include/uavcan/protocol/param_server.hpp index 666db73b59..01fe7af545 100644 --- a/libuavcan/include/uavcan/protocol/param_server.hpp +++ b/libuavcan/include/uavcan/protocol/param_server.hpp @@ -64,6 +64,17 @@ public: * @return Negative if failed. */ virtual int eraseAllParams() = 0; + + /** + * Convenience method that can be used to check if a param value is empty. + */ + static bool isParamValueEmpty(const ParamValue& val) + { + return val.value_bool.empty() && + val.value_int.empty() && + val.value_float.empty() && + val.value_string.empty(); + } }; /** @@ -83,8 +94,6 @@ class UAVCAN_EXPORT ParamServer ServiceServer save_erase_srv_; IParamManager* manager_; - static bool isValueNonEmpty(const protocol::param::Value& value); - void handleGetSet(const protocol::param::GetSet::Request& request, protocol::param::GetSet::Response& response); void handleExecuteOpcode(const protocol::param::ExecuteOpcode::Request& request, diff --git a/libuavcan/src/protocol/uc_param_server.cpp b/libuavcan/src/protocol/uc_param_server.cpp index 0a02a97e3e..326995b47c 100644 --- a/libuavcan/src/protocol/uc_param_server.cpp +++ b/libuavcan/src/protocol/uc_param_server.cpp @@ -10,14 +10,6 @@ namespace uavcan { -bool ParamServer::isValueNonEmpty(const protocol::param::Value& value) -{ - return !value.value_bool.empty() || - !value.value_int.empty() || - !value.value_float.empty() || - !value.value_string.empty(); -} - void ParamServer::handleGetSet(const protocol::param::GetSet::Request& in, protocol::param::GetSet::Response& out) { UAVCAN_ASSERT(manager_ != NULL); @@ -40,14 +32,14 @@ void ParamServer::handleGetSet(const protocol::param::GetSet::Request& in, proto } // Assign if needed, read back - if (isValueNonEmpty(in.value)) + if (!IParamManager::isParamValueEmpty(in.value)) { manager_->assignParamValue(out.name, in.value); } manager_->readParamValue(out.name, out.value); // Check if the value is OK, otherwise reset the name to indicate that we have no idea what is it all about - if (isValueNonEmpty(out.value)) + if (!IParamManager::isParamValueEmpty(out.value)) { manager_->readParamDefaultMaxMin(out.name, out.default_value, out.max_value, out.min_value); }