]> git.stg.codes - stg.git/blobdiff - include/stg/admin.h
Public interfaces: part 4
[stg.git] / include / stg / admin.h
index 7095bb62c62c71c39ae6b9e2e303722e2a15965e..f78640ae826e45547d6761379a97a578f9c5ec88 100644 (file)
  *    Author : Maxim Mamontov <faust@stargazer.dp.ua>
  */
 
-#ifndef ADMIN_H
-#define ADMIN_H
+#pragma once
 
 #include <string>
+#include <cstdint>
 
-#include "admin_conf.h"
-#include "os_int.h"
-
-class ADMIN {
-public:
-      virtual ADMIN & operator=(const ADMIN &) = 0;
-      virtual ADMIN & operator=(const ADMIN_CONF &) = 0;
-      virtual bool    operator==(const ADMIN & rhs) const = 0;
-      virtual bool    operator!=(const ADMIN & rhs) const = 0;
-      virtual bool    operator<(const ADMIN & rhs) const = 0;
-      virtual bool    operator<=(const ADMIN & rhs) const = 0;
-
-      virtual const std::string & GetPassword() const = 0;
-      virtual const std::string & GetLogin() const = 0;
-      virtual PRIV const *        GetPriv() const = 0;
-      virtual uint16_t            GetPrivAsInt() const = 0;
-      virtual const ADMIN_CONF &  GetConf() const = 0;
-      virtual uint32_t            GetIP() const = 0;
-      virtual std::string         GetIPStr() const = 0;
-      virtual void                SetIP(uint32_t ip) = 0;
-      virtual const std::string   GetLogStr() const = 0;
+namespace STG
+{
+
+struct AdminConf;
+struct Priv;
+
+struct Admin {
+    virtual ~Admin() = default;
+
+    virtual const std::string& GetPassword() const = 0;
+    virtual const std::string& GetLogin() const = 0;
+    virtual const Priv*        GetPriv() const = 0;
+    virtual uint32_t           GetPrivAsInt() const = 0;
+    virtual const AdminConf&   GetConf() const = 0;
+    virtual uint32_t           GetIP() const = 0;
+    virtual std::string        GetIPStr() const = 0;
+    virtual void               SetIP(uint32_t ip) = 0;
+    virtual const std::string  GetLogStr() const = 0;
 };
 
-#endif
+}