X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/1b2ab8e6d556a8ed30d4feadc72263b3f4c86665..9421e4b0be3a6a59e93ad092e3904b3ff8092e84:/projects/sgconf/config.h?ds=sidebyside diff --git a/projects/sgconf/config.h b/projects/sgconf/config.h index 9ed90c73..9ec9616e 100644 --- a/projects/sgconf/config.h +++ b/projects/sgconf/config.h @@ -21,6 +21,7 @@ #ifndef __STG_SGCONF_CONFIG_H__ #define __STG_SGCONF_CONFIG_H__ +#include "stg/common.h" #include "stg/resetable.h" #include "stg/os_int.h" @@ -36,6 +37,37 @@ struct CONFIG RESETABLE port; RESETABLE userName; RESETABLE userPass; + + CONFIG & operator=(const CONFIG & rhs) + { + if (!rhs.configFile.empty()) + configFile = rhs.configFile; + if (!rhs.server.empty()) + server = rhs.server; + if (!rhs.port.empty()) + port = rhs.port; + if (!rhs.userName.empty()) + userName = rhs.userName; + if (!rhs.userPass.empty()) + userPass = rhs.userPass; + return *this; + } + + std::string Serialize() const + { + std::string res("{ "); + if (!configFile.empty()) + res += "configFile: '" + configFile.data() + "'"; + if (!server.empty()) + res += ", server: '" + server.data() + "'"; + if (!port.empty()) + res += ", port: " + x2str(port.data()); + if (!userName.empty()) + res += ", userName: '" + userName.data() + "'"; + if (!userPass.empty()) + res += ", userPass: '" + userPass.data() + "'"; + return res + " }"; + } }; }