This commit implements an initial WASI C API that can be used to instantiate and configure a WASI instance from C. This also implements a `WasiBuilder` for the C# API enabling .NET hosts to bind to Wasmtime's WASI implementation.
44 lines
974 B
C#
44 lines
974 B
C#
using System;
|
|
using System.IO;
|
|
using Wasmtime;
|
|
|
|
namespace Wasmtime.Tests
|
|
{
|
|
public abstract class ModuleFixture : IDisposable
|
|
{
|
|
public ModuleFixture()
|
|
{
|
|
Engine = new Engine();
|
|
Store = Engine.CreateStore();
|
|
Module = Store.CreateModule(Path.Combine("Modules", ModuleFileName));
|
|
}
|
|
|
|
public void Dispose()
|
|
{
|
|
if (!(Module is null))
|
|
{
|
|
Module.Dispose();
|
|
Module = null;
|
|
}
|
|
|
|
if (!(Store is null))
|
|
{
|
|
Store.Dispose();
|
|
Store = null;
|
|
}
|
|
|
|
if (!(Engine is null))
|
|
{
|
|
Engine.Dispose();
|
|
Engine = null;
|
|
}
|
|
}
|
|
|
|
public Engine Engine { get; set; }
|
|
public Store Store { get; set; }
|
|
public Module Module { get; set; }
|
|
|
|
protected abstract string ModuleFileName { get; }
|
|
}
|
|
}
|