1
0
mirror of synced 2024-11-15 01:33:51 +00:00
PettingZoo/PettingZoo.Tapeti/AssemblyLoader/FilePackageAssemblies.cs
Mark van Renswoude 133adf205c WIP: generate examples from Tapeti message classes from NuGet feeds
- Implementation of assembly/nuget package selection UI
- Actual example generation needs more work
2021-12-31 18:48:04 +01:00

46 lines
1.1 KiB
C#

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
namespace PettingZoo.Tapeti.AssemblyLoader
{
public class FilePackageAssemblies : IPackageAssemblies
{
private readonly string[] filenames;
public FilePackageAssemblies(params string[] filenames)
{
this.filenames = filenames;
}
public Task<IEnumerable<IPackageAssembly>> GetAssemblies(IProgress<int> progress, CancellationToken cancellationToken)
{
return Task.FromResult(filenames.Select(f => (IPackageAssembly)new FilePackageAssembly(f)));
}
private class FilePackageAssembly : IPackageAssembly
{
private readonly string filename;
public FilePackageAssembly(string filename)
{
this.filename = filename;
}
public Stream GetStream()
{
return new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
}
}
}
}