Exemplo n.º 1
0
        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.");
                }
            }
        }
Exemplo n.º 2
0
        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;
            }
        }