Add method for plugin teardown/unloading

integration
BlueWall 2012-04-09 21:59:21 -04:00
parent 35fa8b454d
commit 0838c5288f
1 changed files with 14 additions and 6 deletions

View File

@ -39,7 +39,7 @@ using log4net;
using Ux = OpenSim.Services.IntegrationService.IUtils; using Ux = OpenSim.Services.IntegrationService.IUtils;
[assembly:AddinRoot ("IntegrationService", "1.0")] [assembly:AddinRoot ("IntegrationService", "1.1")]
namespace OpenSim.Services.IntegrationService namespace OpenSim.Services.IntegrationService
{ {
@ -47,6 +47,7 @@ namespace OpenSim.Services.IntegrationService
public interface IntegrationPlugin public interface IntegrationPlugin
{ {
void Init(IConfigSource PluginConfig); void Init(IConfigSource PluginConfig);
void Unload();
string Name{ get; } string Name{ get; }
string ConfigName { get; } string ConfigName { get; }
string DefaultConfig { get; } string DefaultConfig { get; }
@ -95,10 +96,6 @@ namespace OpenSim.Services.IntegrationService
if(String.IsNullOrEmpty(m_IntegrationConfigLoc)) if(String.IsNullOrEmpty(m_IntegrationConfigLoc))
m_log.Error("[INTEGRATION SERVICE]: No IntegrationConfig defined in the Robust.ini"); m_log.Error("[INTEGRATION SERVICE]: No IntegrationConfig defined in the Robust.ini");
AddinManager.AddinLoaded += on_addinloaded_;
AddinManager.AddinLoadError += on_addinloaderror_;
AddinManager.AddinUnloaded += HandleAddinManagerAddinUnloaded;
AddinManager.AddinEngine.ExtensionChanged += HandleAddinManagerAddinEngineExtensionChanged;
m_Server = server; m_Server = server;
m_IntegrationServerConfig = config.Configs["IntegrationService"]; m_IntegrationServerConfig = config.Configs["IntegrationService"];
@ -108,12 +105,23 @@ namespace OpenSim.Services.IntegrationService
return; return;
} }
suppress_console_output_(true);
AddinManager.Initialize (RegistryLocation); AddinManager.Initialize (RegistryLocation);
suppress_console_output_(true);
AddinManager.AddinLoaded += on_addinloaded_;
AddinManager.AddinLoadError += on_addinloaderror_;
AddinManager.AddinUnloaded += HandleAddinManagerAddinUnloaded;
AddinManager.AddinEngine.ExtensionChanged += HandleAddinManagerAddinEngineExtensionChanged;
AddinManager.Registry.Update (); AddinManager.Registry.Update ();
suppress_console_output_(false); suppress_console_output_(false);
AddinManager.AddExtensionNodeHandler ("/OpenSim/IntegrationService", OnExtensionChanged); AddinManager.AddExtensionNodeHandler ("/OpenSim/IntegrationService", OnExtensionChanged);