From 00545b5543374c7aaea39ee214dc11c298f71068 Mon Sep 17 00:00:00 2001 From: LukePulverenti Luke Pulverenti luke pulverenti Date: Sat, 11 Aug 2012 15:49:45 -0400 Subject: [PATCH] Added progress reporting to kernel.init --- MediaBrowser.Common/Kernel/BaseKernel.cs | 5 ++++- MediaBrowser.Controller/Kernel.cs | 24 +++++++++++++++++------- 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/MediaBrowser.Common/Kernel/BaseKernel.cs b/MediaBrowser.Common/Kernel/BaseKernel.cs index 02de6dee67..6e24fcfc27 100644 --- a/MediaBrowser.Common/Kernel/BaseKernel.cs +++ b/MediaBrowser.Common/Kernel/BaseKernel.cs @@ -45,17 +45,20 @@ namespace MediaBrowser.Common.Kernel public BaseKernel() { - + } public virtual void Init(IProgress 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(); } diff --git a/MediaBrowser.Controller/Kernel.cs b/MediaBrowser.Controller/Kernel.cs index 9f9ce924d2..7841a2a5ee 100644 --- a/MediaBrowser.Controller/Kernel.cs +++ b/MediaBrowser.Controller/Kernel.cs @@ -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; } } - + /// /// Gets the list of currently registered entity resolvers /// [ImportMany(typeof(IBaseItemResolver))] public IEnumerable EntityResolvers { get; private set; } - + /// /// Creates a kernal based on a Data path, which is akin to our current programdata path /// @@ -59,6 +60,19 @@ namespace MediaBrowser.Controller ItemController.BeginResolvePath += ItemController_BeginResolvePath; } + public override void Init(IProgress 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 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); } /// @@ -149,7 +159,7 @@ namespace MediaBrowser.Controller { return Configuration.DefaultUserConfiguration; } - + public void ReloadItem(BaseItem item) { Folder folder = item as Folder;