29 lines
1008 B
C#
29 lines
1008 B
C#
using MarketAlly.ProcessMonitor.Models;
|
|
|
|
namespace MarketAlly.ProcessMonitor.Interfaces;
|
|
|
|
/// <summary>
|
|
/// Manages process lifecycle operations
|
|
/// </summary>
|
|
public interface IProcessManager
|
|
{
|
|
/// <summary>
|
|
/// Starts a process with the specified configuration
|
|
/// </summary>
|
|
Task<bool> StartProcessAsync(ProcessInfo processInfo, bool openInNewWindow, CancellationToken cancellationToken = default);
|
|
|
|
/// <summary>
|
|
/// Ensures the specified number of process instances are running
|
|
/// </summary>
|
|
Task EnsureProcessRunningAsync(ProcessInfo processInfo, int desiredCount, bool openInNewWindow, CancellationToken cancellationToken = default);
|
|
|
|
/// <summary>
|
|
/// Gets the count of running processes by name
|
|
/// </summary>
|
|
int GetRunningProcessCount(string processName);
|
|
|
|
/// <summary>
|
|
/// Stops all instances of a process
|
|
/// </summary>
|
|
Task<bool> StopProcessAsync(string processName, CancellationToken cancellationToken = default);
|
|
} |