<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Proton DotNet: Apache.Qpid.Proton.Client.ILink&lt; Role &gt; Interface Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Proton DotNet
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="namespaceApache.html">Apache</a></li><li class="navelem"><a class="el" href="namespaceApache_1_1Qpid.html">Qpid</a></li><li class="navelem"><a class="el" href="namespaceApache_1_1Qpid_1_1Proton.html">Proton</a></li><li class="navelem"><a class="el" href="namespaceApache_1_1Qpid_1_1Proton_1_1Client.html">Client</a></li><li class="navelem"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1ILink.html">ILink</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#properties">Properties</a> &#124;
<a href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1ILink-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">Apache.Qpid.Proton.Client.ILink&lt; Role &gt; Interface Template Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>A single AMQP link which can be a sender or receiver instance but each expose a common set of link properties whose API is presented here.  
 <a href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1ILink.html#details">More...</a></p>
<div class="dynheader">
Inheritance diagram for Apache.Qpid.Proton.Client.ILink&lt; Role &gt;:</div>
<div class="dyncontent">
 <div class="center">
  <img src="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1ILink.png" alt=""/>
 </div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a228d7c08a2e78d41ebc8742f57281417"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1ILink.html#a228d7c08a2e78d41ebc8742f57281417">Close</a> (<a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1IErrorCondition.html">IErrorCondition</a> error=null)</td></tr>
<tr class="memdesc:a228d7c08a2e78d41ebc8742f57281417"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initiates a close of the link and awaits a response from the remote that indicates completion of the close operation. If the response from the remote exceeds the configure close timeout the method returns after cleaning up the link resources.  <a href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1ILink.html#a228d7c08a2e78d41ebc8742f57281417">More...</a><br /></td></tr>
<tr class="separator:a228d7c08a2e78d41ebc8742f57281417"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4caa12237d5e8fc736bc1ba0c541f47f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1ILink.html#a4caa12237d5e8fc736bc1ba0c541f47f">Detach</a> (<a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1IErrorCondition.html">IErrorCondition</a> error=null)</td></tr>
<tr class="memdesc:a4caa12237d5e8fc736bc1ba0c541f47f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initiates a detach of the link and awaits a response from the remote that indicates completion of the detach operation. If the response from the remote exceeds the configure close timeout the method returns after cleaning up the link resources.  <a href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1ILink.html#a4caa12237d5e8fc736bc1ba0c541f47f">More...</a><br /></td></tr>
<tr class="separator:a4caa12237d5e8fc736bc1ba0c541f47f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a513455e79843acd6dc01952853a2a1eb"><td class="memItemLeft" align="right" valign="top">Task&lt; Role &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1ILink.html#a513455e79843acd6dc01952853a2a1eb">CloseAsync</a> (<a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1IErrorCondition.html">IErrorCondition</a> error=null)</td></tr>
<tr class="memdesc:a513455e79843acd6dc01952853a2a1eb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initiates a close of the link and a Task that allows the caller to await or poll for the response from the remote that indicates completion of the close operation. If the response from the remote exceeds the configure close timeout the sender will be cleaned up and the Task signalled indicating completion.  <a href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1ILink.html#a513455e79843acd6dc01952853a2a1eb">More...</a><br /></td></tr>
<tr class="separator:a513455e79843acd6dc01952853a2a1eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aad772a1fb032480d67568d171f3c6ab8"><td class="memItemLeft" align="right" valign="top">Task&lt; Role &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1ILink.html#aad772a1fb032480d67568d171f3c6ab8">DetachAsync</a> (<a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1IErrorCondition.html">IErrorCondition</a> error=null)</td></tr>
<tr class="memdesc:aad772a1fb032480d67568d171f3c6ab8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initiates a detach of the link and a Task that allows the caller to await or poll for the response from the remote that indicates completion of the detach operation. If the response from the remote exceeds the configure close timeout the sender will be cleaned up and the Task signalled indicating completion.  <a href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1ILink.html#aad772a1fb032480d67568d171f3c6ab8">More...</a><br /></td></tr>
<tr class="separator:aad772a1fb032480d67568d171f3c6ab8"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="properties"></a>
Properties</h2></td></tr>
<tr class="memitem:a1d69faec32b3de693e22e6279ba158ac"><td class="memItemLeft" align="right" valign="top"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1IClient.html">IClient</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1ILink.html#a1d69faec32b3de693e22e6279ba158ac">Client</a><code> [get]</code></td></tr>
<tr class="memdesc:a1d69faec32b3de693e22e6279ba158ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the parent client instance that hosts this link.  <a href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1ILink.html#a1d69faec32b3de693e22e6279ba158ac">More...</a><br /></td></tr>
<tr class="separator:a1d69faec32b3de693e22e6279ba158ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acb317c6a972e1ba829e993ad700132ce"><td class="memItemLeft" align="right" valign="top"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1IConnection.html">IConnection</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1ILink.html#acb317c6a972e1ba829e993ad700132ce">Connection</a><code> [get]</code></td></tr>
<tr class="memdesc:acb317c6a972e1ba829e993ad700132ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the parent connection instance that hosts this link.  <a href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1ILink.html#acb317c6a972e1ba829e993ad700132ce">More...</a><br /></td></tr>
<tr class="separator:acb317c6a972e1ba829e993ad700132ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a627cdff32fb7042573e3c810919f3e14"><td class="memItemLeft" align="right" valign="top"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1ISession.html">ISession</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1ILink.html#a627cdff32fb7042573e3c810919f3e14">Session</a><code> [get]</code></td></tr>
<tr class="memdesc:a627cdff32fb7042573e3c810919f3e14"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the parent session instance that created this link.  <a href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1ILink.html#a627cdff32fb7042573e3c810919f3e14">More...</a><br /></td></tr>
<tr class="separator:a627cdff32fb7042573e3c810919f3e14"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2006624670b65d75c368ea4c6701355d"><td class="memItemLeft" align="right" valign="top">string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1ILink.html#a2006624670b65d75c368ea4c6701355d">Address</a><code> [get]</code></td></tr>
<tr class="memdesc:a2006624670b65d75c368ea4c6701355d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the address that the link instance will send message objects to. The value returned from this method is controlled by the configuration that was used to create the link. </p><ul>
<li>
If the link is configured as an anonymous link then this method returns null.   </li>
<li>
If the link was created with the dynamic link methods then the method will return the dynamically created address once the remote has attached its end of the link link. Due to the need to await the remote peer to populate the dynamic address this method will block until the open of the link link has completed.   </li>
<li>
If neither of the above is true then the address returned is the address passed to the original address value passed to one of the open link methods.   </li>
</ul>
 <a href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1ILink.html#a2006624670b65d75c368ea4c6701355d">More...</a><br /></td></tr>
<tr class="separator:a2006624670b65d75c368ea4c6701355d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9f1623883c42f02a1bb990fd91cdfff8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1ISource.html">ISource</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1ILink.html#a9f1623883c42f02a1bb990fd91cdfff8">Source</a><code> [get]</code></td></tr>
<tr class="memdesc:a9f1623883c42f02a1bb990fd91cdfff8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns an immutable view of the remote Source object assigned to this link link. If the attach has not completed yet this method will block to await the attach response which carries the remote source.  <a href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1ILink.html#a9f1623883c42f02a1bb990fd91cdfff8">More...</a><br /></td></tr>
<tr class="separator:a9f1623883c42f02a1bb990fd91cdfff8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a697531042f2cafdbde67990c3a1d08f5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1ITarget.html">ITarget</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1ILink.html#a697531042f2cafdbde67990c3a1d08f5">Target</a><code> [get]</code></td></tr>
<tr class="memdesc:a697531042f2cafdbde67990c3a1d08f5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns an immutable view of the remote Target object assigned to this link link. If the attach has not completed yet this method will block to await the attach response which carries the remote target.  <a href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1ILink.html#a697531042f2cafdbde67990c3a1d08f5">More...</a><br /></td></tr>
<tr class="separator:a697531042f2cafdbde67990c3a1d08f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a333a8e9f74d1630eff1ed374aabe0b88"><td class="memItemLeft" align="right" valign="top">IReadOnlyDictionary&lt; string, object &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1ILink.html#a333a8e9f74d1630eff1ed374aabe0b88">Properties</a><code> [get]</code></td></tr>
<tr class="memdesc:a333a8e9f74d1630eff1ed374aabe0b88"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the properties that the remote provided upon successfully opening the link. If the open has not completed yet this method will block to await the open response which carries the remote properties. If the remote provides no properties this method will return null.  <a href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1ILink.html#a333a8e9f74d1630eff1ed374aabe0b88">More...</a><br /></td></tr>
<tr class="separator:a333a8e9f74d1630eff1ed374aabe0b88"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a95fdfaad4b7b09dd8226d5adeac91271"><td class="memItemLeft" align="right" valign="top">IReadOnlyCollection&lt; string &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1ILink.html#a95fdfaad4b7b09dd8226d5adeac91271">OfferedCapabilities</a><code> [get]</code></td></tr>
<tr class="memdesc:a95fdfaad4b7b09dd8226d5adeac91271"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the offered capabilities that the remote provided upon successfully opening the link. If the open has not completed yet this method will block to await the open response which carries the remote offered capabilities. If the remote provides no offered capabilities this method will return null.  <a href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1ILink.html#a95fdfaad4b7b09dd8226d5adeac91271">More...</a><br /></td></tr>
<tr class="separator:a95fdfaad4b7b09dd8226d5adeac91271"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab953057eb2f7491aae452abac4168dbf"><td class="memItemLeft" align="right" valign="top">IReadOnlyCollection&lt; string &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1ILink.html#ab953057eb2f7491aae452abac4168dbf">DesiredCapabilities</a><code> [get]</code></td></tr>
<tr class="memdesc:ab953057eb2f7491aae452abac4168dbf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the desired capabilities that the remote provided upon successfully opening the link. If the open has not completed yet this method will block to await the open response which carries the remote desired capabilities. If the remote provides no desired capabilities this method will return null.  <a href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1ILink.html#ab953057eb2f7491aae452abac4168dbf">More...</a><br /></td></tr>
<tr class="separator:ab953057eb2f7491aae452abac4168dbf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a967c89aa8ef28800557af66c1b993d7c"><td class="memItemLeft" align="right" valign="top">Task&lt; Role &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1ILink.html#a967c89aa8ef28800557af66c1b993d7c">OpenTask</a><code> [get]</code></td></tr>
<tr class="memdesc:a967c89aa8ef28800557af66c1b993d7c"><td class="mdescLeft">&#160;</td><td class="mdescRight">When a link is created and returned to the client application it may not be remotely opened yet and if the client needs to wait for completion of the open before proceeding the open task can be fetched and waited upon.  <a href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1ILink.html#a967c89aa8ef28800557af66c1b993d7c">More...</a><br /></td></tr>
<tr class="separator:a967c89aa8ef28800557af66c1b993d7c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>A single AMQP link which can be a sender or receiver instance but each expose a common set of link properties whose API is presented here. </p>
<p>Generic link interface that exposes additional APIs for the various link types.</p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
  <table class="tparams">
    <tr><td class="paramname">Role</td><td>The role the link type plays</td></tr>
  </table>
  </dd>
</dl>
<div class="typeconstraint">
<dl><dt><b>Type Constraints</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em>Role</em></td><td>&#160;:</td><td valign="top"><em>class</em></td><td>&#160;</td></tr>
<tr><td valign="top"><em>Role</em></td><td>&#160;:</td><td valign="top"><em><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1ILink.html">ILink</a></em></td><td>&#160;</td></tr>
</table>
</dd>
</dl>
</div>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a228d7c08a2e78d41ebc8742f57281417"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a228d7c08a2e78d41ebc8742f57281417">&#9670;&nbsp;</a></span>Close()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1ILink.html">Apache.Qpid.Proton.Client.ILink</a>&lt; Role &gt;.Close </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1IErrorCondition.html">IErrorCondition</a>&#160;</td>
          <td class="paramname"><em>error</em> = <code>null</code></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Initiates a close of the link and awaits a response from the remote that indicates completion of the close operation. If the response from the remote exceeds the configure close timeout the method returns after cleaning up the link resources. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">error</td><td>Optional error condition to convey to the remote</td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a513455e79843acd6dc01952853a2a1eb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a513455e79843acd6dc01952853a2a1eb">&#9670;&nbsp;</a></span>CloseAsync()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Task&lt;Role&gt; <a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1ILink.html">Apache.Qpid.Proton.Client.ILink</a>&lt; Role &gt;.CloseAsync </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1IErrorCondition.html">IErrorCondition</a>&#160;</td>
          <td class="paramname"><em>error</em> = <code>null</code></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Initiates a close of the link and a Task that allows the caller to await or poll for the response from the remote that indicates completion of the close operation. If the response from the remote exceeds the configure close timeout the sender will be cleaned up and the Task signalled indicating completion. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">error</td><td>Optional error condition to convey to the remote</td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a4caa12237d5e8fc736bc1ba0c541f47f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4caa12237d5e8fc736bc1ba0c541f47f">&#9670;&nbsp;</a></span>Detach()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1ILink.html">Apache.Qpid.Proton.Client.ILink</a>&lt; Role &gt;.Detach </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1IErrorCondition.html">IErrorCondition</a>&#160;</td>
          <td class="paramname"><em>error</em> = <code>null</code></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Initiates a detach of the link and awaits a response from the remote that indicates completion of the detach operation. If the response from the remote exceeds the configure close timeout the method returns after cleaning up the link resources. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">error</td><td>Optional error condition to convey to the remote</td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="aad772a1fb032480d67568d171f3c6ab8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aad772a1fb032480d67568d171f3c6ab8">&#9670;&nbsp;</a></span>DetachAsync()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Task&lt;Role&gt; <a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1ILink.html">Apache.Qpid.Proton.Client.ILink</a>&lt; Role &gt;.DetachAsync </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1IErrorCondition.html">IErrorCondition</a>&#160;</td>
          <td class="paramname"><em>error</em> = <code>null</code></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Initiates a detach of the link and a Task that allows the caller to await or poll for the response from the remote that indicates completion of the detach operation. If the response from the remote exceeds the configure close timeout the sender will be cleaned up and the Task signalled indicating completion. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">error</td><td>Optional error condition to convey to the remote</td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<h2 class="groupheader">Property Documentation</h2>
<a id="a2006624670b65d75c368ea4c6701355d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2006624670b65d75c368ea4c6701355d">&#9670;&nbsp;</a></span>Address</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">string <a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1ILink.html">Apache.Qpid.Proton.Client.ILink</a>&lt; Role &gt;.Address</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">get</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns the address that the link instance will send message objects to. The value returned from this method is controlled by the configuration that was used to create the link. </p><ul>
<li>
If the link is configured as an anonymous link then this method returns null.   </li>
<li>
If the link was created with the dynamic link methods then the method will return the dynamically created address once the remote has attached its end of the link link. Due to the need to await the remote peer to populate the dynamic address this method will block until the open of the link link has completed.   </li>
<li>
If neither of the above is true then the address returned is the address passed to the original address value passed to one of the open link methods.   </li>
</ul>
</p>

</div>
</div>
<a id="a1d69faec32b3de693e22e6279ba158ac"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1d69faec32b3de693e22e6279ba158ac">&#9670;&nbsp;</a></span>Client</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1IClient.html">IClient</a> <a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1ILink.html">Apache.Qpid.Proton.Client.ILink</a>&lt; Role &gt;.Client</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">get</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns the parent client instance that hosts this link. </p>

</div>
</div>
<a id="acb317c6a972e1ba829e993ad700132ce"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acb317c6a972e1ba829e993ad700132ce">&#9670;&nbsp;</a></span>Connection</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1IConnection.html">IConnection</a> <a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1ILink.html">Apache.Qpid.Proton.Client.ILink</a>&lt; Role &gt;.Connection</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">get</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns the parent connection instance that hosts this link. </p>

</div>
</div>
<a id="ab953057eb2f7491aae452abac4168dbf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab953057eb2f7491aae452abac4168dbf">&#9670;&nbsp;</a></span>DesiredCapabilities</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">IReadOnlyCollection&lt;string&gt; <a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1ILink.html">Apache.Qpid.Proton.Client.ILink</a>&lt; Role &gt;.DesiredCapabilities</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">get</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns the desired capabilities that the remote provided upon successfully opening the link. If the open has not completed yet this method will block to await the open response which carries the remote desired capabilities. If the remote provides no desired capabilities this method will return null. </p>

</div>
</div>
<a id="a95fdfaad4b7b09dd8226d5adeac91271"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a95fdfaad4b7b09dd8226d5adeac91271">&#9670;&nbsp;</a></span>OfferedCapabilities</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">IReadOnlyCollection&lt;string&gt; <a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1ILink.html">Apache.Qpid.Proton.Client.ILink</a>&lt; Role &gt;.OfferedCapabilities</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">get</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns the offered capabilities that the remote provided upon successfully opening the link. If the open has not completed yet this method will block to await the open response which carries the remote offered capabilities. If the remote provides no offered capabilities this method will return null. </p>

</div>
</div>
<a id="a967c89aa8ef28800557af66c1b993d7c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a967c89aa8ef28800557af66c1b993d7c">&#9670;&nbsp;</a></span>OpenTask</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">Task&lt;Role&gt; <a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1ILink.html">Apache.Qpid.Proton.Client.ILink</a>&lt; Role &gt;.OpenTask</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">get</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>When a link is created and returned to the client application it may not be remotely opened yet and if the client needs to wait for completion of the open before proceeding the open task can be fetched and waited upon. </p>

</div>
</div>
<a id="a333a8e9f74d1630eff1ed374aabe0b88"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a333a8e9f74d1630eff1ed374aabe0b88">&#9670;&nbsp;</a></span>Properties</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">IReadOnlyDictionary&lt;string, object&gt; <a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1ILink.html">Apache.Qpid.Proton.Client.ILink</a>&lt; Role &gt;.Properties</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">get</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns the properties that the remote provided upon successfully opening the link. If the open has not completed yet this method will block to await the open response which carries the remote properties. If the remote provides no properties this method will return null. </p>

</div>
</div>
<a id="a627cdff32fb7042573e3c810919f3e14"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a627cdff32fb7042573e3c810919f3e14">&#9670;&nbsp;</a></span>Session</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1ISession.html">ISession</a> <a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1ILink.html">Apache.Qpid.Proton.Client.ILink</a>&lt; Role &gt;.Session</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">get</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns the parent session instance that created this link. </p>

</div>
</div>
<a id="a9f1623883c42f02a1bb990fd91cdfff8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9f1623883c42f02a1bb990fd91cdfff8">&#9670;&nbsp;</a></span>Source</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1ISource.html">ISource</a> <a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1ILink.html">Apache.Qpid.Proton.Client.ILink</a>&lt; Role &gt;.Source</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">get</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns an immutable view of the remote Source object assigned to this link link. If the attach has not completed yet this method will block to await the attach response which carries the remote source. </p>

</div>
</div>
<a id="a697531042f2cafdbde67990c3a1d08f5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a697531042f2cafdbde67990c3a1d08f5">&#9670;&nbsp;</a></span>Target</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1ITarget.html">ITarget</a> <a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1ILink.html">Apache.Qpid.Proton.Client.ILink</a>&lt; Role &gt;.Target</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">get</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns an immutable view of the remote Target object assigned to this link link. If the attach has not completed yet this method will block to await the attach response which carries the remote target. </p>

</div>
</div>
<hr/>The documentation for this interface was generated from the following file:<ul>
<li>src/Proton.Client/Client/ILink.cs</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
</small></address>
</body>
</html>
