Added progress reporting to kernel.init

pull/702/head
LukePulverenti Luke Pulverenti luke pulverenti 12 years ago
parent c3d835cfc5
commit 00545b5543

@ -45,17 +45,20 @@ namespace MediaBrowser.Common.Kernel
public BaseKernel()
{
}
public virtual void Init(IProgress<TaskProgress> progress)
{
ReloadLogger();
progress.Report(new TaskProgress() { Description = "Loading configuration", PercentComplete = 0 });
ReloadConfiguration();
progress.Report(new TaskProgress() { Description = "Starting Http server", PercentComplete = 5 });
ReloadHttpServer();
progress.Report(new TaskProgress() { Description = "Loading Plugins", PercentComplete = 10 });
ReloadComposableParts();
}

@ -16,6 +16,7 @@ using MediaBrowser.Controller.Resolvers;
using MediaBrowser.Model.Configuration;
using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Users;
using MediaBrowser.Model.Progress;
namespace MediaBrowser.Controller
{
@ -37,13 +38,13 @@ namespace MediaBrowser.Controller
return ApplicationPaths.RootFolderPath;
}
}
/// <summary>
/// Gets the list of currently registered entity resolvers
/// </summary>
[ImportMany(typeof(IBaseItemResolver))]
public IEnumerable<IBaseItemResolver> EntityResolvers { get; private set; }
/// <summary>
/// Creates a kernal based on a Data path, which is akin to our current programdata path
/// </summary>
@ -59,6 +60,19 @@ namespace MediaBrowser.Controller
ItemController.BeginResolvePath += ItemController_BeginResolvePath;
}
public override void Init(IProgress<TaskProgress> progress)
{
base.Init(progress);
progress.Report(new TaskProgress() { Description = "Loading Users", PercentComplete = 15 });
ReloadUsers();
progress.Report(new TaskProgress() { Description = "Loading Media Library", PercentComplete = 20 });
ReloadRoot();
progress.Report(new TaskProgress() { Description = "Loading Complete", PercentComplete = 100 });
}
protected override void OnComposablePartsLoaded()
{
List<IBaseItemResolver> resolvers = EntityResolvers.ToList();
@ -72,10 +86,6 @@ namespace MediaBrowser.Controller
// The base class will start up all the plugins
base.OnComposablePartsLoaded();
// Get users from users folder
// Load root media folder
Parallel.Invoke(ReloadUsers, ReloadRoot);
}
/// <summary>
@ -149,7 +159,7 @@ namespace MediaBrowser.Controller
{
return Configuration.DefaultUserConfiguration;
}
public void ReloadItem(BaseItem item)
{
Folder folder = item as Folder;

Loading…
Cancel
Save