]> git.stg.codes - stg.git/blobdiff - include/stg/admin_conf.h
Store parser answer in configproto.
[stg.git] / include / stg / admin_conf.h
index 32012f347dcb391c2d14ef9ea55384a848931039..7fbf44408c72ea45807a8b8f5ae5c1d942df6f6e 100644 (file)
@@ -7,9 +7,10 @@
 #ifndef ADMIN_CONF_H
 #define ADMIN_CONF_H
 
-#include <string>
-
 #include "os_int.h"
+#include "resetable.h"
+
+#include <string>
 
 #define ADM_LOGIN_LEN   (32)
 #define ADM_PASSWD_LEN  (32)
@@ -23,20 +24,24 @@ struct PRIV
           userPasswd(0),
           userAddDel(0),
           adminChg(0),
-          tariffChg(0)
-    {};
-    PRIV(uint16_t p)
-        : userStat((p & 0x0003) >> 0x00),
-          userConf((p & 0x000C) >> 0x02),
-          userCash((p & 0x0030) >> 0x04),
-          userPasswd((p & 0x00C0) >> 0x06),
-          userAddDel((p & 0x0300) >> 0x08),
-          adminChg((p & 0x0C00) >> 0x0A),
-          tariffChg((p & 0x3000) >> 0x0C)
+          tariffChg(0),
+          serviceChg(0),
+          corpChg(0)
+    {}
+    PRIV(uint32_t p)
+        : userStat((p & 0x00000003) >> 0x00),
+          userConf((p & 0x0000000C) >> 0x02),
+          userCash((p & 0x00000030) >> 0x04),
+          userPasswd((p & 0x000000C0) >> 0x06),
+          userAddDel((p & 0x00000300) >> 0x08),
+          adminChg((p & 0x00000C00) >> 0x0A),
+          tariffChg((p & 0x00003000) >> 0x0C),
+          serviceChg((p & 0x0000C000) >> 0x0E),
+          corpChg((p & 0x00030000) >> 0x10)
     {}
 
-    uint16_t ToInt() const;
-    void FromInt(uint16_t p);
+    uint32_t ToInt() const;
+    void FromInt(uint32_t p);
 
     uint16_t userStat;
     uint16_t userConf;
@@ -45,6 +50,8 @@ struct PRIV
     uint16_t userAddDel;
     uint16_t adminChg;
     uint16_t tariffChg;
+    uint16_t serviceChg;
+    uint16_t corpChg;
 };
 //-----------------------------------------------------------------------------
 struct ADMIN_CONF
@@ -69,6 +76,30 @@ struct ADMIN_CONF
     std::string   password;
 };
 //-----------------------------------------------------------------------------
+struct ADMIN_CONF_RES
+{
+    ADMIN_CONF_RES() {}
+    ADMIN_CONF_RES(const ADMIN_CONF & conf)
+        : priv(conf.priv),
+          login(conf.login),
+          password(conf.password)
+    {}
+    ADMIN_CONF_RES(const ADMIN_CONF_RES & rhs)
+        : priv(rhs.priv),
+          login(rhs.login),
+          password(rhs.password)
+    {}
+    ADMIN_CONF_RES & operator=(const ADMIN_CONF_RES & rhs)
+    {
+        priv = rhs.priv;
+        login = rhs.login;
+        password = rhs.password;
+        return *this;
+    }
+    RESETABLE<PRIV> priv;
+    RESETABLE<std::string> login;
+    RESETABLE<std::string> password;
+};
 
 #include "admin_conf.inc.h"