From 1e1f54ec1d8b49959ca79875b2e327115d15fd00 Mon Sep 17 00:00:00 2001 From: HanishKVC Date: Wed, 1 May 2024 17:43:25 +0530 Subject: [PATCH] SimpCfg:GetArray flesh out, helpers to convert to string Good: Forgotten love, All the light we cant see, laapataa ladies --- common/simpcfg.hpp | 33 ++++++++++++++++++++++++++++----- 1 file changed, 28 insertions(+), 5 deletions(-) diff --git a/common/simpcfg.hpp b/common/simpcfg.hpp index 9028bf598..a0a80c291 100644 --- a/common/simpcfg.hpp +++ b/common/simpcfg.hpp @@ -79,6 +79,29 @@ void str_compare_dump(const std::string &s1, const std::string &s2) { } } + +template +std::string str(TypeWithStrSupp value) { + std::stringstream ss; + ss << value; + return ss.str(); +} + +template +std::string str(std::vector values) { + std::stringstream ss; + ss << "[ "; + int cnt = 0; + for(auto value: values) { + cnt += 1; + if (cnt != 1) ss << ", "; + ss << value; + } + ss << " ]"; + return ss.str(); +} + + typedef std::variant SimpCfgData; class SimpCfg { @@ -197,14 +220,13 @@ public: break; } array.push_back(std::get(gm[arrayKey])); + i += 1; } if (array.empty()) { - std::stringstream ss; - ss << defaultValue; - LWARN_LN("DBUG:SC:%s_%s:%s:%s:%s[default]", __func__, callerName.c_str(), group.c_str(), key.c_str(), ss.str().c_str()); + LWARN_LN("DBUG:SC:%s_%s:%s:%s:%s[default]", __func__, callerName.c_str(), group.c_str(), key.c_str(), str(defaultValue).c_str()); return defaultValue; } - LDBUG_LN("DBUG:SC:%s_%s:%s:%s:%s", __func__, callerName.c_str(), group.c_str(), key.c_str(), to_str(value).c_str()); + LDBUG_LN("DBUG:SC:%s_%s:%s:%s:%s", __func__, callerName.c_str(), group.c_str(), key.c_str(), str(array).c_str()); return array; } @@ -308,10 +330,11 @@ int main(int argc, char **argv) { sc.get_string("mistral", "system-prefix", "Not found"); sc.get_string("\"mistral\"", "\"system-prefix\"", "Not found"); + sc.get_array("testme", "keyA100", {1, 2, 3}); sc.set_int64("testme", "keyA300-0", 330); sc.set_int64("testme", "keyA300-1", 331); sc.set_int64("testme", "keyA300-2", 332); - sc.get_array("testme", "keyA300", {1, 2, 3}); + sc.get_array("testme", "keyA300", {1, 2, 3}); return 0; } #endif