Beispiel #1
0
        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);
                }
        }
Beispiel #2
0
        /// <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);
        }
Beispiel #3
0
 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);
             }
         }
 }
Beispiel #4
0
 public void SendResponse(IPCMessage message)
 {
     verifyConnection();
     NpClient.Proxy.SendResponse(message);
 }
Beispiel #5
0
 public Guid SendMessage(IPCMessage message)
 {
     verifyConnection();
     return(NpClient.Proxy.SendMessage(message));
 }
Beispiel #6
0
 public void SendResponse(IPCMessage message)
 {
     Service.SendResponse(message);
 }
Beispiel #7
0
 public Guid SendMessage(IPCMessage message)
 {
     return(Service.SendMessage(message));
 }
Beispiel #8
0
 private void messageReceived_relay(IPCMessage message)
 {
     OnMessageReceived?.Invoke(message);
 }