]> git.stg.codes - stg.git/blobdiff - include/stg/plugin.h
More subscriptions, less notifiers.
[stg.git] / include / stg / plugin.h
index 35a5a4c9fef2d6c7bc866440f346ab6f3d22c203..c638a2f59b98017ce0ecf1179801749c6d42af7e 100644 (file)
  *    Author : Boris Mikhailenko <stg34@stargazer.dp.ua>
  */
 
-/*
- $Revision: 1.12 $
- $Date: 2010/03/04 11:53:14 $
- $Author: faust $
-*/
-
-
-#ifndef PLUGIN_H
-#define PLUGIN_H
+#pragma once
 
 #include <string>
-
-#include "noncopyable.h"
-#include "os_int.h"
-#include "admins.h"
-#include "users.h"
-#include "tariffs.h"
-
-class TRAFFCOUNTER;
-class SETTINGS;
-class STORE;
-struct MODULE_SETTINGS;
-
-class PLUGIN : private NONCOPYABLE {
-public:
-    virtual void                SetUsers(USERS * u) = 0;
-    virtual void                SetTariffs(TARIFFS * t) = 0;
-    virtual void                SetAdmins(ADMINS * a) = 0;
-    virtual void                SetTraffcounter(TRAFFCOUNTER * tc) = 0;
-    virtual void                SetStore(STORE * st) = 0;
-    virtual void                SetStgSettings(const SETTINGS * s) = 0;
-    virtual void                SetSettings(const MODULE_SETTINGS & s) = 0;
-    virtual int                 ParseSettings() = 0;
-
-    virtual int                 Start() = 0;
-    virtual int                 Stop() = 0;
-    virtual int                 Reload() = 0;
-    virtual bool                IsRunning() = 0;
-    virtual const std::string & GetStrError() const = 0;
-    virtual const std::string   GetVersion() const = 0;
-    virtual uint16_t            GetStartPosition() const = 0;
-    virtual uint16_t            GetStopPosition() const = 0;
+#include <cstdint>
+
+namespace STG
+{
+
+struct TraffCounter;
+struct Settings;
+struct Store;
+struct Admins;
+struct Users;
+struct Tariffs;
+struct Services;
+struct Corporations;
+struct ModuleSettings;
+
+struct Plugin {
+    virtual ~Plugin() = default;
+
+    virtual void               SetUsers(Users*) {}
+    virtual void               SetTariffs(Tariffs*) {}
+    virtual void               SetAdmins(Admins*) {}
+    virtual void               SetServices(Services*) {}
+    virtual void               SetCorporations(Corporations*) {}
+    virtual void               SetTraffcounter(TraffCounter*) {}
+    virtual void               SetStore(Store*) {}
+    virtual void               SetStgSettings(const Settings*) {}
+    virtual void               SetSettings(const ModuleSettings&) {}
+    virtual int                ParseSettings() = 0;
+
+    virtual int                Start() = 0;
+    virtual int                Stop() = 0;
+    virtual int                Reload(const ModuleSettings&) = 0;
+    virtual bool               IsRunning() = 0;
+    virtual const std::string& GetStrError() const = 0;
+    virtual std::string        GetVersion() const = 0;
+    virtual uint16_t           GetStartPosition() const = 0;
+    virtual uint16_t           GetStopPosition() const = 0;
 };
 
-#endif
+}