]> git.stg.codes - stg.git/blobdiff - projects/stargazer/plugins/other/radius/conn.h
Allow to have multi-leveled module settings.
[stg.git] / projects / stargazer / plugins / other / radius / conn.h
index 31ebe1dd06322d1a1bf0041fa77eb0df3b077378..38f2db2ff8aaff28f22c1849030c3942ec70965c 100644 (file)
 #ifndef __STG_SGCONFIG_CONN_H__
 #define __STG_SGCONFIG_CONN_H__
 
 #ifndef __STG_SGCONFIG_CONN_H__
 #define __STG_SGCONFIG_CONN_H__
 
-#include "stg/os_int.h"
+#include <boost/scoped_ptr.hpp>
 
 
-#include <stdexcept>
 #include <string>
 
 #include <string>
 
+class USER;
 class USERS;
 class USERS;
+class PLUGIN_LOGGER;
 
 namespace STG
 {
 
 
 namespace STG
 {
 
+class Config;
+
 class Conn
 {
     public:
 class Conn
 {
     public:
-        struct Error : public std::runtime_error
-        {
-            Error(const std::string& message) : runtime_error(message.c_str()) {}
-        };
-
-        Conn(USERS& users, PLUGIN_LOGGER& logger, const Config& config);
+        Conn(USERS& users, PLUGIN_LOGGER& logger, const Config& config, int fd, const std::string& remote);
         ~Conn();
 
         ~Conn();
 
-        int sock() const { return m_sock; }
+        int sock() const;
 
         bool read();
 
         bool read();
+        bool tick();
+
+        bool isOk() const;
 
     private:
 
     private:
-        USERS& m_users;
-        PLUGIN_LOGGER& m_logger;
-        const Config& m_config;
+        class Impl;
+        boost::scoped_ptr<Impl> m_impl;
 };
 
 }
 };
 
 }