38 lines
1.0 KiB
C#
Raw Permalink Normal View History

using LogosStorageClient;
2025-01-27 10:22:34 +01:00
namespace StoragePlugin
2025-01-27 10:22:34 +01:00
{
public class ProcessControlMap : IProcessControlFactory
{
private readonly Dictionary<string, IProcessControl> processControlMap = new Dictionary<string, IProcessControl>();
public void Add(ILogosStorageInstance instance, IProcessControl control)
2025-01-27 10:22:34 +01:00
{
processControlMap.Add(instance.Name, control);
}
public void Remove(ILogosStorageInstance instance)
2025-01-27 10:22:34 +01:00
{
processControlMap.Remove(instance.Name);
}
public IProcessControl CreateProcessControl(ILogosStorageInstance instance)
2025-01-27 10:22:34 +01:00
{
return Get(instance);
}
public IProcessControl Get(ILogosStorageInstance instance)
2025-01-27 10:22:34 +01:00
{
return processControlMap[instance.Name];
}
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
}
}