diff options
| author | LukePulverenti Luke Pulverenti luke pulverenti <LukePulverenti Luke Pulverenti luke.pulverenti@gmail.com> | 2012-07-30 00:06:05 -0400 |
|---|---|---|
| committer | LukePulverenti Luke Pulverenti luke pulverenti <LukePulverenti Luke Pulverenti luke.pulverenti@gmail.com> | 2012-07-30 00:06:05 -0400 |
| commit | 882e20e9a5b05324ee75bb08ac09caec0034a9b4 (patch) | |
| tree | 419bb0b337cbc86fb9466d068e719dceceda2180 | |
| parent | 5d88dc857513344a4ecd1b337c1529250e5e2dfa (diff) | |
Added IProgress to Kernel.Init
| -rw-r--r-- | MediaBrowser.Common/Kernel/BaseKernel.cs | 21 | ||||
| -rw-r--r-- | MediaBrowser.Common/MediaBrowser.Common.csproj | 1 | ||||
| -rw-r--r-- | MediaBrowser.Common/Progress/TaskProgress.cs | 19 | ||||
| -rw-r--r-- | MediaBrowser.Program/Program.cs | 5 |
4 files changed, 40 insertions, 6 deletions
diff --git a/MediaBrowser.Common/Kernel/BaseKernel.cs b/MediaBrowser.Common/Kernel/BaseKernel.cs index 291c67156..09bb67218 100644 --- a/MediaBrowser.Common/Kernel/BaseKernel.cs +++ b/MediaBrowser.Common/Kernel/BaseKernel.cs @@ -11,13 +11,14 @@ using MediaBrowser.Common.Json; using MediaBrowser.Common.Logging;
using MediaBrowser.Common.Net;
using MediaBrowser.Common.Plugins;
+using MediaBrowser.Common.Progress;
namespace MediaBrowser.Common.Kernel
{
/// <summary>
/// Represents a shared base kernel for both the UI and server apps
/// </summary>
- public abstract class BaseKernel<TConfigurationType>
+ public abstract class BaseKernel<TConfigurationType> : IDisposable
where TConfigurationType : BaseApplicationConfiguration, new()
{
/// <summary>
@@ -76,12 +77,12 @@ namespace MediaBrowser.Common.Kernel Logger.LoggerInstance = new FileLogger(Path.Combine(ProgramDataPath, "Logs"));
}
- public virtual void Init()
+ public virtual void Init(IProgress<TaskProgress> progress)
{
ReloadConfiguration();
ReloadHttpServer();
-
+
ReloadComposableParts();
}
@@ -207,12 +208,17 @@ namespace MediaBrowser.Common.Kernel /// </summary>
private void ReloadHttpServer()
{
+ DisposeHttpServer();
+
+ HttpServer = new HttpServer("http://+:" + Configuration.HttpServerPortNumber + "/mediabrowser/");
+ }
+
+ private void DisposeHttpServer()
+ {
if (HttpServer != null)
{
HttpServer.Dispose();
}
-
- HttpServer = new HttpServer("http://+:" + Configuration.HttpServerPortNumber + "/mediabrowser/");
}
/// <summary>
@@ -234,5 +240,10 @@ namespace MediaBrowser.Common.Kernel return null;
}
+
+ public void Dispose()
+ {
+ DisposeHttpServer();
+ }
}
}
diff --git a/MediaBrowser.Common/MediaBrowser.Common.csproj b/MediaBrowser.Common/MediaBrowser.Common.csproj index 65c001889..53a1c7121 100644 --- a/MediaBrowser.Common/MediaBrowser.Common.csproj +++ b/MediaBrowser.Common/MediaBrowser.Common.csproj @@ -67,6 +67,7 @@ <Compile Include="Logging\Logger.cs" />
<Compile Include="Logging\LogRow.cs" />
<Compile Include="Plugins\BasePlugin.cs" />
+ <Compile Include="Progress\TaskProgress.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
diff --git a/MediaBrowser.Common/Progress/TaskProgress.cs b/MediaBrowser.Common/Progress/TaskProgress.cs new file mode 100644 index 000000000..78e817397 --- /dev/null +++ b/MediaBrowser.Common/Progress/TaskProgress.cs @@ -0,0 +1,19 @@ +
+namespace MediaBrowser.Common.Progress
+{
+ /// <summary>
+ /// Represents a generic progress class that can be used with IProgress
+ /// </summary>
+ public class TaskProgress
+ {
+ /// <summary>
+ /// Gets or sets the current completion percentage
+ /// </summary>
+ public decimal PercentComplete { get; set; }
+
+ /// <summary>
+ /// Gets or sets a description of the actions currently executing
+ /// </summary>
+ public string Description { get; set; }
+ }
+}
diff --git a/MediaBrowser.Program/Program.cs b/MediaBrowser.Program/Program.cs index ff7ad002f..a951ec7db 100644 --- a/MediaBrowser.Program/Program.cs +++ b/MediaBrowser.Program/Program.cs @@ -1,5 +1,6 @@ using System;
using MediaBrowser.Controller;
+using MediaBrowser.Common.Progress;
namespace MediaBrowser.Program
{
@@ -18,7 +19,9 @@ namespace MediaBrowser.Program Kernel kernel = new Kernel();
- kernel.Init();
+ Progress<TaskProgress> progress = new Progress<TaskProgress>();
+
+ kernel.Init(progress);
var time = DateTime.Now - now;
Console.WriteLine("Done in " + time.TotalSeconds + " seconds");
|
