]> git.stg.codes - stg.git/blobdiff - projects/stargazer/plugin_runner.h
Use common filtering algorithm with predicate specialization
[stg.git] / projects / stargazer / plugin_runner.h
index 2889300dab7fb432abf6eb96d69c76d1f8c61fb5..412c51413361d7a7e93cb39b4c9e08749704dffc 100644 (file)
 
 #ifndef PLUGIN_RUNNER_H
 #define PLUGIN_RUNNER_H
 
 #ifndef PLUGIN_RUNNER_H
 #define PLUGIN_RUNNER_H
-#include <pthread.h>
+
 #include <string>
 
 #include <string>
 
-#include "base_plugin.h"
-#include "base_settings.h"
-#include "traffcounter.h"
-#include "tariffs.h"
-#include "admins.h"
-#include "users.h"
+#include "stg/module_settings.h"
+#include "stg/plugin.h"
+#include "stg/os_int.h"
+
+class SETTINGS_IMPL;
+class ADMINS_IMPL;
+class TARIFFS_IMPL;
+class USERS_IMPL;
+class TRAFFCOUNTER;
+class STORE;
 
 
-using namespace std;
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
-class PLUGIN_RUNNER
-{
+class PLUGIN_RUNNER {
 public:
 public:
-    PLUGIN_RUNNER(const string & pluginFileName,
+    PLUGIN_RUNNER(const std::string & pluginFileName,
                   const MODULE_SETTINGS & ms,
                   const MODULE_SETTINGS & ms,
-                  ADMINS * admins,
-                  TARIFFS * tariffs,
-                  USERS * users,
+                  ADMINS_IMPL * admins,
+                  TARIFFS_IMPL * tariffs,
+                  USERS_IMPL * users,
                   TRAFFCOUNTER * tc,
                   TRAFFCOUNTER * tc,
-                  BASE_STORE * store,
-                  const SETTINGS * s);
+                  STORE * store,
+                  const SETTINGS_IMPL * s);
     PLUGIN_RUNNER(const PLUGIN_RUNNER & rvalue);
     ~PLUGIN_RUNNER();
 
     PLUGIN_RUNNER(const PLUGIN_RUNNER & rvalue);
     ~PLUGIN_RUNNER();
 
@@ -60,36 +62,34 @@ public:
     int             Restart();
     bool            IsRunning();
 
     int             Restart();
     bool            IsRunning();
 
-    const string &  GetStrError() const;
-    BASE_PLUGIN *   GetPlugin();
-    const string & GetFileName() const { return pluginFileName; };
+    const std::string & GetStrError() const { return errorStr; }
+    PLUGIN *        GetPlugin();
+    const std::string & GetFileName() const { return pluginFileName; }
 
     int             Load();
     int             Unload();
 
 
     int             Load();
     int             Unload();
 
-    uint16_t        GetStartPosition() const;
-    uint16_t        GetStopPosition() const;
+    uint16_t        GetStartPosition() const { return plugin->GetStartPosition(); }
+    uint16_t        GetStopPosition() const { return plugin->GetStopPosition(); }
 
 private:
 
 private:
-    string          pluginFileName;
-    string          pluginSettingFileName;
+    std::string     pluginFileName;
+    std::string     pluginSettingFileName;
 
 
-    BASE_PLUGIN *   plugin;
-    int             isPluginLoaded;
-    string          errorStr;
+    PLUGIN *        plugin;
+    bool            isPluginLoaded;
+    std::string     errorStr;
 
     void *          libHandle;
     bool            isRunning;
 
 
     void *          libHandle;
     bool            isRunning;
 
-    ADMINS *        admins;
-    TARIFFS *       tariffs;
-    USERS *         users;
-    BASE_STORE *    store;
+    ADMINS_IMPL *   admins;
+    TARIFFS_IMPL *  tariffs;
+    USERS_IMPL *    users;
+    STORE *         store;
     TRAFFCOUNTER *  traffCnt;
     TRAFFCOUNTER *  traffCnt;
-    const SETTINGS * stgSettings;
+    const SETTINGS_IMPL * stgSettings;
     MODULE_SETTINGS modSettings;
 };
 //-----------------------------------------------------------------------------
 #endif //PLUGIN_RUNNER_H
     MODULE_SETTINGS modSettings;
 };
 //-----------------------------------------------------------------------------
 #endif //PLUGIN_RUNNER_H
-
-