From 804115bf8d526477756828ff4ca632c351e03b90 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Mon, 8 Apr 2013 11:55:53 -0400 Subject: remove and/or delay unnecessary startup work --- .../Library/LibraryManager.cs | 86 +++++++++++++++++----- 1 file changed, 66 insertions(+), 20 deletions(-) (limited to 'MediaBrowser.Server.Implementations/Library/LibraryManager.cs') diff --git a/MediaBrowser.Server.Implementations/Library/LibraryManager.cs b/MediaBrowser.Server.Implementations/Library/LibraryManager.cs index 9bc47a025..a21b3e93e 100644 --- a/MediaBrowser.Server.Implementations/Library/LibraryManager.cs +++ b/MediaBrowser.Server.Implementations/Library/LibraryManager.cs @@ -7,6 +7,7 @@ using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Entities.Movies; using MediaBrowser.Controller.IO; using MediaBrowser.Controller.Library; +using MediaBrowser.Controller.Persistence; using MediaBrowser.Controller.Resolvers; using MediaBrowser.Controller.Sorting; using MediaBrowser.Model.Configuration; @@ -61,6 +62,12 @@ namespace MediaBrowser.Server.Implementations.Library /// The comparers. private IEnumerable Comparers { get; set; } + /// + /// Gets the active item repository + /// + /// The item repository. + public IItemRepository ItemRepository { get; set; } + #region LibraryChanged Event /// /// Fires whenever any validation routine adds or removes items. The added and removed items are properties of the args. @@ -95,12 +102,6 @@ namespace MediaBrowser.Server.Implementations.Library /// private readonly IUserManager _userManager; - /// - /// Gets or sets the kernel. - /// - /// The kernel. - private Kernel Kernel { get; set; } - /// /// Gets or sets the configuration manager. /// @@ -126,27 +127,25 @@ namespace MediaBrowser.Server.Implementations.Library } } - private ConcurrentDictionary _userRootFolders = + private readonly ConcurrentDictionary _userRootFolders = new ConcurrentDictionary(); - + /// /// Initializes a new instance of the class. /// - /// The kernel. /// The logger. /// The task manager. /// The user manager. /// The configuration manager. - public LibraryManager(Kernel kernel, ILogger logger, ITaskManager taskManager, IUserManager userManager, IServerConfigurationManager configurationManager) + public LibraryManager(ILogger logger, ITaskManager taskManager, IUserManager userManager, IServerConfigurationManager configurationManager) { - Kernel = kernel; _logger = logger; _taskManager = taskManager; _userManager = userManager; ConfigurationManager = configurationManager; ByReferenceItems = new ConcurrentDictionary(); - ConfigurationManager.ConfigurationUpdated += kernel_ConfigurationUpdated; + ConfigurationManager.ConfigurationUpdated += ConfigurationUpdated; RecordConfigurationValues(configurationManager.Configuration); } @@ -159,7 +158,11 @@ namespace MediaBrowser.Server.Implementations.Library /// The resolvers. /// The intro providers. /// The item comparers. - public void AddParts(IEnumerable rules, IEnumerable pluginFolders, IEnumerable resolvers, IEnumerable introProviders, IEnumerable itemComparers) + public void AddParts(IEnumerable rules, + IEnumerable pluginFolders, + IEnumerable resolvers, + IEnumerable introProviders, + IEnumerable itemComparers) { EntityResolutionIgnoreRules = rules; PluginFolderCreators = pluginFolders; @@ -212,11 +215,11 @@ namespace MediaBrowser.Server.Implementations.Library } /// - /// Handles the ConfigurationUpdated event of the kernel control. + /// Configurations the updated. /// - /// The source of the event. - /// The instance containing the event data. - void kernel_ConfigurationUpdated(object sender, EventArgs e) + /// The sender. + /// The instance containing the event data. + void ConfigurationUpdated(object sender, EventArgs e) { var config = ConfigurationManager.Configuration; @@ -476,7 +479,7 @@ namespace MediaBrowser.Server.Implementations.Library public AggregateFolder CreateRootFolder() { var rootFolderPath = ConfigurationManager.ApplicationPaths.RootFolderPath; - var rootFolder = Kernel.ItemRepository.RetrieveItem(rootFolderPath.GetMBId(typeof(AggregateFolder))) as AggregateFolder ?? (AggregateFolder)ResolvePath(rootFolderPath); + var rootFolder = RetrieveItem(rootFolderPath.GetMBId(typeof(AggregateFolder))) as AggregateFolder ?? (AggregateFolder)ResolvePath(rootFolderPath); // Add in the plug-in folders foreach (var child in PluginFolderCreators) @@ -494,7 +497,7 @@ namespace MediaBrowser.Server.Implementations.Library /// UserRootFolder. public UserRootFolder GetUserRootFolder(string userRootPath) { - return _userRootFolders.GetOrAdd(userRootPath, key => Kernel.ItemRepository.RetrieveItem(userRootPath.GetMBId(typeof(UserRootFolder))) as UserRootFolder ?? (UserRootFolder)ResolvePath(userRootPath)); + return _userRootFolders.GetOrAdd(userRootPath, key => RetrieveItem(userRootPath.GetMBId(typeof(UserRootFolder))) as UserRootFolder ?? (UserRootFolder)ResolvePath(userRootPath)); } /// @@ -639,7 +642,7 @@ namespace MediaBrowser.Server.Implementations.Library var id = path.GetMBId(typeof(T)); - var item = Kernel.ItemRepository.RetrieveItem(id) as T; + var item = RetrieveItem(id) as T; if (item == null) { item = new T @@ -899,5 +902,48 @@ namespace MediaBrowser.Server.Implementations.Library return comparer; } + + /// + /// Saves the item. + /// + /// The item. + /// The cancellation token. + /// Task. + public Task SaveItem(BaseItem item, CancellationToken cancellationToken) + { + return ItemRepository.SaveItem(item, cancellationToken); + } + + /// + /// Retrieves the item. + /// + /// The id. + /// Task{BaseItem}. + public BaseItem RetrieveItem(Guid id) + { + return ItemRepository.RetrieveItem(id); + } + + /// + /// Saves the children. + /// + /// The id. + /// The children. + /// The cancellation token. + /// Task. + public Task SaveChildren(Guid id, IEnumerable children, CancellationToken cancellationToken) + { + return ItemRepository.SaveChildren(id, children, cancellationToken); + } + + /// + /// Retrieves the children. + /// + /// The parent. + /// IEnumerable{BaseItem}. + public IEnumerable RetrieveChildren(Folder parent) + { + return ItemRepository.RetrieveChildren(parent); + } } } -- cgit v1.2.3