async Task <ReceivingAmqpLink> CreateTwinReceivingLinkAsync(TimeSpan timeout, CancellationToken cancellationToken) { string path = string.Format(CultureInfo.InvariantCulture, CommonConstants.DeviceTwinPathTemplate, System.Net.WebUtility.UrlEncode(this.deviceId)); ReceivingAmqpLink twinReceivingLink = await this.IotHubConnection.CreateReceivingLinkAsync(path, this.iotHubConnectionString, this.twinConnectionCorrelationId, IotHubConnection.ReceivingLinkType.Twin, this.prefetchCount, timeout, cancellationToken); MyStringCopy(twinReceivingLink.Name, out twinReceivingLinkName); this.SafeAddClosedTwinReceivingLinkHandler = this.linkClosedListener; twinReceivingLink.SafeAddClosed(async(o, ea) => await Task.Run(async() => { await this.SafeAddClosedTwinReceivingLinkHandler( o, new ConnectionEventArgs { ConnectionType = ConnectionType.AmqpTwinReceiving, ConnectionStatus = ConnectionStatus.Disconnected_Retrying, ConnectionStatusChangeReason = ConnectionStatusChangeReason.No_Network }); } )); twinReceivingLink.RegisterMessageListener(message => this.HandleTwinMessage(message, twinReceivingLink)); return(twinReceivingLink); }
private async Task EnableReceivingLinkAsync(CancellationToken cancellationToken) { ReceivingAmqpLink methodReceivingLink = await this.GetMethodReceivingLinkAsync(cancellationToken); this.SafeAddClosedReceivingLinkHandler = this.linkClosedListener; methodReceivingLink.SafeAddClosed((o, ea) => this.SafeAddClosedReceivingLinkHandler(o, ea)); }
async Task <ReceivingAmqpLink> CreateMethodReceivingLinkAsync(TimeSpan timeout, CancellationToken cancellationToken) { string path = string.Format(CultureInfo.InvariantCulture, CommonConstants.DeviceMethodPathTemplate, System.Net.WebUtility.UrlEncode(this.deviceId)); ReceivingAmqpLink methodReceivingLink = await this.IotHubConnection.CreateReceivingLinkAsync(path, this.iotHubConnectionString, this.methodConnectionCorrelationId, IotHubConnection.ReceivingLinkType.Methods, this.prefetchCount, timeout, cancellationToken); methodReceivingLink.RegisterMessageListener(amqpMessage => { MethodRequestInternal methodRequestInternal = MethodConverter.ConstructMethodRequestFromAmqpMessage(amqpMessage); methodReceivingLink.DisposeDelivery(amqpMessage, true, AmqpConstants.AcceptedOutcome); this.messageListener(methodRequestInternal); }); MyStringCopy(methodReceivingLink.Name, out methodReceivingLinkName); this.SafeAddClosedMethodReceivingLinkHandler = this.linkClosedListener; methodReceivingLink.SafeAddClosed(async(o, ea) => await Task.Run(async() => { await this.SafeAddClosedMethodReceivingLinkHandler( o, new ConnectionEventArgs { ConnectionType = ConnectionType.AmqpMethodReceiving, ConnectionStatus = ConnectionStatus.Disconnected_Retrying, ConnectionStatusChangeReason = ConnectionStatusChangeReason.No_Network }); } )); return(methodReceivingLink); }
private async Task EnableTwinReceivingLinkAsync(CancellationToken cancellationToken) { ReceivingAmqpLink twinReceivingLink = await this.GetTwinReceivingLinkAsync(cancellationToken); this.SafeAddClosedTwinReceivingLinkHandler = this.linkClosedListener; twinReceivingLink.SafeAddClosed((o, ea) => this.SafeAddClosedTwinReceivingLinkHandler(o, new ConnectionEventArgs { ConnectionKey = ConnectionKeys.AmqpTwinReceiving, ConnectionStatus = ConnectionStatus.Disconnected_Retrying, ConnectionStatusChangeReason = ConnectionStatusChangeReason.No_Network })); }
private async Task EnableMethodReceivingLinkAsync(CancellationToken cancellationToken) { ReceivingAmqpLink methodReceivingLink = await this.GetMethodReceivingLinkAsync(cancellationToken); this.SafeAddClosedMethodReceivingLinkHandler = this.linkClosedListener; methodReceivingLink.SafeAddClosed((o, ea) => this.SafeAddClosedMethodReceivingLinkHandler(o, new ConnectionEventArgs { ConnectionKey = ConnectionKeys.AmqpMethodReceiving, ConnectionStatus = ConnectionStatus.Disconnected_Retrying })); }
async Task <ReceivingAmqpLink> CreateTwinReceivingLinkAsync(TimeSpan timeout, CancellationToken cancellationToken) { string path = this.BuildPath(CommonConstants.DeviceTwinPathTemplate, CommonConstants.ModuleTwinPathTemplate); ReceivingAmqpLink twinReceivingLink = await this.IotHubConnection.CreateReceivingLinkAsync(path, this.iotHubConnectionString, this.twinConnectionCorrelationId, IotHubConnection.ReceivingLinkType.Twin, this.prefetchCount, timeout, this.productInfo, cancellationToken).ConfigureAwait(false); MyStringCopy(twinReceivingLink.Name, out twinReceivingLinkName); twinReceivingLink.SafeAddClosed(OnAmqpConnectionClose); twinReceivingLink.RegisterMessageListener(message => this.HandleTwinMessage(message, twinReceivingLink)); return(twinReceivingLink); }
private async Task <ReceivingAmqpLink> CreateEventReceivingLinkAsync(TimeSpan timeout, CancellationToken cancellationToken) { string path = this.BuildPath(CommonConstants.DeviceEventPathTemplate, CommonConstants.ModuleEventPathTemplate); ReceivingAmqpLink messageReceivingLink = await this.IotHubConnection.CreateReceivingLinkAsync(path, this.iotHubConnectionString, this.deviceId, IotHubConnection.ReceivingLinkType.Events, this.prefetchCount, timeout, this.productInfo, cancellationToken).ConfigureAwait(false); messageReceivingLink.RegisterMessageListener(amqpMessage => this.ProcessReceivedEventMessage(amqpMessage)); MyStringCopy(messageReceivingLink.Name, out eventReceivingLinkName); messageReceivingLink.SafeAddClosed(OnAmqpConnectionClose); return(messageReceivingLink); }
async Task <ReceivingAmqpLink> CreateMethodReceivingLinkAsync(TimeSpan timeout, CancellationToken cancellationToken) { string path = this.BuildPath(CommonConstants.DeviceMethodPathTemplate, CommonConstants.ModuleMethodPathTemplate); ReceivingAmqpLink methodReceivingLink = await IotHubConnection.CreateReceivingLinkAsync(path, iotHubConnectionString, methodConnectionCorrelationId, IotHubConnection.ReceivingLinkType.Methods, prefetchCount, timeout, productInfo, cancellationToken).ConfigureAwait(false); methodReceivingLink.RegisterMessageListener(amqpMessage => { MethodRequestInternal methodRequestInternal = MethodConverter.ConstructMethodRequestFromAmqpMessage(amqpMessage, cancellationToken); methodReceivingLink.DisposeDelivery(amqpMessage, true, AmqpConstants.AcceptedOutcome); this.methodReceivedListener(methodRequestInternal); }); MyStringCopy(methodReceivingLink.Name, out methodReceivingLinkName); methodReceivingLink.SafeAddClosed(OnAmqpConnectionClose); return(methodReceivingLink); }