mirror of
https://github.com/logos-storage/logos-storage-nim-cs-dist-tests.git
synced 2026-01-02 21:43:08 +00:00
38 lines
1006 B
C#
38 lines
1006 B
C#
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];
|
|
}
|
|
|
|
public void StopAll()
|
|
{
|
|
var pcs = processControlMap.Values.ToArray();
|
|
processControlMap.Clear();
|
|
|
|
foreach (var c in pcs) c.Stop(waitTillStopped: true);
|
|
}
|
|
}
|
|
}
|