blob: 8d8ee601244c15dd3c7356c355ab1a935aa3ceaa [file] [log] [blame]
<!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>