public void SendMessage(OverlayNodeServiceMessage msg) { throw new NotImplementedException(); }
public void SendMessage(OverlayNodeServiceMessage msg) { // wait until current event is being processed MsgProcessor.ProcessingMsgHandle.Wait(); // proceed Log.Write(LogEvent.Debug, "Received message {0} at node {1}", msg, LocalNode); MsgProcessor.SetCurrentMsg(msg); if (msg.WaitForProcessing) { // wait until current event is being processed MsgProcessor.ProcessingMsgHandle.Wait(); } }
public void SetCurrentMsg(OverlayNodeServiceMessage msg) { CurrentMsg = msg; // start processing message WaitingForMsgHandle.Set(); // block incoming messages until processed ProcessingMsgHandle.Reset(); }
public void SendMessage(OverlayNodeServiceMessage msg) { RealOverlay.SendMessage(msg); }