aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Framework/PluginLoader.cs
diff options
context:
space:
mode:
authorJustin Clarke Casey2008-10-17 16:44:05 +0000
committerJustin Clarke Casey2008-10-17 16:44:05 +0000
commit138bcf6fffdb16e3962c03f995aff7cda15a7800 (patch)
tree0e229194378b71199b999fc126b3775b53f500ff /OpenSim/Framework/PluginLoader.cs
parent* Adds a lot of stability and performance to the physics engine. The avata... (diff)
downloadopensim-SC_OLD-138bcf6fffdb16e3962c03f995aff7cda15a7800.zip
opensim-SC_OLD-138bcf6fffdb16e3962c03f995aff7cda15a7800.tar.gz
opensim-SC_OLD-138bcf6fffdb16e3962c03f995aff7cda15a7800.tar.bz2
opensim-SC_OLD-138bcf6fffdb16e3962c03f995aff7cda15a7800.tar.xz
* Apply a modified version of http://opensimulator.org/mantis/view.php?id=2290
* This allows multiple user profile providers to be specified in OpenSim.ini separated by commas * If multiple providers are specified then a request for a user profile will query each in turn until the profile is either found or all have been queried * Unfortunately I don't believe this order can currently be specified, which if true is something that will need to be fixed. * Thanks to smeans for the original patch.
Diffstat (limited to '')
-rw-r--r--OpenSim/Framework/PluginLoader.cs37
1 files changed, 31 insertions, 6 deletions
diff --git a/OpenSim/Framework/PluginLoader.cs b/OpenSim/Framework/PluginLoader.cs
index ab4e217..a39f787 100644
--- a/OpenSim/Framework/PluginLoader.cs
+++ b/OpenSim/Framework/PluginLoader.cs
@@ -342,20 +342,45 @@ namespace OpenSim.Framework
342 } 342 }
343 343
344 /// <summary> 344 /// <summary>
345 /// Filters out which plugin to load based on its "Provider", which is name given by in the addin.xml 345 /// Filters out which plugin to load based on its the plugin name or names given. Plugin names are contained in
346 /// their addin.xml
346 /// </summary> 347 /// </summary>
347 public class PluginProviderFilter : IPluginFilter 348 public class PluginProviderFilter : IPluginFilter
348 { 349 {
349 private string provider; 350 private string[] m_filters;
350 351
351 public PluginProviderFilter (string p) 352 /// <summary>
353 /// Constructor.
354 /// </summary>
355 /// <param name="p">
356 /// Plugin name or names on which to filter. Multiple names should be separated by commas.
357 /// </param>
358 public PluginProviderFilter(string p)
352 { 359 {
353 provider = p; 360 m_filters = p.Split(',');
361
362 for (int i = 0; i < m_filters.Length; i++)
363 {
364 m_filters[i] = m_filters[i].Trim();
365 }
354 } 366 }
355 367
368 /// <summary>
369 /// Apply this filter to the given plugin.
370 /// </summary>
371 /// <param name="plugin"></param>
372 /// <returns>true if the plugin's name matched one of the filters, false otherwise.</returns>
356 public bool Apply (PluginExtensionNode plugin) 373 public bool Apply (PluginExtensionNode plugin)
357 { 374 {
358 return (plugin.Provider == provider); 375 for (int i = 0; i < m_filters.Length; i++)
376 {
377 if (m_filters[i] == plugin.Provider)
378 {
379 return true;
380 }
381 }
382
383 return false;
359 } 384 }
360 } 385 }
361} 386}