diff OrthancServer/ServerContext.h @ 1232:f1c01451a8ee

Introspection of plugins, Plugins can extend Orthanc Explorer with custom JavaScript
author Sebastien Jodogne <s.jodogne@gmail.com>
date Thu, 04 Dec 2014 17:04:40 +0100
parents 5bd4c9f85b4c
children 32fcc5dc7562
line wrap: on
line diff
--- a/OrthancServer/ServerContext.h	Fri Nov 28 12:39:22 2014 +0100
+++ b/OrthancServer/ServerContext.h	Thu Dec 04 17:04:40 2014 +0100
@@ -49,6 +49,7 @@
 namespace Orthanc
 {
   class OrthancPlugins;
+  class PluginsManager;
 
   /**
    * This class is responsible for maintaining the storage area on the
@@ -91,6 +92,7 @@
     boost::mutex luaMutex_;
     LuaContext lua_;
     OrthancPlugins* plugins_;  // TODO Turn it into a listener pattern (idem for Lua callbacks)
+    const PluginsManager* pluginsManager_;
 
   public:
     class DicomCacheLocker : public boost::noncopyable
@@ -195,13 +197,16 @@
       return scheduler_;
     }
 
-    void SetOrthancPlugins(OrthancPlugins& plugins)
+    void SetOrthancPlugins(const PluginsManager& manager,
+                           OrthancPlugins& plugins)
     {
+      pluginsManager_ = &manager;
       plugins_ = &plugins;
     }
 
     void ResetOrthancPlugins()
     {
+      pluginsManager_ = NULL;
       plugins_ = NULL;
     }
 
@@ -210,5 +215,11 @@
                         ResourceType expectedType);
 
     void SignalChange(const ServerIndexChange& change);
+
+    bool HasPlugins() const;
+
+    const PluginsManager& GetPluginsManager() const;
+
+    const OrthancPlugins& GetOrthancPlugins() const;
   };
 }