/// <summary> /// Initialize All MessagesSent /// </summary> public void Clear() { LastSentMessages.Clear(); DelayedMessages.Clear(); _waitingMessagesCount = 0; Result.Clear(); LostMessages.Clear(); WaitingMessages.Clear(); Result.Clear(); }
public void DeQueueWaitingMessage(Message message) { if (message is null) { throw new ArgumentNullException(nameof(message)); } if (Debug) { lock (WaitingMessages) { WaitingMessages.Remove(message); } } _waitingMessagesCount--; Result.ReceivedMessagesCount++; message.State = MessageState.Received; }
/// <summary> /// Track all messages that are posting /// Must be call before Mailbox.Post() /// </summary> /// <param name="message"></param> /// <param name="step"></param> public void EnQueueWaitingMessage(Message message, ushort step) { if (message is null) { throw new ArgumentNullException(nameof(message)); } if (Debug) { lock (WaitingMessages) { WaitingMessages.Add(message); LastSentMessages.Enqueue(message, step); } } _waitingMessagesCount++; message.State = MessageState.Sent; }