public void RegisterResponseHandler <T>(IpcCall call, IpcMessageHandler <T> handler) { responseHandlers[call] = (msg) => { return(handler?.Invoke(msg.As <T>()) ?? false); }; }
public bool HandleIpcMessage(BaseMessage baseMessage) { IpcMessage message = baseMessage as IpcMessage; if (message == null) { return(false); } IpcMessageHandler handler = null; if (message.Method == IpcMessageMethod.Send) { responseHandlers.TryGetValue(message.Call, out handler); } else if (message.Method == IpcMessageMethod.Request) { requestHandlers.TryGetValue(message.Call, out handler); } return(handler?.Invoke(message) ?? false); }