]> git.stg.codes - stg.git/blobdiff - include/stg/admins.h
Public interfaces: part 4
[stg.git] / include / stg / admins.h
index 169f1a26512fb176979aef4ef141a6069cc35faf..3945aac4f7309da2bfa2b1e5a8e05c1427ade8c5 100644 (file)
  *    Author : Maxim Mamontov <faust@stargazer.dp.ua>
  */
 
-#ifndef ADMINS_H
-#define ADMINS_H
+#pragma once
 
 #include <string>
 
-#include "admin.h"
-#include "admin_conf.h"
-
-class ADMINS {
-public:
-    virtual int Add(const std::string & login, const ADMIN * admin) = 0;
-    virtual int Del(const std::string & login, const ADMIN * admin) = 0;
-    virtual int Change(const ADMIN_CONF & ac, const ADMIN * admin) = 0;
-    virtual const ADMIN * GetSysAdmin() const = 0;
-    virtual const ADMIN * GetNoAdmin() const = 0;
-    virtual bool FindAdmin(const std::string & l, ADMIN ** admin) = 0;
-    virtual bool AdminExists(const std::string & login) const = 0;
-    virtual bool AdminCorrect(const std::string & login,
-                              const std::string & password,
-                              ADMIN ** admin) = 0;
-    virtual const std::string & GetStrError() const = 0;
+namespace STG
+{
+
+struct AdminConf;
+struct Admin;
+
+struct Admins {
+    virtual ~Admins() = default;
+
+    virtual int Add(const std::string& login, const Admin* admin) = 0;
+    virtual int Del(const std::string& login, const Admin* admin) = 0;
+    virtual int Change(const AdminConf& ac, const Admin* admin) = 0;
+    virtual const Admin* GetSysAdmin() const = 0;
+    virtual const Admin* GetNoAdmin() const = 0;
+    virtual bool Find(const std::string& l, Admin** admin) = 0;
+    virtual bool Exists(const std::string& login) const = 0;
+    virtual bool Correct(const std::string& login,
+                         const std::string& password,
+                         Admin** admin) = 0;
+    virtual const std::string& GetStrError() const = 0;
+    virtual size_t Count() const = 0;
 
     virtual int OpenSearch() const = 0;
-    virtual int SearchNext(int, ADMIN_CONF * ac) const = 0;
+    virtual int SearchNext(int, AdminConf* ac) const = 0;
     virtual int CloseSearch(int) const = 0;
 };
 
-#endif
+}