]> git.stg.codes - stg.git/blobdiff - projects/stargazer/plugins/other/userstat/userstat.h
New signal handling infrastructure. Prevent unloading running module.
[stg.git] / projects / stargazer / plugins / other / userstat / userstat.h
index 83f66202b45714d5161cd31158c126b903732e98..1c5776f80aa15dbb5085d285a62770c417ad5be2 100644 (file)
  */
 
 /*
  */
 
 /*
- $Revision: 1.1 $
- $Date: 2008/07/05 12:35:53 $
- $Author: faust $
+ $Revision: $
+ $Date: $
+ $Author: $
 */
 
 #ifndef __USERSTAT_H__
 #define __USERSTAT_H__
 
 */
 
 #ifndef __USERSTAT_H__
 #define __USERSTAT_H__
 
-#include <expat.h>
+#include <string>
+#include <map>
+#include <functional>
+
 #include <pthread.h>
 #include <netinet/in.h>
 
 #include "base_plugin.h"
 
 #include <pthread.h>
 #include <netinet/in.h>
 
 #include "base_plugin.h"
 
-extern "C" BASE_PLUGIN * GetPlugin();
-
-struct THREAD_INFO
-{
-    pthread_t thread;
-    USERS * users;
-    BASE_STORE * store;
-    int outerSocket;
-    bool done;
-};
-
-uint32_t n2l(unsigned char * c)
-{
-    uint32_t t = *c++ << 24;
-    t += *c++ << 16;
-    t += *c++ << 8;
-    t += *c;
-    return t;
-}
+#define USTAT_VERSION "UserStats 1.0_alt"
 
 
-void l2n(uint32_t t, unsigned char * c)
-{
-    *c++ = t >> 24 & 0x000000FF;
-    *c++ = t >> 16 & 0x000000FF;
-    *c++ = t >> 8 & 0x000000FF;
-    *c++ = t & 0x000000FF;
-}
+extern "C" BASE_PLUGIN * GetPlugin();
 
 class USERSTAT : public BASE_PLUGIN
 {
 
 class USERSTAT : public BASE_PLUGIN
 {
@@ -67,27 +46,23 @@ public:
     USERSTAT();
     ~USERSTAT();
 
     USERSTAT();
     ~USERSTAT();
 
-    virtual void SetUsers(USERS * u) { users = u; };
-    virtual void SetTariffs(TARIFFS * t) {};
-    virtual void SetAdmins(ADMINS * a) {};
-    virtual void SetTraffcounter(TRAFFCOUNTER * tc) {};
-    virtual void SetStore(BASE_STORE * st) { store = st; };
-    virtual void SetStgSettings(const SETTINGS * s) {};
-    virtual void SetSettings(const MODULE_SETTINGS & s) { settings = s; };
+    virtual void SetUsers(USERS * u) { users = u; }
+    virtual void SetStore(BASE_STORE * st) { store = st; }
+    virtual void SetSettings(const MODULE_SETTINGS & s) { settings = s; }
     virtual int  ParseSettings();
 
     virtual int  Start();
     virtual int  Stop();
     virtual int  ParseSettings();
 
     virtual int  Start();
     virtual int  Stop();
-    virtual bool IsRunning() { return isRunning; };
-    virtual const string  & GetStrError() const { return errorStr; };
-    virtual const string    GetVersion() const { return version; };
-    virtual uint16_t        GetStartPosition() const { return 0; };
-    virtual uint16_t        GetStopPosition() const { return 0; };
+    virtual bool IsRunning() { return isRunning; }
+    virtual const string  & GetStrError() const { return errorStr; }
+    virtual const string    GetVersion() const { return version; }
+    virtual uint16_t        GetStartPosition() const { return 0; }
+    virtual uint16_t        GetStopPosition() const { return 0; }
 
 private:
 
 private:
-    struct IsDone : public unary_function<THREAD_INFO, bool>
+    struct IsDone : public unary_function<DataThread, bool>
     {
     {
-        bool operator()(const THREAD_INFO & info) { return info.done; };
+        bool operator()(const DataThread & info) { return info.IsDone(); }
     };
     struct ToLower : public unary_function<char, char>
     {
     };
     struct ToLower : public unary_function<char, char>
     {
@@ -97,7 +72,7 @@ private:
     bool nonstop;
     std::string errorStr;
     std::string version;
     bool nonstop;
     std::string errorStr;
     std::string version;
-    std::vector<THREAD_INFO> pool;
+    std::vector<DataThread> pool;
     int listenSocket;
     int threads;
     unsigned maxThreads;
     int listenSocket;
     int threads;
     unsigned maxThreads;
@@ -110,15 +85,10 @@ private:
 
     MODULE_SETTINGS settings;
 
 
     MODULE_SETTINGS settings;
 
-    XML_Parser xmlParser;
-
     int Prepare();
     int Finalize();
     static void * Run(void *);
     static void * Operate(void *);
     int Prepare();
     int Finalize();
     static void * Run(void *);
     static void * Operate(void *);
-
-    friend void ParseXMLStart(void * data, char * name, char ** attr);
-    friend void ParseXMLEnd(void * data, char * name);
 };
 
 #endif
 };
 
 #endif