Beispiel #1
0
        private InstallChunkManager(TryGetCryptoKeyDelegate tryGetCryptoKey, IEnumerable <ChunkLoader> chunkLoaders)
        {
            this._TryGetCryptoKey = tryGetCryptoKey;
            this._ChunkLoaders    = new List <ChunkLoader>();

            if (chunkLoaders != null)
            {
                this._ChunkLoaders.AddRange(chunkLoaders);
            }
        }
Beispiel #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));
        }