using System.Diagnostics;
namespace ZB.MOM.WW.MxGateway.Server.Workers;
///
/// Wraps a System.Diagnostics.Process as an IWorkerProcess.
///
internal sealed class SystemWorkerProcess(Process process) : IWorkerProcess
{
///
public int Id => process.Id;
///
public bool HasExited => process.HasExited;
///
public int? ExitCode => process.HasExited ? process.ExitCode : null;
///
public async ValueTask WaitForExitAsync(CancellationToken cancellationToken)
{
await process.WaitForExitAsync(cancellationToken).ConfigureAwait(false);
}
///
public void Kill(bool entireProcessTree)
{
process.Kill(entireProcessTree);
}
///
public void Dispose()
{
process.Dispose();
}
}