Harrison Deng 025999ab59
Some checks failed
ydeng/gameservicewarden/pipeline/head There was a failure building this commit
Updating to .Net 8.0.
2024-07-20 15:03:57 +00:00

40 lines
1.4 KiB
C#

using System.Diagnostics;
using System.Text.Json;
using GameServiceWarden.InteractionAPI;
using GameServiceWarden.InteractionAPI.Communicable.Requests;
using GameServiceWarden.Core.Module;
namespace GameServiceWarden.Core.UI
{
public class IPCController
{
private IPCMediator mediator;
private IServiceManagerActionExecuter serviceExecutioner;
public IPCController(IPCMediator mediator, IServiceManagerActionExecuter serviceExecutioner)
{
this.mediator = mediator;
this.serviceExecutioner = serviceExecutioner;
}
public void Process() {
Logger.Log("Beginning to process interface requests.");
mediator.Open();
(string, CommunicableType, byte[]) action;
while (mediator.RequestQueue.TryTake(out action))
{
switch (action.Item2)
{
case CommunicableType.Delta:
ServiceRequest delta = JsonSerializer.Deserialize<ServiceRequest>(action.Item3);
serviceExecutioner.ExecuteAction(delta.serviceManagerAction);
break;
case CommunicableType.View:
serviceExecutioner.View();
break;
}
}
mediator.Close();
}
}
}