public static SubAckPacket AddSubscriptions(ISessionState session, SubscribePacket packet, QualityOfService maxSupportedQos) { IReadOnlyList <ISubscription> subscriptions = session.Subscriptions; var returnCodes = new List <QualityOfService>(subscriptions.Count); foreach (SubscriptionRequest request in packet.Requests) { QualityOfService finalQos = request.QualityOfService < maxSupportedQos ? request.QualityOfService : maxSupportedQos; session.AddOrUpdateSubscription(request.TopicFilter, finalQos); returnCodes.Add(finalQos); } var ack = new SubAckPacket { PacketId = packet.PacketId, ReturnCodes = returnCodes }; return(ack); }
public static SubAckPacket AddSubscriptions(ISessionState session, SubscribePacket packet, QualityOfService maxSupportedQos) { IReadOnlyList<ISubscription> subscriptions = session.Subscriptions; var returnCodes = new List<QualityOfService>(subscriptions.Count); foreach (SubscriptionRequest request in packet.Requests) { QualityOfService finalQos = request.QualityOfService < maxSupportedQos ? request.QualityOfService : maxSupportedQos; session.AddOrUpdateSubscription(request.TopicFilter, finalQos); returnCodes.Add(finalQos); } var ack = new SubAckPacket { PacketId = packet.PacketId, ReturnCodes = returnCodes }; return ack; }