private void AcknowledgeRequest(IAcknowledgeRequest acknowledgeRequest) { if (_connectionContexts.TryGetValue(acknowledgeRequest.ConnectionId, out var connectionContext)) { _messageDispatcher.AcknowledgeRequest(connectionContext.LinkId, acknowledgeRequest.AcknowledgeId); } }
async Task WaitForAcknowledgeResponse(IAcknowledgeRequest request) { while (!IsAcknowledged(request)) { await Task.Delay(10); } }
public PendingAcknowledgeRequest(IAcknowledgeRequest message, IRecipient recipient) { if (message == null) { throw new ArgumentNullException("message"); } if (recipient == null) { throw new ArgumentNullException("recipient"); } Message = message; Recipient = recipient; }
bool IsAcknowledged(IAcknowledgeRequest request) => !_pendingAcknowledgeRequests.TryGetValue(request.AckToken, out PendingAcknowledgeRequest pending);