in src/NMS.AMQP/NmsConnection.cs [360:391]
public void OnResourceClosed(INmsResource resource, Exception error)
{
switch (resource)
{
case NmsConsumerInfo consumerInfo:
{
if (!sessions.TryGetValue(consumerInfo.SessionId, out NmsSession session))
return;
NmsMessageConsumer messageConsumer = session.ConsumerClosed(consumerInfo.Id, error);
if (messageConsumer == null)
return;
foreach (var connectionListener in connectionListeners)
connectionListener.OnConsumerClosed(messageConsumer, error);
break;
}
case NmsProducerInfo producerInfo:
{
if (!sessions.TryGetValue(producerInfo.SessionId, out NmsSession session))
return;
NmsMessageProducer messageProducer = session.ProducerClosed(producerInfo.Id, error);
if (messageProducer == null)
return;
foreach (var connectionListener in connectionListeners)
connectionListener.OnProducerClosed(messageProducer, error);
break;
}
}
}