public void AddLink(ListenerLink link, string address, Attach attach)
{
if (!link.Role)
{
string replyTo = ((Target)attach.Target).Address;
AddProcessor(this.responseLinks, replyTo, link);
link.SettleOnSend = true;
link.InitializeSender((c, s) => { }, null, Tuple.Create(this, replyTo));
link.SafeAddClosed((s, e) => OnLinkClosed(s, e));
}
else
{
link.InitializeReceiver(300, dispatchRequest, this);
link.SafeAddClosed((s, e) => OnLinkClosed(s, e));
lock (this.requestLinks)
{
this.requestLinks.Add(link);
}
}
}