SimpCfg: Move dump into its own func, Avoid KV iter wrt Get
This commit is contained in:
parent
6b475e444f
commit
5aa1072aac
1 changed files with 16 additions and 5 deletions
|
@ -21,11 +21,13 @@
|
||||||
#define SC_DEBUG
|
#define SC_DEBUG
|
||||||
#define SC_TEST_PRG
|
#define SC_TEST_PRG
|
||||||
#ifdef SC_TEST_PRG
|
#ifdef SC_TEST_PRG
|
||||||
|
#define LINFO_LN(FMT, ...) fprintf(stdout, FMT"\n", __VA_ARGS__)
|
||||||
#define LDBUG_LN(FMT, ...) fprintf(stderr, FMT"\n", __VA_ARGS__)
|
#define LDBUG_LN(FMT, ...) fprintf(stderr, FMT"\n", __VA_ARGS__)
|
||||||
#define LERRR_LN(FMT, ...) fprintf(stderr, FMT"\n", __VA_ARGS__)
|
#define LERRR_LN(FMT, ...) fprintf(stderr, FMT"\n", __VA_ARGS__)
|
||||||
#define LWARN_LN(FMT, ...) fprintf(stderr, FMT"\n", __VA_ARGS__)
|
#define LWARN_LN(FMT, ...) fprintf(stderr, FMT"\n", __VA_ARGS__)
|
||||||
#else
|
#else
|
||||||
#include "log.h"
|
#include "log.h"
|
||||||
|
#define LINFO_LN LOG_TEELN
|
||||||
#define LDBUG_LN LOGLN
|
#define LDBUG_LN LOGLN
|
||||||
#define LERRR_LN LOG_TEELN
|
#define LERRR_LN LOG_TEELN
|
||||||
#define LWARN_LN LOG_TEELN
|
#define LWARN_LN LOG_TEELN
|
||||||
|
@ -126,14 +128,21 @@ public:
|
||||||
set_double(group, key, dvalue);
|
set_double(group, key, dvalue);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void dump(const std::string &group) {
|
||||||
|
for (auto gm: mapV) {
|
||||||
|
if (!group.empty() && (gm.first != group)) {
|
||||||
|
LINFO_LN("INFO:SC:%s:%s:Skipping...", __func__, gm.first.c_str());
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
for(auto k: gm.second) {
|
||||||
|
LINFO_LN("DBUG:SC:%s:%s:Iterate:%s:%s", __func__, gm.first.c_str(), k.first.c_str(), to_str(k.second).c_str());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
template<typename SupportedDataType>
|
template<typename SupportedDataType>
|
||||||
SupportedDataType get_value(const std::string &group, const std::string &key, const SupportedDataType &defaultValue, const std::string &callerName="") {
|
SupportedDataType get_value(const std::string &group, const std::string &key, const SupportedDataType &defaultValue, const std::string &callerName="") {
|
||||||
auto gm = mapV[group];
|
auto gm = mapV[group];
|
||||||
#ifdef SC_DEBUG
|
|
||||||
for(auto k: gm) {
|
|
||||||
LDBUG_LN("DBUG:SC:%s:Iterate:%s:%s", __func__, k.first.c_str(), to_str(k.second).c_str());
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
if (gm.find(key) == gm.end()) {
|
if (gm.find(key) == gm.end()) {
|
||||||
std::stringstream ss;
|
std::stringstream ss;
|
||||||
ss << defaultValue;
|
ss << defaultValue;
|
||||||
|
@ -234,6 +243,7 @@ int main(int argc, char **argv) {
|
||||||
std::string fname {argv[1]};
|
std::string fname {argv[1]};
|
||||||
SimpCfg sc;
|
SimpCfg sc;
|
||||||
sc.load(fname);
|
sc.load(fname);
|
||||||
|
sc.dump("");
|
||||||
|
|
||||||
sc.get_bool("testme", "key101b", false);
|
sc.get_bool("testme", "key101b", false);
|
||||||
sc.get_string("testme", "key101s", "Not found");
|
sc.get_string("testme", "key101s", "Not found");
|
||||||
|
@ -245,6 +255,7 @@ int main(int argc, char **argv) {
|
||||||
sc.set_int64("testme", "key201i", 987654);
|
sc.set_int64("testme", "key201i", 987654);
|
||||||
sc.set_double("testme", "key201d", 9988.7766);
|
sc.set_double("testme", "key201d", 9988.7766);
|
||||||
|
|
||||||
|
sc.dump("testme");
|
||||||
sc.get_bool("testme", "key201b", false);
|
sc.get_bool("testme", "key201b", false);
|
||||||
sc.get_string("testme", "key201s", "Not found");
|
sc.get_string("testme", "key201s", "Not found");
|
||||||
sc.get_int64("testme", "key201i", 123456);
|
sc.get_int64("testme", "key201i", 123456);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue