mirror of
https://github.com/Stone-Red-Code/RemSox.git
synced 2026-09-04 00:56:19 +02:00
36 lines
795 B
C#
36 lines
795 B
C#
using RemSox.Processing.IPC;
|
|
|
|
namespace RemSox.Processing;
|
|
|
|
public abstract class Process(string name)
|
|
{
|
|
public int Id { get; init; }
|
|
|
|
public string Name { get; set; } = name;
|
|
|
|
public bool StopRequested { get; private set; } = false;
|
|
|
|
public bool IsRunning => !StopRequested;
|
|
|
|
internal abstract void Run(string[] args);
|
|
|
|
internal virtual void HandleInterProcessMessage(Message message)
|
|
{
|
|
}
|
|
|
|
protected void SendMessageToProcess(int targetProcessId, Message message)
|
|
{
|
|
InterProcessCommunicator.Send(targetProcessId, message, this);
|
|
}
|
|
|
|
protected void SendMessageToAllProcesses(Message message)
|
|
{
|
|
InterProcessCommunicator.SendToAll(message, this);
|
|
}
|
|
|
|
internal void RequestStop()
|
|
{
|
|
StopRequested = true;
|
|
}
|
|
}
|