0024925: Enabling OCAF persistence without setting environment variables
[occt.git] / src / Plugin / Plugin.cdl
index 7ab5e4b..6f1dc9b 100644 (file)
@@ -16,7 +16,9 @@
 
 package Plugin
 
-    uses TCollection,OSD
+    uses TCollection,
+         OSD,
+         Resource
 
 is
 
@@ -25,7 +27,23 @@ is
     class MapOfFunctions instantiates DataMap from TCollection(AsciiString from TCollection ,Function from OSD, AsciiString from TCollection);
 
 
-    Load(aGUID: GUID from Standard) returns Transient from Standard
+    Load(aGUID: GUID from Standard; theVerbose: Boolean from Standard = Standard_True)
+    returns Transient from Standard
     raises Failure  from Plugin;
 
+    AdditionalPluginMap
+    returns Manager from Resource;
+    ---C++    : return const &
+    ---Purpose: Returns a global map of {guid, plugin_library} pairs.
+    --          The Load() method will use this map to search for plugins if and only if
+    --          the GUID is not found in the Plugin file specified by the CSF_PluginDefaults
+    --          (or CSF_PluginUserDefaults) environment variable, or if they are not defined.
+    --
+    --          This allows to populate this additional resource manager
+    --          in run-time and to avoid using the above environment variables.
+    --          This map must be populated (using Resource_Manager::SetResource() method)
+    --          following syntax conventions of the Plugin file, for instance:
+    --          const Handle(Resource_Manager)& aPluginMap = Plugin::AdditionalPluginMap();
+    --          aPluginMap->SetResource ("ad696000-5b34-11d1-b5ba-00a0c9064368.Location", "TKStdSchema");
+
 end Plugin;