public void SendResponse(IPCMessage message) { lock (ResponseQueue) lock (ResponseLog) { if (ResponseQueue.ContainsKey(message.Id) || ResponseLog.ContainsKey(message.Id)) { // Repeated response return; } ResponseQueue.Add(message.Id, message); } }
/// <summary> /// Used by clients to send messages /// </summary> /// <param name="message"></param> public Guid SendMessage(IPCMessage message) { if (MessageLog.ContainsKey(message.Id)) { // Repeated message IPCMessage lastMessage = MessageLog[message.Id]; return(lastMessage.ResponseId); } message.ResponseId = Guid.NewGuid(); MessageLog.Add(message.Id, message); OnMessageReceived?.Invoke(message); return(message.ResponseId); }
public IPCMessage GetResponse(Guid responseId) { lock (ResponseQueue) lock (ResponseLog) { if (ResponseQueue.ContainsKey(responseId)) { IPCMessage response = ResponseQueue[responseId]; ResponseQueue.Remove(responseId); ResponseLog.Add(responseId, response); return(response); } else if (ResponseLog.ContainsKey(responseId)) { IPCMessage response = ResponseLog[responseId]; return(response); } else { return(null); } } }
public void SendResponse(IPCMessage message) { verifyConnection(); NpClient.Proxy.SendResponse(message); }
public Guid SendMessage(IPCMessage message) { verifyConnection(); return(NpClient.Proxy.SendMessage(message)); }
public void SendResponse(IPCMessage message) { Service.SendResponse(message); }
public Guid SendMessage(IPCMessage message) { return(Service.SendMessage(message)); }
private void messageReceived_relay(IPCMessage message) { OnMessageReceived?.Invoke(message); }