X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/0b6c34199c73c6cf2dcef9a06fd812b4eb31116f..0907aa4037b12b6b88ee24495d4577a064d4f8db:/projects/sgconf/config.h diff --git a/projects/sgconf/config.h b/projects/sgconf/config.h index 0c76d2de..f5313ef9 100644 --- a/projects/sgconf/config.h +++ b/projects/sgconf/config.h @@ -18,25 +18,27 @@ * Author : Maxim Mamontov */ -#ifndef __STG_SGCONF_CONFIG_H__ -#define __STG_SGCONF_CONFIG_H__ +#pragma once #include "stg/common.h" -#include "stg/resetable.h" -#include "stg/os_int.h" +#include "stg/optional.h" #include +#include namespace SGCONF { struct CONFIG { - RESETABLE configFile; - RESETABLE server; - RESETABLE port; - RESETABLE userName; - RESETABLE userPass; + STG::Optional configFile; + STG::Optional server; + STG::Optional port; + STG::Optional localAddress; + STG::Optional localPort; + STG::Optional userName; + STG::Optional userPass; + STG::Optional showConfig; CONFIG & operator=(const CONFIG & rhs) { @@ -46,30 +48,38 @@ struct CONFIG server = rhs.server; if (!rhs.port.empty()) port = rhs.port; + if (!rhs.localAddress.empty()) + localAddress = rhs.localAddress; + if (!rhs.localPort.empty()) + localPort = rhs.localPort; if (!rhs.userName.empty()) userName = rhs.userName; if (!rhs.userPass.empty()) userPass = rhs.userPass; + if (!rhs.showConfig.empty()) + showConfig = rhs.showConfig; return *this; } std::string Serialize() const { - std::string res("{ "); + std::string res; if (!configFile.empty()) - res += "configFile: '" + configFile.data() + "',"; + res += "configFile: '" + configFile.data() + "'\n"; if (!server.empty()) - res += " server: '" + server.data() + "',"; + res += "server: '" + server.data() + "'\n"; if (!port.empty()) - res += " port: " + x2str(port.data()) + ","; + res += "port: " + std::to_string(port.data()) + "\n"; + if (!localAddress.empty()) + res += "local address: '" + localAddress.data() + "'\n"; + if (!localPort.empty()) + res += "local port: " + std::to_string(localPort.data()) + "\n"; if (!userName.empty()) - res += " userName: '" + userName.data() + "',"; + res += "userName: '" + userName.data() + "'\n"; if (!userPass.empty()) - res += " userPass: '" + userPass.data() + "'"; - return res + " }"; + res += "userPass: '" + userPass.data() + "\n"; + return res; } }; -} - -#endif +} // namespace SGCONF