protected void SendRequestCommand(INetworkCommandAsync command) { if (_connection == null) { return; } _sendCommandQueue.Enqueue(command); _sendEvent.Set(); }
protected void HandleCommandResponse(INetworkCommandAsync response) { int dummyValue; var matchingRequest = _activeRequests.Keys.FirstOrDefault(request => request.MatchingResponse(response)); // shouldn't happen that it is not present if (matchingRequest != null) { _activeRequests.TryRemove(matchingRequest, out dummyValue); matchingRequest.SetResponse(response); matchingRequest.Dispose(); } }
void INetworkCommandAsync.SetResponse(INetworkCommandAsync response) { _response = response; _signal.Set(); }
public bool MatchingResponse(INetworkCommandAsync commandResponse) { var command = commandResponse as OpenReader; return(command != null && command.Type == Type && command.Config == Config); }
void INetworkCommandAsync.SetResponse(INetworkCommandAsync response) { _response = response; }
public bool MatchingResponse(INetworkCommandAsync commandResponse) { var command = commandResponse as CloseReader; return(command != null && command.Type == Type); }
public Task <INetworkCommandAsync> SendCommandAsync(INetworkCommandAsync command) { SendRequestCommand(command); return(command.AwaitResponseAsync()); }