aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Common/Kernel
diff options
context:
space:
mode:
authorLukePulverenti <luke.pulverenti@gmail.com>2013-02-21 20:26:35 -0500
committerLukePulverenti <luke.pulverenti@gmail.com>2013-02-21 20:26:35 -0500
commitfdafa596832eae13cebcf5bbe5fa867f7ba068f0 (patch)
treeeee891c8f11564d4b14868d11f4758f243c112ce /MediaBrowser.Common/Kernel
parent931c0ea455161b8ee00005a0ffd1f8afab41f7bb (diff)
Removed System.Windows.Forms dependancy from Common. Almost done removing NLog dependancy.
Diffstat (limited to 'MediaBrowser.Common/Kernel')
-rw-r--r--MediaBrowser.Common/Kernel/BaseKernel.cs82
-rw-r--r--MediaBrowser.Common/Kernel/BasePeriodicWebSocketListener.cs5
-rw-r--r--MediaBrowser.Common/Kernel/IApplicationHost.cs19
-rw-r--r--MediaBrowser.Common/Kernel/IKernel.cs9
4 files changed, 42 insertions, 73 deletions
diff --git a/MediaBrowser.Common/Kernel/BaseKernel.cs b/MediaBrowser.Common/Kernel/BaseKernel.cs
index 2b2063b55..a4ac70749 100644
--- a/MediaBrowser.Common/Kernel/BaseKernel.cs
+++ b/MediaBrowser.Common/Kernel/BaseKernel.cs
@@ -9,9 +9,6 @@ using MediaBrowser.Common.Serialization;
using MediaBrowser.Model.Configuration;
using MediaBrowser.Model.Logging;
using MediaBrowser.Model.System;
-using NLog;
-using NLog.Config;
-using NLog.Targets;
using System;
using System.Collections.Generic;
using System.ComponentModel.Composition;
@@ -40,11 +37,6 @@ namespace MediaBrowser.Common.Kernel
/// </summary>
public event EventHandler HasPendingRestartChanged;
- /// <summary>
- /// Notifiies the containing application that a restart has been requested
- /// </summary>
- public event EventHandler ApplicationRestartRequested;
-
#region ConfigurationUpdated Event
/// <summary>
/// Occurs when [configuration updated].
@@ -342,6 +334,12 @@ namespace MediaBrowser.Common.Kernel
protected ILogger Logger { get; private set; }
/// <summary>
+ /// Gets or sets the application host.
+ /// </summary>
+ /// <value>The application host.</value>
+ protected IApplicationHost ApplicationHost { get; private set; }
+
+ /// <summary>
/// Gets the assemblies.
/// </summary>
/// <value>The assemblies.</value>
@@ -350,10 +348,17 @@ namespace MediaBrowser.Common.Kernel
/// <summary>
/// Initializes a new instance of the <see cref="BaseKernel{TApplicationPathsType}" /> class.
/// </summary>
+ /// <param name="appHost">The app host.</param>
/// <param name="isoManager">The iso manager.</param>
/// <param name="logger">The logger.</param>
- protected BaseKernel(IIsoManager isoManager, ILogger logger)
+ /// <exception cref="System.ArgumentNullException">isoManager</exception>
+ protected BaseKernel(IApplicationHost appHost, IIsoManager isoManager, ILogger logger)
{
+ if (appHost == null)
+ {
+ throw new ArgumentNullException("appHost");
+ }
+
if (isoManager == null)
{
throw new ArgumentNullException("isoManager");
@@ -363,7 +368,8 @@ namespace MediaBrowser.Common.Kernel
{
throw new ArgumentNullException("logger");
}
-
+
+ ApplicationHost = appHost;
IsoManager = isoManager;
Logger = logger;
}
@@ -440,43 +446,12 @@ namespace MediaBrowser.Common.Kernel
/// </summary>
public void ReloadLogger()
{
- DisposeLogger();
-
- LogFilePath = Path.Combine(ApplicationPaths.LogDirectoryPath, KernelContext + "-" + DateTime.Now.Ticks + ".log");
-
- var logFile = new FileTarget();
-
- logFile.FileName = LogFilePath;
- logFile.Layout = "${longdate}, ${level}, ${logger}, ${message}";
-
- AddLogTarget(logFile, "ApplicationLogFile");
-
+ ApplicationHost.ReloadLogger();
+
OnLoggerLoaded();
}
/// <summary>
- /// Adds the log target.
- /// </summary>
- /// <param name="target">The target.</param>
- /// <param name="name">The name.</param>
- private void AddLogTarget(Target target, string name)
- {
- var config = LogManager.Configuration;
-
- config.RemoveTarget(name);
-
- target.Name = name;
- config.AddTarget(name, target);
-
- var level = Configuration.EnableDebugLevelLogging ? LogLevel.Debug : LogLevel.Info;
-
- var rule = new LoggingRule("*", level, target);
- config.LoggingRules.Add(rule);
-
- LogManager.Configuration = config;
- }
-
- /// <summary>
/// Uses MEF to locate plugins
/// Subclasses can use this to locate types within plugins
/// </summary>
@@ -588,7 +563,7 @@ namespace MediaBrowser.Common.Kernel
foreach (var task in ScheduledTasks)
{
- task.Initialize(this);
+ task.Initialize(this, Logger);
}
// Start-up each plugin
@@ -708,23 +683,6 @@ namespace MediaBrowser.Common.Kernel
}
/// <summary>
- /// Disposes all logger resources
- /// </summary>
- private void DisposeLogger()
- {
- // Dispose all current loggers
- var listeners = Trace.Listeners.OfType<TraceListener>().ToList();
-
- Trace.Listeners.Clear();
-
- foreach (var listener in listeners)
- {
- listener.Dispose();
- }
-
- }
-
- /// <summary>
/// Gets the current application version
/// </summary>
/// <value>The application version.</value>
@@ -759,7 +717,7 @@ namespace MediaBrowser.Common.Kernel
{
Logger.Info("Restarting the application");
- EventHelper.QueueEventIfNotNull(ApplicationRestartRequested, this, EventArgs.Empty, Logger);
+ ApplicationHost.Restart();
}
/// <summary>
diff --git a/MediaBrowser.Common/Kernel/BasePeriodicWebSocketListener.cs b/MediaBrowser.Common/Kernel/BasePeriodicWebSocketListener.cs
index f431c5463..11ffa8d6c 100644
--- a/MediaBrowser.Common/Kernel/BasePeriodicWebSocketListener.cs
+++ b/MediaBrowser.Common/Kernel/BasePeriodicWebSocketListener.cs
@@ -1,12 +1,11 @@
-using MediaBrowser.Common.Logging;
-using MediaBrowser.Common.Net;
+using MediaBrowser.Common.Net;
+using MediaBrowser.Model.Logging;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.WebSockets;
using System.Threading;
using System.Threading.Tasks;
-using MediaBrowser.Model.Logging;
namespace MediaBrowser.Common.Kernel
{
diff --git a/MediaBrowser.Common/Kernel/IApplicationHost.cs b/MediaBrowser.Common/Kernel/IApplicationHost.cs
new file mode 100644
index 000000000..c1b63c261
--- /dev/null
+++ b/MediaBrowser.Common/Kernel/IApplicationHost.cs
@@ -0,0 +1,19 @@
+
+namespace MediaBrowser.Common.Kernel
+{
+ /// <summary>
+ /// An interface to be implemented by the applications hosting a kernel
+ /// </summary>
+ public interface IApplicationHost
+ {
+ /// <summary>
+ /// Restarts this instance.
+ /// </summary>
+ void Restart();
+
+ /// <summary>
+ /// Reloads the logger.
+ /// </summary>
+ void ReloadLogger();
+ }
+}
diff --git a/MediaBrowser.Common/Kernel/IKernel.cs b/MediaBrowser.Common/Kernel/IKernel.cs
index 5358f3ab0..c0e650fc7 100644
--- a/MediaBrowser.Common/Kernel/IKernel.cs
+++ b/MediaBrowser.Common/Kernel/IKernel.cs
@@ -1,6 +1,4 @@
-using MediaBrowser.Common.IO;
-using MediaBrowser.Common.Net;
-using MediaBrowser.Common.Net.Handlers;
+using MediaBrowser.Common.Net;
using MediaBrowser.Common.Plugins;
using MediaBrowser.Common.ScheduledTasks;
using MediaBrowser.Common.Serialization;
@@ -19,11 +17,6 @@ namespace MediaBrowser.Common.Kernel
public interface IKernel
{
/// <summary>
- /// Occurs when [application restart requested].
- /// </summary>
- event EventHandler ApplicationRestartRequested;
-
- /// <summary>
/// Gets the application paths.
/// </summary>
/// <value>The application paths.</value>