in src/NMS.AMQP/Provider/Amqp/AmqpSubscriptionTracker.cs [241:283]
public void ConsumerRemoved(NmsConsumerInfo consumerInfo)
{
string subscriptionName = consumerInfo.SubscriptionName;
if (!string.IsNullOrEmpty(subscriptionName))
{
if (consumerInfo.IsShared)
{
if (consumerInfo.IsDurable)
{
if (sharedDurableSubs.ContainsKey(subscriptionName))
{
SubDetails subDetails = sharedDurableSubs[subscriptionName];
subDetails.RemoveSubscriber(consumerInfo);
int count = subDetails.ActiveSubscribers();
if (count < 1)
{
sharedDurableSubs.Remove(subscriptionName);
}
}
}
else
{
if (sharedVolatileSubs.ContainsKey(subscriptionName))
{
SubDetails subDetails = sharedVolatileSubs[subscriptionName];
subDetails.RemoveSubscriber(consumerInfo);
int count = subDetails.ActiveSubscribers();
if (count < 1)
{
sharedVolatileSubs.Remove(subscriptionName);
}
}
}
}
else if (consumerInfo.IsDurable)
{
exclusiveDurableSubs.Remove(subscriptionName);
}
}
}