aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLukePulverenti Luke Pulverenti luke pulverenti <LukePulverenti Luke Pulverenti luke.pulverenti@gmail.com>2012-09-06 10:18:54 -0400
committerLukePulverenti Luke Pulverenti luke pulverenti <LukePulverenti Luke Pulverenti luke.pulverenti@gmail.com>2012-09-06 10:18:54 -0400
commit507beb76f634eb5d3e84056d9c635bfc9188f41b (patch)
tree8d733c18cd68e3ff167f3e7bae55f4bc7a169b20
parent908695d88ab957ba81f239d95e87e67f4c925f3d (diff)
Added context-sensitive init/dispose methods for plugins
-rw-r--r--MediaBrowser.Api/Plugin.cs2
-rw-r--r--MediaBrowser.Common/Plugins/BasePlugin.cs44
-rw-r--r--MediaBrowser.TV/Plugin.cs4
3 files changed, 43 insertions, 7 deletions
diff --git a/MediaBrowser.Api/Plugin.cs b/MediaBrowser.Api/Plugin.cs
index 7005b8f8a..e83f366df 100644
--- a/MediaBrowser.Api/Plugin.cs
+++ b/MediaBrowser.Api/Plugin.cs
@@ -18,7 +18,7 @@ namespace MediaBrowser.Api
get { return "Media Browser API"; }
}
- protected override void InitializeInternal()
+ protected override void InitializeOnServer()
{
var httpServer = Kernel.Instance.HttpServer;
diff --git a/MediaBrowser.Common/Plugins/BasePlugin.cs b/MediaBrowser.Common/Plugins/BasePlugin.cs
index 55f092666..705e15f17 100644
--- a/MediaBrowser.Common/Plugins/BasePlugin.cs
+++ b/MediaBrowser.Common/Plugins/BasePlugin.cs
@@ -184,22 +184,58 @@ namespace MediaBrowser.Common.Plugins
if (Enabled)
{
- InitializeInternal();
+ if (kernel.KernelContext == KernelContext.Server)
+ {
+ InitializeOnServer();
+ }
+ else if (kernel.KernelContext == KernelContext.UI)
+ {
+ InitializeInUI();
+ }
}
}
}
/// <summary>
- /// Starts the plugin.
+ /// Starts the plugin on the server
+ /// </summary>
+ protected virtual void InitializeOnServer()
+ {
+ }
+
+ /// <summary>
+ /// Starts the plugin in the UI
/// </summary>
- protected virtual void InitializeInternal()
+ protected virtual void InitializeInUI()
{
}
/// <summary>
/// Disposes the plugins. Undos all actions performed during Init.
/// </summary>
- public virtual void Dispose()
+ public void Dispose()
+ {
+ if (Context == KernelContext.Server)
+ {
+ DisposeOnServer();
+ }
+ else if (Context == KernelContext.UI)
+ {
+ InitializeInUI();
+ }
+ }
+
+ /// <summary>
+ /// Disposes the plugin on the server
+ /// </summary>
+ protected virtual void DisposeOnServer()
+ {
+ }
+
+ /// <summary>
+ /// Disposes the plugin in the UI
+ /// </summary>
+ protected virtual void DisposeInUI()
{
}
diff --git a/MediaBrowser.TV/Plugin.cs b/MediaBrowser.TV/Plugin.cs
index 75a108b2d..c4ae87cae 100644
--- a/MediaBrowser.TV/Plugin.cs
+++ b/MediaBrowser.TV/Plugin.cs
@@ -16,12 +16,12 @@ namespace MediaBrowser.TV
get { return "TV"; }
}
- protected override void InitializeInternal()
+ protected override void InitializeOnServer()
{
Kernel.Instance.ItemController.PreBeginResolvePath += ItemController_PreBeginResolvePath;
}
- public override void Dispose()
+ protected override void DisposeOnServer()
{
Kernel.Instance.ItemController.PreBeginResolvePath -= ItemController_PreBeginResolvePath;
}