in src/NMS.AMQP/Provider/Amqp/AmqpSubscriptionTracker.cs [147:186]
private String GetSharedVolatileSubLinkName(string subscriptionName, NmsConsumerInfo consumerInfo)
{
IDestination topic = consumerInfo.Destination;
string selector = consumerInfo.Selector;
SubDetails subDetails = null;
if (sharedVolatileSubs.ContainsKey(subscriptionName))
{
subDetails = sharedVolatileSubs[subscriptionName];
if (subDetails.Matches(topic, selector))
{
subDetails.AddSubscriber(consumerInfo);
}
else
{
throw new NMSException("Subscription details dont match existing subscriber");
}
}
else
{
subDetails = new SubDetails(topic, selector, consumerInfo);
}
sharedVolatileSubs.Add(subscriptionName, subDetails);
string receiverLinkName = subscriptionName + SUB_NAME_DELIMITER;
int count = subDetails.TotalSubscriberCount();
if (consumerInfo.IsExplicitClientId)
{
receiverLinkName += "volatile" + count;
}
else
{
receiverLinkName += "global-volatile" + count;
}
return receiverLinkName;
}