diff Plugins/Engine/PluginsManager.h @ 1630:ffd23c0104af

"/system" URI gives information about the plugins used for storage area and DB back-end
author Sebastien Jodogne <s.jodogne@gmail.com>
date Mon, 21 Sep 2015 13:26:45 +0200
parents 357c4bb15701
children eb8fbcf008b5
line wrap: on
line diff
--- a/Plugins/Engine/PluginsManager.h	Fri Sep 18 17:45:59 2015 +0200
+++ b/Plugins/Engine/PluginsManager.h	Mon Sep 21 13:26:45 2015 +0200
@@ -40,21 +40,22 @@
 
 namespace Orthanc
 {
-  class PluginsManager : boost::noncopyable
+  class PluginsManager : public boost::noncopyable
   {
   private:
-    class Plugin
+    class Plugin : public boost::noncopyable
     {
     private:
-      SharedLibrary library_;
-      std::string  version_;
+      OrthancPluginContext  context_;
+      SharedLibrary         library_;
+      std::string           version_;
+      PluginsManager&       pluginManager_;
 
     public:
-      Plugin(const std::string& path) : library_(path)
-      {
-      }
+      Plugin(PluginsManager& pluginManager,
+             const std::string& path);
 
-      SharedLibrary& GetLibrary()
+      SharedLibrary& GetSharedLibrary()
       {
         return library_;
       }
@@ -68,11 +69,20 @@
       {
         return version_;
       }
+
+      PluginsManager& GetPluginManager()
+      {
+        return pluginManager_;
+      }
+
+      OrthancPluginContext& GetContext()
+      {
+        return context_;
+      }
     };
 
     typedef std::map<std::string, Plugin*>  Plugins;
 
-    OrthancPluginContext  context_;
     Plugins  plugins_;
     std::list<IPluginServiceProvider*> serviceProviders_;