]> git.stg.codes - stg.git/blobdiff - stargazer/admins_impl.h
Disable NFQ on non-linux.
[stg.git] / stargazer / admins_impl.h
index 03aa4ece97ed9a14463e9c511d66ed928635d6ea..a533cf2ad526378d62fda60147e914c08eecd634 100644 (file)
  *    Author : Boris Mikhailenko <stg34@stargazer.dp.ua>
  */
 
- /*
- $Revision: 1.10 $
- $Date: 2010/10/04 20:17:12 $
- $Author: faust $
- */
-
-#ifndef ADMINS_IMPL_H
-#define ADMINS_IMPL_H
+#pragma once
 
 #include "admin_impl.h"
 
 #include "stg/noncopyable.h"
 #include "stg/logger.h"
 
-#include <list>
+#include <vector>
 #include <map>
 #include <string>
 
 #include <pthread.h>
 
-class ADMINS_IMPL : private NONCOPYABLE, public ADMINS {
-public:
-    explicit ADMINS_IMPL(STORE * st);
-    virtual ~ADMINS_IMPL() {}
-
-    int           Add(const std::string & login, const ADMIN * admin);
-    int           Del(const std::string & login, const ADMIN * admin);
-    int           Change(const ADMIN_CONF & ac, const ADMIN * admin);
-    const ADMIN * GetSysAdmin() const { return &stg; }
-    const ADMIN * GetNoAdmin() const { return &noAdmin; }
-    bool          Find(const std::string & l, ADMIN ** admin);
-    bool          Exists(const std::string & login) const;
-    bool          Correct(const std::string & login,
-                          const std::string & password,
-                          ADMIN ** admin);
-    const std::string & GetStrError() const { return strError; }
-
-    size_t        Count() const { return data.size(); }
-
-    int OpenSearch() const;
-    int SearchNext(int, ADMIN_CONF * ac) const;
-    int CloseSearch(int) const;
-
-private:
-    ADMINS_IMPL(const ADMINS_IMPL & rvalue);
-    ADMINS_IMPL & operator=(const ADMINS_IMPL & rvalue);
-
-    typedef std::list<ADMIN_IMPL>::iterator admin_iter;
-    typedef std::list<ADMIN_IMPL>::const_iterator const_admin_iter;
-
-    int             Read();
-
-    ADMIN_IMPL              stg;
-    ADMIN_IMPL              noAdmin;
-    std::list<ADMIN_IMPL>   data;
-    STORE *                 store;
-    STG_LOGGER &            WriteServLog;
-    mutable std::map<int, const_admin_iter> searchDescriptors;
-    mutable unsigned int    handle;
-    mutable pthread_mutex_t mutex;
-    std::string             strError;
+namespace STG
+{
+
+class AdminsImpl : public Admins {
+    public:
+        explicit AdminsImpl(Store * st);
+        virtual ~AdminsImpl() {}
+
+        int           Add(const std::string & login, const Admin * admin);
+        int           Del(const std::string & login, const Admin * admin);
+        int           Change(const AdminConf & ac, const Admin * admin);
+        const Admin * GetSysAdmin() const { return &stg; }
+        const Admin * GetNoAdmin() const { return &noAdmin; }
+        bool          Find(const std::string & l, Admin ** admin);
+        bool          Exists(const std::string & login) const;
+        bool          Correct(const std::string & login,
+                              const std::string & password,
+                              Admin ** admin);
+        const std::string & GetStrError() const { return strError; }
+
+        size_t        Count() const { return data.size(); }
+
+        int OpenSearch() const;
+        int SearchNext(int, AdminConf * ac) const;
+        int CloseSearch(int) const;
+
+    private:
+        AdminsImpl(const AdminsImpl & rvalue);
+        AdminsImpl & operator=(const AdminsImpl & rvalue);
+
+        typedef std::vector<AdminImpl>::iterator admin_iter;
+        typedef std::vector<AdminImpl>::const_iterator const_admin_iter;
+
+        int             Read();
+
+        AdminImpl              stg;
+        AdminImpl              noAdmin;
+        std::vector<AdminImpl> data;
+        Store *                 store;
+        Logger &            WriteServLog;
+        mutable std::map<int, const_admin_iter> searchDescriptors;
+        mutable unsigned int    handle;
+        mutable pthread_mutex_t mutex;
+        std::string             strError;
 };
 
-#endif
+}