X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/8569ecdc2c9368dc0fe650b901cce7b37337ffec..e9ae1f101b5418c0ba2e6c9d86b23c12f0140982:/include/stg/user_conf.h diff --git a/include/stg/user_conf.h b/include/stg/user_conf.h index 5d65fcee..db5773b8 100644 --- a/include/stg/user_conf.h +++ b/include/stg/user_conf.h @@ -1,44 +1,34 @@ - /* - $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; int disabled; @@ -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(), + 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), - creditExpire(), - ips() + services(data.services), + creditExpire(data.creditExpire), + ips(data.ips) { + for (size_t i = 0; i < USERDATA_NUM; i++) + userdata[i] = data.userdata[i]; } - - USER_CONF_RES & operator=(const USER_CONF & uc) + UserConfOpt& operator=(const UserConf& uc) noexcept { userdata.resize(USERDATA_NUM); password = uc.password; @@ -97,58 +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 (size_t i = 0; i < USERDATA_NUM; i++) userdata[i] = uc.userdata[i]; + services = uc.services; creditExpire = uc.creditExpire; ips = uc.ips; return *this; } - USER_CONF GetData() const - { - USER_CONF uc; - uc.password = password.data(); - uc.passive = passive.data(); - uc.disabled = disabled.data(); - uc.disabledDetailStat = disabledDetailStat.data(); - uc.alwaysOnline = alwaysOnline.data(); - uc.tariffName = tariffName.data(); - uc.address = address.data(); - uc.phone = phone.data(); - uc.email = email.data(); - uc.note = note.data(); - uc.realName = realName.data(); - uc.group = group.data(); - uc.credit = credit.data(); - uc.nextTariff = nextTariff.data(); - for (int i = 0; i < USERDATA_NUM; i++) - { - uc.userdata[i] = userdata[i].data(); - } - uc.creditExpire = creditExpire.data(); - uc.ips = ips.data(); - 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 +}