]> git.stg.codes - stg.git/blobdiff - projects/stargazer/plugins/other/ping/ping.h
Start replacing notifiers with subscriptions.
[stg.git] / projects / stargazer / plugins / other / ping / ping.h
index 23874e37623da45d03fd35fb30a0919d1889af80..68d79794afd27cc77428a9d43119447525401ea0 100644 (file)
@@ -3,6 +3,7 @@
 #include "stg/plugin.h"
 #include "stg/module_settings.h"
 #include "stg/notifer.h"
+#include "stg/subscriptions.h"
 #include "stg/user_ips.h"
 #include "stg/pinger.h"
 #include "stg/users.h"
@@ -31,7 +32,7 @@ class CHG_CURRIP_NOTIFIER_PING: public STG::PropertyNotifierBase<uint32_t> {
 public:
     CHG_CURRIP_NOTIFIER_PING(const PING & p, UserPtr u)
         : user(u), ping(p) {}
-    void Notify(const uint32_t & oldIP, const uint32_t & newIP);
+    void notify(const uint32_t & oldIP, const uint32_t & newIP) override;
     UserPtr GetUser() const { return user; }
 
 private:
@@ -45,7 +46,7 @@ class CHG_IPS_NOTIFIER_PING: public STG::PropertyNotifierBase<STG::UserIPs> {
 public:
     CHG_IPS_NOTIFIER_PING(const PING & p, UserPtr u)
         : user(u), ping(p) {}
-    void Notify(const STG::UserIPs & oldIPS, const STG::UserIPs & newIPS);
+    void notify(const STG::UserIPs & oldIPS, const STG::UserIPs & newIPS) override;
     UserPtr GetUser() const { return user; }
 
 private:
@@ -55,30 +56,6 @@ private:
     const PING & ping;
 };
 //-----------------------------------------------------------------------------
-class ADD_USER_NONIFIER_PING: public STG::NotifierBase<UserPtr> {
-public:
-    explicit ADD_USER_NONIFIER_PING(PING & p) : ping(p) {}
-    void Notify(const UserPtr & user);
-
-private:
-    ADD_USER_NONIFIER_PING(const ADD_USER_NONIFIER_PING &);
-    ADD_USER_NONIFIER_PING & operator=(const ADD_USER_NONIFIER_PING &);
-
-    PING & ping;
-};
-//-----------------------------------------------------------------------------
-class DEL_USER_NONIFIER_PING: public STG::NotifierBase<UserPtr> {
-public:
-    explicit DEL_USER_NONIFIER_PING(PING & p) : ping(p) {}
-    void Notify(const UserPtr & user);
-
-private:
-    DEL_USER_NONIFIER_PING(const DEL_USER_NONIFIER_PING &);
-    DEL_USER_NONIFIER_PING & operator=(const DEL_USER_NONIFIER_PING &);
-
-    PING & ping;
-};
-//-----------------------------------------------------------------------------
 class PING_SETTINGS {
 public:
     PING_SETTINGS() : pingDelay(0) {}
@@ -95,7 +72,6 @@ friend class CHG_CURRIP_NOTIFIER_PING;
 friend class CHG_IPS_NOTIFIER_PING;
 public:
     PING();
-    ~PING() override;
 
     void SetUsers(STG::Users * u) override { users = u; }
     void SetSettings(const STG::ModuleSettings & s) override { settings = s; }
@@ -137,8 +113,8 @@ private:
     std::list<CHG_CURRIP_NOTIFIER_PING> ChgCurrIPNotifierList;
     std::list<CHG_IPS_NOTIFIER_PING> ChgIPNotifierList;
 
-    ADD_USER_NONIFIER_PING onAddUserNotifier;
-    DEL_USER_NONIFIER_PING onDelUserNotifier;
+    STG::ScopedConnection m_onAddUserConn;
+    STG::ScopedConnection m_onDelUserConn;
 
     STG::PluginLogger logger;
 };