public void SendMessage(NodeIO.Message msg) { if (NodeProc == null) { return; } NodeProc.StandardInput.WriteLineAsync(NodeIO.MessageProcessor.PackMessage(msg)); }
private void NodeProc_OutputDataReceived(object sender, DataReceivedEventArgs e) { NodeIO.Message msg = NodeIO.MessageProcessor.ParseMessage(e.Data); if (msg != null) { lock (InboundMessages) { InboundMessages.Add(msg); } MessageReceived?.Invoke(this, EventArgs.Empty); } }
public NodeIO.Message PopMessage() { lock (InboundMessages) { NodeIO.Message msg = null; if (InboundMessages.Count > 0) { msg = InboundMessages[0]; InboundMessages.RemoveAt(0); } return(msg); } }