Added IProgress to Kernel.Init
This commit is contained in:
parent
5d88dc8575
commit
882e20e9a5
|
@ -11,13 +11,14 @@ using MediaBrowser.Common.Json;
|
||||||
using MediaBrowser.Common.Logging;
|
using MediaBrowser.Common.Logging;
|
||||||
using MediaBrowser.Common.Net;
|
using MediaBrowser.Common.Net;
|
||||||
using MediaBrowser.Common.Plugins;
|
using MediaBrowser.Common.Plugins;
|
||||||
|
using MediaBrowser.Common.Progress;
|
||||||
|
|
||||||
namespace MediaBrowser.Common.Kernel
|
namespace MediaBrowser.Common.Kernel
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Represents a shared base kernel for both the UI and server apps
|
/// Represents a shared base kernel for both the UI and server apps
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public abstract class BaseKernel<TConfigurationType>
|
public abstract class BaseKernel<TConfigurationType> : IDisposable
|
||||||
where TConfigurationType : BaseApplicationConfiguration, new()
|
where TConfigurationType : BaseApplicationConfiguration, new()
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -76,12 +77,12 @@ namespace MediaBrowser.Common.Kernel
|
||||||
Logger.LoggerInstance = new FileLogger(Path.Combine(ProgramDataPath, "Logs"));
|
Logger.LoggerInstance = new FileLogger(Path.Combine(ProgramDataPath, "Logs"));
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual void Init()
|
public virtual void Init(IProgress<TaskProgress> progress)
|
||||||
{
|
{
|
||||||
ReloadConfiguration();
|
ReloadConfiguration();
|
||||||
|
|
||||||
ReloadHttpServer();
|
ReloadHttpServer();
|
||||||
|
|
||||||
ReloadComposableParts();
|
ReloadComposableParts();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -206,13 +207,18 @@ namespace MediaBrowser.Common.Kernel
|
||||||
/// Restarts the Http Server, or starts it if not currently running
|
/// Restarts the Http Server, or starts it if not currently running
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private void ReloadHttpServer()
|
private void ReloadHttpServer()
|
||||||
|
{
|
||||||
|
DisposeHttpServer();
|
||||||
|
|
||||||
|
HttpServer = new HttpServer("http://+:" + Configuration.HttpServerPortNumber + "/mediabrowser/");
|
||||||
|
}
|
||||||
|
|
||||||
|
private void DisposeHttpServer()
|
||||||
{
|
{
|
||||||
if (HttpServer != null)
|
if (HttpServer != null)
|
||||||
{
|
{
|
||||||
HttpServer.Dispose();
|
HttpServer.Dispose();
|
||||||
}
|
}
|
||||||
|
|
||||||
HttpServer = new HttpServer("http://+:" + Configuration.HttpServerPortNumber + "/mediabrowser/");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -234,5 +240,10 @@ namespace MediaBrowser.Common.Kernel
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void Dispose()
|
||||||
|
{
|
||||||
|
DisposeHttpServer();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -67,6 +67,7 @@
|
||||||
<Compile Include="Logging\Logger.cs" />
|
<Compile Include="Logging\Logger.cs" />
|
||||||
<Compile Include="Logging\LogRow.cs" />
|
<Compile Include="Logging\LogRow.cs" />
|
||||||
<Compile Include="Plugins\BasePlugin.cs" />
|
<Compile Include="Plugins\BasePlugin.cs" />
|
||||||
|
<Compile Include="Progress\TaskProgress.cs" />
|
||||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|
19
MediaBrowser.Common/Progress/TaskProgress.cs
Normal file
19
MediaBrowser.Common/Progress/TaskProgress.cs
Normal file
|
@ -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; }
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,5 +1,6 @@
|
||||||
using System;
|
using System;
|
||||||
using MediaBrowser.Controller;
|
using MediaBrowser.Controller;
|
||||||
|
using MediaBrowser.Common.Progress;
|
||||||
|
|
||||||
namespace MediaBrowser.Program
|
namespace MediaBrowser.Program
|
||||||
{
|
{
|
||||||
|
@ -18,7 +19,9 @@ namespace MediaBrowser.Program
|
||||||
|
|
||||||
Kernel kernel = new Kernel();
|
Kernel kernel = new Kernel();
|
||||||
|
|
||||||
kernel.Init();
|
Progress<TaskProgress> progress = new Progress<TaskProgress>();
|
||||||
|
|
||||||
|
kernel.Init(progress);
|
||||||
|
|
||||||
var time = DateTime.Now - now;
|
var time = DateTime.Now - now;
|
||||||
Console.WriteLine("Done in " + time.TotalSeconds + " seconds");
|
Console.WriteLine("Done in " + time.TotalSeconds + " seconds");
|
||||||
|
|
Loading…
Reference in New Issue
Block a user