Example #1
0
        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);
        }
Example #2
0
        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));
        }