2026-04-17 15:03:22 +10:00
|
|
|
|
using LogosStorageClient;
|
2025-01-27 10:22:34 +01:00
|
|
|
|
|
2026-04-17 15:03:22 +10: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>();
|
|
|
|
|
|
|
2026-04-17 15:03:22 +10:00
|
|
|
|
public void Add(ILogosStorageInstance instance, IProcessControl control)
|
2025-01-27 10:22:34 +01:00
|
|
|
|
{
|
|
|
|
|
|
processControlMap.Add(instance.Name, control);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-04-17 15:03:22 +10:00
|
|
|
|
public void Remove(ILogosStorageInstance instance)
|
2025-01-27 10:22:34 +01:00
|
|
|
|
{
|
|
|
|
|
|
processControlMap.Remove(instance.Name);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-04-17 15:03:22 +10:00
|
|
|
|
public IProcessControl CreateProcessControl(ILogosStorageInstance instance)
|
2025-01-27 10:22:34 +01:00
|
|
|
|
{
|
|
|
|
|
|
return Get(instance);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-04-17 15:03:22 +10:00
|
|
|
|
public IProcessControl Get(ILogosStorageInstance instance)
|
2025-01-27 10:22:34 +01:00
|
|
|
|
{
|
|
|
|
|
|
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
|
|
|
|
}
|
|
|
|
|
|
}
|