public AmqpLink CreateLink(AmqpSession session, AmqpLinkSettings settings)
{
bool isReceiver = settings.Role.Value;
AmqpLink link;
if (isReceiver)
{
if (settings.Target is Target && ((Target)settings.Target).Dynamic())
{
string name = string.Format("$dynamic.{0}", Interlocked.Increment(ref this.dynamicId));
this.queues.Add(name, new TestQueue(this));
((Target)settings.Target).Address = name;
}
link = new ReceivingAmqpLink(session, settings);
}
else
{
if (((Source)settings.Source).Dynamic())
{
string name = string.Format("$dynamic.{0}", Interlocked.Increment(ref this.dynamicId));
this.queues.Add(name, new TestQueue(this));
((Source)settings.Source).Address = name;
}
link = new SendingAmqpLink(session, settings);
}
return link;
}