X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/90e389f6ec12e60a62c362296ffcf314feb5b03d..312c0eec08cfff18956ff4e238f6b6982bb0e721:/include/stg/user_conf.h diff --git a/include/stg/user_conf.h b/include/stg/user_conf.h index 70cb4fa7..db5773b8 100644 --- a/include/stg/user_conf.h +++ b/include/stg/user_conf.h @@ -1,43 +1,33 @@ - /* - $Revision: 1.12 $ - $Date: 2010/03/11 14:42:05 $ - $Author: faust $ - */ +#pragma once -#ifndef USER_CONF_H -#define USER_CONF_H +#include "user_ips.h" +#include "stg/optional.h" #include #include +#include #include "const.h" -#include "user_ips.h" -#include "resetable.h" -#include "os_int.h" + +namespace STG +{ //----------------------------------------------------------------------------- -struct USER_CONF +struct UserConf { - USER_CONF() - : password(), - passive(0), + UserConf() noexcept + : passive(0), disabled(0), disabledDetailStat(0), alwaysOnline(0), - tariffName(), - address(), - phone(), - email(), - note(), - realName(), - corp(), - service(), - group(), credit(0), - nextTariff(), userdata(USERDATA_NUM), - creditExpire(0), - ips() - {}; + creditExpire(0) + {} + + UserConf(const UserConf&) = default; + UserConf& operator=(const UserConf&) = default; + UserConf(UserConf&&) = default; + UserConf& operator=(UserConf&&) = default; std::string password; int passive; @@ -51,39 +41,45 @@ struct USER_CONF std::string note; std::string realName; std::string corp; - std::vector service; + std::vector services; std::string group; double credit; std::string nextTariff; std::vector userdata; time_t creditExpire; - USER_IPS ips; + UserIPs ips; }; //----------------------------------------------------------------------------- -struct USER_CONF_RES +struct UserConfOpt { - USER_CONF_RES() - : password(), - passive(), - disabled(), - disabledDetailStat(), - alwaysOnline(), - tariffName(), - address(), - phone(), - email(), - note(), - realName(), - group(), - credit(), - nextTariff(), - userdata(USERDATA_NUM, RESETABLE()), - creditExpire(), - ips() + UserConfOpt() noexcept + : userdata(USERDATA_NUM) + {} + UserConfOpt(const UserConf& data) noexcept + : password(data.password), + passive(data.passive), + disabled(data.disabled), + disabledDetailStat(data.disabledDetailStat), + alwaysOnline(data.alwaysOnline), + tariffName(data.tariffName), + address(data.address), + phone(data.phone), + email(data.email), + note(data.note), + realName(data.realName), + corp(data.corp), + group(data.group), + credit(data.credit), + nextTariff(data.nextTariff), + userdata(USERDATA_NUM), + services(data.services), + creditExpire(data.creditExpire), + ips(data.ips) { - }; - - USER_CONF_RES & operator=(const USER_CONF & uc) + for (size_t i = 0; i < USERDATA_NUM; i++) + userdata[i] = data.userdata[i]; + } + UserConfOpt& operator=(const UserConf& uc) noexcept { userdata.resize(USERDATA_NUM); password = uc.password; @@ -97,62 +93,42 @@ struct USER_CONF_RES email = uc.email; note = uc.note; realName = uc.realName; + corp = uc.corp; group = uc.group; credit = uc.credit; nextTariff = uc.nextTariff; - for (int i = 0; i < USERDATA_NUM; i++) - { - userdata[i] = uc.userdata[i]; - } + for (size_t i = 0; i < USERDATA_NUM; i++) userdata[i] = uc.userdata[i]; + services = uc.services; creditExpire = uc.creditExpire; ips = uc.ips; return *this; - }; - operator USER_CONF() const - { - USER_CONF uc; - uc.password = password; - uc.passive = passive; - uc.disabled = disabled; - uc.disabledDetailStat = disabledDetailStat; - uc.alwaysOnline = alwaysOnline; - uc.tariffName = tariffName; - uc.address = address; - uc.phone = phone; - uc.email = email; - uc.note = note; - uc.realName = realName; - uc.group = group; - uc.credit = credit; - uc.nextTariff = nextTariff; - for (int i = 0; i < USERDATA_NUM; i++) - { - uc.userdata[i] = userdata[i]; - } - uc.creditExpire = creditExpire; - uc.ips = ips; - return uc; } //------------------------------------------------------------------------- - RESETABLE password; - RESETABLE passive; - RESETABLE disabled; - RESETABLE disabledDetailStat; - RESETABLE alwaysOnline; - RESETABLE tariffName; - RESETABLE address; - RESETABLE phone; - RESETABLE email; - RESETABLE note; - RESETABLE realName; - RESETABLE group; - RESETABLE credit; - RESETABLE nextTariff; - std::vector > userdata; - RESETABLE creditExpire; - RESETABLE ips; + UserConfOpt(const UserConfOpt&) = default; + UserConfOpt& operator=(const UserConfOpt&) = default; + UserConfOpt(UserConfOpt&&) = default; + UserConfOpt& operator=(UserConfOpt&&) = default; + + Optional password; + Optional passive; + Optional disabled; + Optional disabledDetailStat; + Optional alwaysOnline; + Optional tariffName; + Optional address; + Optional phone; + Optional email; + Optional note; + Optional realName; + Optional corp; + Optional group; + Optional credit; + Optional nextTariff; + std::vector > userdata; + Optional > services; + Optional creditExpire; + Optional ips; }; //----------------------------------------------------------------------------- -#endif - +}