2025-01-27 10:22:34 +01:00
|
|
|
|
using CodexClient;
|
|
|
|
|
|
|
|
|
|
|
|
namespace CodexPlugin
|
|
|
|
|
|
{
|
|
|
|
|
|
public class ProcessControlMap : IProcessControlFactory
|
|
|
|
|
|
{
|
|
|
|
|
|
private readonly Dictionary<string, IProcessControl> processControlMap = new Dictionary<string, IProcessControl>();
|
|
|
|
|
|
|
|
|
|
|
|
public void Add(ICodexInstance instance, IProcessControl control)
|
|
|
|
|
|
{
|
|
|
|
|
|
processControlMap.Add(instance.Name, control);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void Remove(ICodexInstance instance)
|
|
|
|
|
|
{
|
|
|
|
|
|
processControlMap.Remove(instance.Name);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public IProcessControl CreateProcessControl(ICodexInstance instance)
|
|
|
|
|
|
{
|
|
|
|
|
|
return Get(instance);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public IProcessControl Get(ICodexInstance instance)
|
|
|
|
|
|
{
|
|
|
|
|
|
return processControlMap[instance.Name];
|
|
|
|
|
|
}
|
2025-01-28 11:21:47 +01:00
|
|
|
|
|
|
|
|
|
|
public void StopAll()
|
|
|
|
|
|
{
|
|
|
|
|
|
var pcs = processControlMap.Values.ToArray();
|
|
|
|
|
|
processControlMap.Clear();
|
|
|
|
|
|
|
|
|
|
|
|
foreach (var c in pcs) c.Stop(waitTillStopped: true);
|
|
|
|
|
|
}
|
2025-01-27 10:22:34 +01:00
|
|
|
|
}
|
|
|
|
|
|
}
|