public static void HandleProcessStateInfo(ProcessStateInfo processStateInfo, IPCClientBase client) { switch (processStateInfo.State) { case ProcessState.Stop: BnetServer.Shutdown(); break; default: Log.Message(LogTypes.Error, $"Received unhandled process state '{processStateInfo.State}' from '{processStateInfo.Alias}'."); break; } }
public static async Task CallHandler(byte ipcMessage, Stream ipcMessageData, IPCClientBase client) { var message = (IPCMessage)ipcMessage; Tuple<MethodInfo, Type> data; if (messageHandlers.TryGetValue(message, out data)) { var handlerObj = Activator.CreateInstance(data.Item2, ipcMessage, ipcMessageData) as IPCPacket; await Task.Run(() => data.Item1.Invoke(null, new object[] { handlerObj, client })); } else { var msgName = Enum.GetName(typeof(IPCMessage), message); if (msgName == null) Log.Message(LogTypes.Warning, $"Received unknown ipc message '0x{message:X}'."); else Log.Message(LogTypes.Warning, $"Handler for '{msgName} (0x{message:X}) not implemented."); } }