private bool MountInstallChunk(Layout.InstallChunk installChunk) { if (this._InstallChunkManagers.ContainsKey(installChunk.Id) == true) { return(true); } var manager = InstallChunkManager.Initialize(this.TryGetCryptoKey, installChunk, this._Sources); if (manager == null) { return(false); } this._InstallChunkManagers.Add(installChunk.Id, manager); return(true); }
internal static InstallChunkManager Initialize(TryGetCryptoKeyDelegate tryGetCryptoKey, Layout.InstallChunk installChunk, IEnumerable <DataSource> sources) { if (installChunk == null) { throw new ArgumentNullException("installChunk"); } var chunkLoaders = new List <ChunkLoader>(); foreach (var source in sources) { var chunkPath = Path.Combine(source.Path, Helpers.FilterPath(installChunk.InstallBundle)); var chunkLoader = ChunkLoader.Load(chunkPath); if (chunkLoader == null) { continue; } chunkLoaders.Add(chunkLoader); } return(new InstallChunkManager(tryGetCryptoKey, chunkLoaders)); }