blob: dc66feff34e749b216af7251bb299fb4fb3fe4ec [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.8.20"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Qpid Proton C API: Link</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="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.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>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function() { init_search(); });
/* @license-end */
</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">Qpid Proton C API
&#160;<span id="projectnumber">0.32.0</span>
</div>
</td>
<td> <div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.svg"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.20 -->
<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');
/* @license-end */
</script>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('group__link.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- 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 class="header">
<div class="summary">
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">Link<div class="ingroups"><a class="el" href="group__core.html">Core</a></div></div> </div>
</div><!--header-->
<div class="contents">
<p>A channel for transferring messages.
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:ga89dad3aa7934329a7ff467c636687bc0"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a></td></tr>
<tr class="memdesc:ga89dad3aa7934329a7ff467c636687bc0"><td class="mdescLeft">&#160;</td><td class="mdescRight">An AMQP Link object. <a href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">More...</a><br /></td></tr>
<tr class="separator:ga89dad3aa7934329a7ff467c636687bc0"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:ga3fb58bd0b88d37407ebb615c2630e608"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__link.html#ga3fb58bd0b88d37407ebb615c2630e608">pn_snd_settle_mode_t</a> { <a class="el" href="group__link.html#gga3fb58bd0b88d37407ebb615c2630e608a8bd9806d2f8d8c1724ed26bb0543bade">PN_SND_UNSETTLED</a>,
<a class="el" href="group__link.html#gga3fb58bd0b88d37407ebb615c2630e608ac159f0edca565961b554768a42e82bf0">PN_SND_SETTLED</a>,
<a class="el" href="group__link.html#gga3fb58bd0b88d37407ebb615c2630e608ac33a5700d0247976b465aeb7c1437fd1">PN_SND_MIXED</a>
}</td></tr>
<tr class="memdesc:ga3fb58bd0b88d37407ebb615c2630e608"><td class="mdescLeft">&#160;</td><td class="mdescRight">Describes the permitted/expected settlement behaviours of a sending link. <a href="group__link.html#ga3fb58bd0b88d37407ebb615c2630e608">More...</a><br /></td></tr>
<tr class="separator:ga3fb58bd0b88d37407ebb615c2630e608"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad1c2388cdae687be26222a5d66fd2d58"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__link.html#gad1c2388cdae687be26222a5d66fd2d58">pn_rcv_settle_mode_t</a> { <a class="el" href="group__link.html#ggad1c2388cdae687be26222a5d66fd2d58ac22b82396bd686940dfcc861302a8262">PN_RCV_FIRST</a>,
<a class="el" href="group__link.html#ggad1c2388cdae687be26222a5d66fd2d58ac79dc7f63fce078a8f0fe268c81dcaf3">PN_RCV_SECOND</a>
}</td></tr>
<tr class="memdesc:gad1c2388cdae687be26222a5d66fd2d58"><td class="mdescLeft">&#160;</td><td class="mdescRight">Describes the permitted/expected settlement behaviours of a receiving link. <a href="group__link.html#gad1c2388cdae687be26222a5d66fd2d58">More...</a><br /></td></tr>
<tr class="separator:gad1c2388cdae687be26222a5d66fd2d58"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga469bef2e81c53e85899ffbb277616a8c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__link.html#ga469bef2e81c53e85899ffbb277616a8c">pn_sender</a> (<a class="el" href="group__session.html#ga38ccb93b8f5c2892adafce5d5f0fbcd9">pn_session_t</a> *session, const char *name)</td></tr>
<tr class="memdesc:ga469bef2e81c53e85899ffbb277616a8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Construct a new sender on a session. <a href="group__link.html#ga469bef2e81c53e85899ffbb277616a8c">More...</a><br /></td></tr>
<tr class="separator:ga469bef2e81c53e85899ffbb277616a8c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5e314b3e07b48ebcffbac63f265fa69f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__link.html#ga5e314b3e07b48ebcffbac63f265fa69f">pn_receiver</a> (<a class="el" href="group__session.html#ga38ccb93b8f5c2892adafce5d5f0fbcd9">pn_session_t</a> *session, const char *name)</td></tr>
<tr class="memdesc:ga5e314b3e07b48ebcffbac63f265fa69f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Construct a new receiver on a session. <a href="group__link.html#ga5e314b3e07b48ebcffbac63f265fa69f">More...</a><br /></td></tr>
<tr class="separator:ga5e314b3e07b48ebcffbac63f265fa69f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadd3b8899fe023d3506fb88d228d6b1b7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__link.html#gadd3b8899fe023d3506fb88d228d6b1b7">pn_link_free</a> (<a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *link)</td></tr>
<tr class="memdesc:gadd3b8899fe023d3506fb88d228d6b1b7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a link object. <a href="group__link.html#gadd3b8899fe023d3506fb88d228d6b1b7">More...</a><br /></td></tr>
<tr class="separator:gadd3b8899fe023d3506fb88d228d6b1b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga93e6b527743f433da2ff367c1b2c500a"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__link.html#ga93e6b527743f433da2ff367c1b2c500a">pn_link_get_context</a> (<a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *link)</td></tr>
<tr class="memdesc:ga93e6b527743f433da2ff367c1b2c500a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the application context that is associated with a link object. <a href="group__link.html#ga93e6b527743f433da2ff367c1b2c500a">More...</a><br /></td></tr>
<tr class="separator:ga93e6b527743f433da2ff367c1b2c500a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga376f2cc18bbd771d95aa8222586d19b2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__link.html#ga376f2cc18bbd771d95aa8222586d19b2">pn_link_set_context</a> (<a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *link, void *context)</td></tr>
<tr class="memdesc:ga376f2cc18bbd771d95aa8222586d19b2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set a new application context for a link object. <a href="group__link.html#ga376f2cc18bbd771d95aa8222586d19b2">More...</a><br /></td></tr>
<tr class="separator:ga376f2cc18bbd771d95aa8222586d19b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8b19ffdb7934940fa7c5fd75c5fe2d69"><td class="memItemLeft" align="right" valign="top">pn_record_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__link.html#ga8b19ffdb7934940fa7c5fd75c5fe2d69">pn_link_attachments</a> (<a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *link)</td></tr>
<tr class="memdesc:ga8b19ffdb7934940fa7c5fd75c5fe2d69"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the attachments that are associated with a link object. <a href="group__link.html#ga8b19ffdb7934940fa7c5fd75c5fe2d69">More...</a><br /></td></tr>
<tr class="separator:ga8b19ffdb7934940fa7c5fd75c5fe2d69"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa44112980ebabbb5cbd002670073a751"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__link.html#gaa44112980ebabbb5cbd002670073a751">pn_link_name</a> (<a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *link)</td></tr>
<tr class="memdesc:gaa44112980ebabbb5cbd002670073a751"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the name of a link. <a href="group__link.html#gaa44112980ebabbb5cbd002670073a751">More...</a><br /></td></tr>
<tr class="separator:gaa44112980ebabbb5cbd002670073a751"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7c48ef214568267839aea04ed337926b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__link.html#ga7c48ef214568267839aea04ed337926b">pn_link_is_sender</a> (<a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *link)</td></tr>
<tr class="memdesc:ga7c48ef214568267839aea04ed337926b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Test if a link is a sender. <a href="group__link.html#ga7c48ef214568267839aea04ed337926b">More...</a><br /></td></tr>
<tr class="separator:ga7c48ef214568267839aea04ed337926b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae7045dd02f2c9450ff8737e005628d81"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__link.html#gae7045dd02f2c9450ff8737e005628d81">pn_link_is_receiver</a> (<a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *link)</td></tr>
<tr class="memdesc:gae7045dd02f2c9450ff8737e005628d81"><td class="mdescLeft">&#160;</td><td class="mdescRight">Test if a link is a receiver. <a href="group__link.html#gae7045dd02f2c9450ff8737e005628d81">More...</a><br /></td></tr>
<tr class="separator:gae7045dd02f2c9450ff8737e005628d81"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad502b38bc184ad0bfaa86dede81f62c9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__connection.html#gaa83193a655e32bffc18624acc2c39233">pn_state_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__link.html#gad502b38bc184ad0bfaa86dede81f62c9">pn_link_state</a> (<a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *link)</td></tr>
<tr class="memdesc:gad502b38bc184ad0bfaa86dede81f62c9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the endpoint state flags for a link. <a href="group__link.html#gad502b38bc184ad0bfaa86dede81f62c9">More...</a><br /></td></tr>
<tr class="separator:gad502b38bc184ad0bfaa86dede81f62c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf6f11d778aa4622d8aa5db8962bb1f0a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__error.html#ga24a289d5b32c9bd8a775600a5af83d52">pn_error_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__link.html#gaf6f11d778aa4622d8aa5db8962bb1f0a">pn_link_error</a> (<a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *link)</td></tr>
<tr class="memdesc:gaf6f11d778aa4622d8aa5db8962bb1f0a"><td class="mdescLeft">&#160;</td><td class="mdescRight"><b>Deprecated</b> - Use <a class="el" href="group__link.html#ga52c99044eabb7712efa2f1098c760804" title="Get the local condition associated with a link endpoint.">pn_link_condition()</a>. <a href="group__link.html#gaf6f11d778aa4622d8aa5db8962bb1f0a">More...</a><br /></td></tr>
<tr class="separator:gaf6f11d778aa4622d8aa5db8962bb1f0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga52c99044eabb7712efa2f1098c760804"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__condition.html#ga11eb7db7d2c205169fe3d47c996a95a5">pn_condition_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__link.html#ga52c99044eabb7712efa2f1098c760804">pn_link_condition</a> (<a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *link)</td></tr>
<tr class="memdesc:ga52c99044eabb7712efa2f1098c760804"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the local condition associated with a link endpoint. <a href="group__link.html#ga52c99044eabb7712efa2f1098c760804">More...</a><br /></td></tr>
<tr class="separator:ga52c99044eabb7712efa2f1098c760804"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga97dc5133125c9b7e4afbb1b76e6efe7b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__condition.html#ga11eb7db7d2c205169fe3d47c996a95a5">pn_condition_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__link.html#ga97dc5133125c9b7e4afbb1b76e6efe7b">pn_link_remote_condition</a> (<a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *link)</td></tr>
<tr class="memdesc:ga97dc5133125c9b7e4afbb1b76e6efe7b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the remote condition associated with a link endpoint. <a href="group__link.html#ga97dc5133125c9b7e4afbb1b76e6efe7b">More...</a><br /></td></tr>
<tr class="separator:ga97dc5133125c9b7e4afbb1b76e6efe7b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac63e43305fb1a5e3b14399a9ddc8f24d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__session.html#ga38ccb93b8f5c2892adafce5d5f0fbcd9">pn_session_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__link.html#gac63e43305fb1a5e3b14399a9ddc8f24d">pn_link_session</a> (<a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *link)</td></tr>
<tr class="memdesc:gac63e43305fb1a5e3b14399a9ddc8f24d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the parent session for a link object. <a href="group__link.html#gac63e43305fb1a5e3b14399a9ddc8f24d">More...</a><br /></td></tr>
<tr class="separator:gac63e43305fb1a5e3b14399a9ddc8f24d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7c9434c40eb653f007ff5721e2ebf73e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__link.html#ga7c9434c40eb653f007ff5721e2ebf73e">pn_link_head</a> (<a class="el" href="group__connection.html#ga886351d81ff3a977a284a206526c5aff">pn_connection_t</a> *connection, <a class="el" href="group__connection.html#gaa83193a655e32bffc18624acc2c39233">pn_state_t</a> state)</td></tr>
<tr class="memdesc:ga7c9434c40eb653f007ff5721e2ebf73e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve the first link that matches the given state mask. <a href="group__link.html#ga7c9434c40eb653f007ff5721e2ebf73e">More...</a><br /></td></tr>
<tr class="separator:ga7c9434c40eb653f007ff5721e2ebf73e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9b2a9cfa00dfdae4e01bf75483433925"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__link.html#ga9b2a9cfa00dfdae4e01bf75483433925">pn_link_next</a> (<a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *link, <a class="el" href="group__connection.html#gaa83193a655e32bffc18624acc2c39233">pn_state_t</a> state)</td></tr>
<tr class="memdesc:ga9b2a9cfa00dfdae4e01bf75483433925"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve the next link that matches the given state mask. <a href="group__link.html#ga9b2a9cfa00dfdae4e01bf75483433925">More...</a><br /></td></tr>
<tr class="separator:ga9b2a9cfa00dfdae4e01bf75483433925"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaabaca3f5d03970a122240eebc588add6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__link.html#gaabaca3f5d03970a122240eebc588add6">pn_link_open</a> (<a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *link)</td></tr>
<tr class="memdesc:gaabaca3f5d03970a122240eebc588add6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Open a link. <a href="group__link.html#gaabaca3f5d03970a122240eebc588add6">More...</a><br /></td></tr>
<tr class="separator:gaabaca3f5d03970a122240eebc588add6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4851693eb6a16fd9ab61e2df6f00770d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__link.html#ga4851693eb6a16fd9ab61e2df6f00770d">pn_link_close</a> (<a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *link)</td></tr>
<tr class="memdesc:ga4851693eb6a16fd9ab61e2df6f00770d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Close a link. <a href="group__link.html#ga4851693eb6a16fd9ab61e2df6f00770d">More...</a><br /></td></tr>
<tr class="separator:ga4851693eb6a16fd9ab61e2df6f00770d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1dc327c52ac24a0d65a17c88ce685b0b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__link.html#ga1dc327c52ac24a0d65a17c88ce685b0b">pn_link_detach</a> (<a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *link)</td></tr>
<tr class="memdesc:ga1dc327c52ac24a0d65a17c88ce685b0b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Detach a link. <a href="group__link.html#ga1dc327c52ac24a0d65a17c88ce685b0b">More...</a><br /></td></tr>
<tr class="separator:ga1dc327c52ac24a0d65a17c88ce685b0b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2c8985a9d44a813ab1739a91ae3708a3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__terminus.html#gad202baf5c904d6991e13521b7c93fdc2">pn_terminus_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__link.html#ga2c8985a9d44a813ab1739a91ae3708a3">pn_link_source</a> (<a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *link)</td></tr>
<tr class="memdesc:ga2c8985a9d44a813ab1739a91ae3708a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Access the locally defined source definition for a link. <a href="group__link.html#ga2c8985a9d44a813ab1739a91ae3708a3">More...</a><br /></td></tr>
<tr class="separator:ga2c8985a9d44a813ab1739a91ae3708a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga997c85388b9fb30151ea3b40b946e958"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__terminus.html#gad202baf5c904d6991e13521b7c93fdc2">pn_terminus_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__link.html#ga997c85388b9fb30151ea3b40b946e958">pn_link_target</a> (<a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *link)</td></tr>
<tr class="memdesc:ga997c85388b9fb30151ea3b40b946e958"><td class="mdescLeft">&#160;</td><td class="mdescRight">Access the locally defined target definition for a link. <a href="group__link.html#ga997c85388b9fb30151ea3b40b946e958">More...</a><br /></td></tr>
<tr class="separator:ga997c85388b9fb30151ea3b40b946e958"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadf6b8ff6223465f21a481e9287f60671"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__terminus.html#gad202baf5c904d6991e13521b7c93fdc2">pn_terminus_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__link.html#gadf6b8ff6223465f21a481e9287f60671">pn_link_remote_source</a> (<a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *link)</td></tr>
<tr class="memdesc:gadf6b8ff6223465f21a481e9287f60671"><td class="mdescLeft">&#160;</td><td class="mdescRight">Access the remotely defined source definition for a link. <a href="group__link.html#gadf6b8ff6223465f21a481e9287f60671">More...</a><br /></td></tr>
<tr class="separator:gadf6b8ff6223465f21a481e9287f60671"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabf61668a66ae189dbb4820da6ee30d90"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__terminus.html#gad202baf5c904d6991e13521b7c93fdc2">pn_terminus_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__link.html#gabf61668a66ae189dbb4820da6ee30d90">pn_link_remote_target</a> (<a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *link)</td></tr>
<tr class="memdesc:gabf61668a66ae189dbb4820da6ee30d90"><td class="mdescLeft">&#160;</td><td class="mdescRight">Access the remotely defined target definition for a link. <a href="group__link.html#gabf61668a66ae189dbb4820da6ee30d90">More...</a><br /></td></tr>
<tr class="separator:gabf61668a66ae189dbb4820da6ee30d90"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad7e426b0cc4759568b3fd2b4fb176260"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__delivery.html#gacdfce854066c0a4ff4db9f9a0478f340">pn_delivery_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__link.html#gad7e426b0cc4759568b3fd2b4fb176260">pn_link_current</a> (<a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *link)</td></tr>
<tr class="memdesc:gad7e426b0cc4759568b3fd2b4fb176260"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the current delivery for a link. <a href="group__link.html#gad7e426b0cc4759568b3fd2b4fb176260">More...</a><br /></td></tr>
<tr class="separator:gad7e426b0cc4759568b3fd2b4fb176260"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga93824a3859c37463e44458cd2f63d31f"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__link.html#ga93824a3859c37463e44458cd2f63d31f">pn_link_advance</a> (<a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *link)</td></tr>
<tr class="memdesc:ga93824a3859c37463e44458cd2f63d31f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Advance the current delivery of a link to the next delivery on the link. <a href="group__link.html#ga93824a3859c37463e44458cd2f63d31f">More...</a><br /></td></tr>
<tr class="separator:ga93824a3859c37463e44458cd2f63d31f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga55428637f3b8c446efd5fea3f26c932d"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__link.html#ga55428637f3b8c446efd5fea3f26c932d">pn_link_credit</a> (<a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *link)</td></tr>
<tr class="memdesc:ga55428637f3b8c446efd5fea3f26c932d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the credit balance for a link. <a href="group__link.html#ga55428637f3b8c446efd5fea3f26c932d">More...</a><br /></td></tr>
<tr class="separator:ga55428637f3b8c446efd5fea3f26c932d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga57a00950e2eeef378fd6c0a3b3b5bfe9"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__link.html#ga57a00950e2eeef378fd6c0a3b3b5bfe9">pn_link_queued</a> (<a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *link)</td></tr>
<tr class="memdesc:ga57a00950e2eeef378fd6c0a3b3b5bfe9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the number of queued deliveries for a link. <a href="group__link.html#ga57a00950e2eeef378fd6c0a3b3b5bfe9">More...</a><br /></td></tr>
<tr class="separator:ga57a00950e2eeef378fd6c0a3b3b5bfe9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab16f14d071548c5c9ab22924ee5b1ebb"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__link.html#gab16f14d071548c5c9ab22924ee5b1ebb">pn_link_remote_credit</a> (<a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *link)</td></tr>
<tr class="memdesc:gab16f14d071548c5c9ab22924ee5b1ebb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the remote view of the credit for a link. <a href="group__link.html#gab16f14d071548c5c9ab22924ee5b1ebb">More...</a><br /></td></tr>
<tr class="separator:gab16f14d071548c5c9ab22924ee5b1ebb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga40dd26f3d035c54056e2649aeb78d8ac"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__link.html#ga40dd26f3d035c54056e2649aeb78d8ac">pn_link_get_drain</a> (<a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *link)</td></tr>
<tr class="memdesc:ga40dd26f3d035c54056e2649aeb78d8ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the drain flag for a link. <a href="group__link.html#ga40dd26f3d035c54056e2649aeb78d8ac">More...</a><br /></td></tr>
<tr class="separator:ga40dd26f3d035c54056e2649aeb78d8ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga95c4018a1f1fe0e7c2e7fd02fe062d23"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__link.html#ga95c4018a1f1fe0e7c2e7fd02fe062d23">pn_link_drained</a> (<a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *link)</td></tr>
<tr class="memdesc:ga95c4018a1f1fe0e7c2e7fd02fe062d23"><td class="mdescLeft">&#160;</td><td class="mdescRight">Drain excess credit for a link. <a href="group__link.html#ga95c4018a1f1fe0e7c2e7fd02fe062d23">More...</a><br /></td></tr>
<tr class="separator:ga95c4018a1f1fe0e7c2e7fd02fe062d23"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7f1742528b32c3c9609b97a3ed449639"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__link.html#ga7f1742528b32c3c9609b97a3ed449639">pn_link_available</a> (<a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *link)</td></tr>
<tr class="memdesc:ga7f1742528b32c3c9609b97a3ed449639"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the available deliveries hint for a link. <a href="group__link.html#ga7f1742528b32c3c9609b97a3ed449639">More...</a><br /></td></tr>
<tr class="separator:ga7f1742528b32c3c9609b97a3ed449639"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacef130ca5cc6eb3eec2dd48c8bf5c7e6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__link.html#ga3fb58bd0b88d37407ebb615c2630e608">pn_snd_settle_mode_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__link.html#gacef130ca5cc6eb3eec2dd48c8bf5c7e6">pn_link_snd_settle_mode</a> (<a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *link)</td></tr>
<tr class="memdesc:gacef130ca5cc6eb3eec2dd48c8bf5c7e6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the local sender settle mode for a link. <a href="group__link.html#gacef130ca5cc6eb3eec2dd48c8bf5c7e6">More...</a><br /></td></tr>
<tr class="separator:gacef130ca5cc6eb3eec2dd48c8bf5c7e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0bc65ff494e2860e6227f68c72468101"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__link.html#gad1c2388cdae687be26222a5d66fd2d58">pn_rcv_settle_mode_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__link.html#ga0bc65ff494e2860e6227f68c72468101">pn_link_rcv_settle_mode</a> (<a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *link)</td></tr>
<tr class="memdesc:ga0bc65ff494e2860e6227f68c72468101"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the local receiver settle mode for a link. <a href="group__link.html#ga0bc65ff494e2860e6227f68c72468101">More...</a><br /></td></tr>
<tr class="separator:ga0bc65ff494e2860e6227f68c72468101"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga677c416a6365cedd23b43043dff0b89f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__link.html#ga677c416a6365cedd23b43043dff0b89f">pn_link_set_snd_settle_mode</a> (<a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *link, <a class="el" href="group__link.html#ga3fb58bd0b88d37407ebb615c2630e608">pn_snd_settle_mode_t</a> mode)</td></tr>
<tr class="memdesc:ga677c416a6365cedd23b43043dff0b89f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the local sender settle mode for a link. <a href="group__link.html#ga677c416a6365cedd23b43043dff0b89f">More...</a><br /></td></tr>
<tr class="separator:ga677c416a6365cedd23b43043dff0b89f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab6441a917c291e68984405057eb56ab8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__link.html#gab6441a917c291e68984405057eb56ab8">pn_link_set_rcv_settle_mode</a> (<a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *link, <a class="el" href="group__link.html#gad1c2388cdae687be26222a5d66fd2d58">pn_rcv_settle_mode_t</a> mode)</td></tr>
<tr class="memdesc:gab6441a917c291e68984405057eb56ab8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the local receiver settle mode for a link. <a href="group__link.html#gab6441a917c291e68984405057eb56ab8">More...</a><br /></td></tr>
<tr class="separator:gab6441a917c291e68984405057eb56ab8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga92592155f2afcf6b9aabfb4fc64c140f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__link.html#ga3fb58bd0b88d37407ebb615c2630e608">pn_snd_settle_mode_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__link.html#ga92592155f2afcf6b9aabfb4fc64c140f">pn_link_remote_snd_settle_mode</a> (<a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *link)</td></tr>
<tr class="memdesc:ga92592155f2afcf6b9aabfb4fc64c140f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the remote sender settle mode for a link. <a href="group__link.html#ga92592155f2afcf6b9aabfb4fc64c140f">More...</a><br /></td></tr>
<tr class="separator:ga92592155f2afcf6b9aabfb4fc64c140f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga378e4bb5a0519a75c3c151c15809dda5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__link.html#gad1c2388cdae687be26222a5d66fd2d58">pn_rcv_settle_mode_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__link.html#ga378e4bb5a0519a75c3c151c15809dda5">pn_link_remote_rcv_settle_mode</a> (<a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *link)</td></tr>
<tr class="memdesc:ga378e4bb5a0519a75c3c151c15809dda5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the remote receiver settle mode for a link. <a href="group__link.html#ga378e4bb5a0519a75c3c151c15809dda5">More...</a><br /></td></tr>
<tr class="separator:ga378e4bb5a0519a75c3c151c15809dda5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac7309a622f3f2296261ff8fa9bc33ba1"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__link.html#gac7309a622f3f2296261ff8fa9bc33ba1">pn_link_unsettled</a> (<a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *link)</td></tr>
<tr class="memdesc:gac7309a622f3f2296261ff8fa9bc33ba1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the number of unsettled deliveries for a link. <a href="group__link.html#gac7309a622f3f2296261ff8fa9bc33ba1">More...</a><br /></td></tr>
<tr class="separator:gac7309a622f3f2296261ff8fa9bc33ba1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6206e3d4efe0ebe0491955006930fa18"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__delivery.html#gacdfce854066c0a4ff4db9f9a0478f340">pn_delivery_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__link.html#ga6206e3d4efe0ebe0491955006930fa18">pn_unsettled_head</a> (<a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *link)</td></tr>
<tr class="memdesc:ga6206e3d4efe0ebe0491955006930fa18"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the first unsettled delivery for a link. <a href="group__link.html#ga6206e3d4efe0ebe0491955006930fa18">More...</a><br /></td></tr>
<tr class="separator:ga6206e3d4efe0ebe0491955006930fa18"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6dc9ad6d95d1cccd6f3d29b782269cce"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__delivery.html#gacdfce854066c0a4ff4db9f9a0478f340">pn_delivery_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__link.html#ga6dc9ad6d95d1cccd6f3d29b782269cce">pn_unsettled_next</a> (<a class="el" href="group__delivery.html#gacdfce854066c0a4ff4db9f9a0478f340">pn_delivery_t</a> *delivery)</td></tr>
<tr class="memdesc:ga6dc9ad6d95d1cccd6f3d29b782269cce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the next unsettled delivery on a link. <a href="group__link.html#ga6dc9ad6d95d1cccd6f3d29b782269cce">More...</a><br /></td></tr>
<tr class="separator:ga6dc9ad6d95d1cccd6f3d29b782269cce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaef3f2e4bca87f9adc70e90dce7cd42b2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__link.html#gaef3f2e4bca87f9adc70e90dce7cd42b2">pn_link_offered</a> (<a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *sender, int credit)</td></tr>
<tr class="memdesc:gaef3f2e4bca87f9adc70e90dce7cd42b2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Signal the availability of deliveries for a link. <a href="group__link.html#gaef3f2e4bca87f9adc70e90dce7cd42b2">More...</a><br /></td></tr>
<tr class="separator:gaef3f2e4bca87f9adc70e90dce7cd42b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa825fac21730f3f9fff37d156e5f88e9"><td class="memItemLeft" align="right" valign="top">ssize_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__link.html#gaa825fac21730f3f9fff37d156e5f88e9">pn_link_send</a> (<a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *sender, const char *bytes, size_t n)</td></tr>
<tr class="memdesc:gaa825fac21730f3f9fff37d156e5f88e9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Send message data for the current delivery on a link. <a href="group__link.html#gaa825fac21730f3f9fff37d156e5f88e9">More...</a><br /></td></tr>
<tr class="separator:gaa825fac21730f3f9fff37d156e5f88e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafec44cf1c79ec03f3ac009e1879e71a9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__link.html#gafec44cf1c79ec03f3ac009e1879e71a9">pn_link_flow</a> (<a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *receiver, int credit)</td></tr>
<tr class="memdesc:gafec44cf1c79ec03f3ac009e1879e71a9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Grant credit for incoming deliveries on a receiver. <a href="group__link.html#gafec44cf1c79ec03f3ac009e1879e71a9">More...</a><br /></td></tr>
<tr class="separator:gafec44cf1c79ec03f3ac009e1879e71a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad7ad9bc5c9ea7e8a21cd4fa472d2c8df"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__link.html#gad7ad9bc5c9ea7e8a21cd4fa472d2c8df">pn_link_drain</a> (<a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *receiver, int credit)</td></tr>
<tr class="memdesc:gad7ad9bc5c9ea7e8a21cd4fa472d2c8df"><td class="mdescLeft">&#160;</td><td class="mdescRight">Grant credit for incoming deliveries on a receiver, and set drain mode to true. <a href="group__link.html#gad7ad9bc5c9ea7e8a21cd4fa472d2c8df">More...</a><br /></td></tr>
<tr class="separator:gad7ad9bc5c9ea7e8a21cd4fa472d2c8df"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaeb417e6b7e99c76f61549f5ed5519395"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__link.html#gaeb417e6b7e99c76f61549f5ed5519395">pn_link_set_drain</a> (<a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *receiver, bool drain)</td></tr>
<tr class="memdesc:gaeb417e6b7e99c76f61549f5ed5519395"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the drain mode on a link. <a href="group__link.html#gaeb417e6b7e99c76f61549f5ed5519395">More...</a><br /></td></tr>
<tr class="separator:gaeb417e6b7e99c76f61549f5ed5519395"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga06c97ce7396973dca0d311567f25f95a"><td class="memItemLeft" align="right" valign="top">ssize_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__link.html#ga06c97ce7396973dca0d311567f25f95a">pn_link_recv</a> (<a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *receiver, char *bytes, size_t n)</td></tr>
<tr class="memdesc:ga06c97ce7396973dca0d311567f25f95a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Receive message data for the current delivery on a link. <a href="group__link.html#ga06c97ce7396973dca0d311567f25f95a">More...</a><br /></td></tr>
<tr class="separator:ga06c97ce7396973dca0d311567f25f95a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4a821eaf6298b94522572fad73b8e2d1"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__link.html#ga4a821eaf6298b94522572fad73b8e2d1">pn_link_draining</a> (<a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *receiver)</td></tr>
<tr class="memdesc:ga4a821eaf6298b94522572fad73b8e2d1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if a link is currently draining. <a href="group__link.html#ga4a821eaf6298b94522572fad73b8e2d1">More...</a><br /></td></tr>
<tr class="separator:ga4a821eaf6298b94522572fad73b8e2d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac282341dacff892eba8e224eca5c5c52"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__link.html#gac282341dacff892eba8e224eca5c5c52">pn_link_max_message_size</a> (<a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *link)</td></tr>
<tr class="memdesc:gac282341dacff892eba8e224eca5c5c52"><td class="mdescLeft">&#160;</td><td class="mdescRight"><b>Unsettled API</b> - Get the maximum message size for a link. <a href="group__link.html#gac282341dacff892eba8e224eca5c5c52">More...</a><br /></td></tr>
<tr class="separator:gac282341dacff892eba8e224eca5c5c52"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2421a9ddebba208338412dea365cf6ad"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__link.html#ga2421a9ddebba208338412dea365cf6ad">pn_link_set_max_message_size</a> (<a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *link, uint64_t size)</td></tr>
<tr class="memdesc:ga2421a9ddebba208338412dea365cf6ad"><td class="mdescLeft">&#160;</td><td class="mdescRight"><b>Unsettled API</b> - Set the maximum message size for a link. <a href="group__link.html#ga2421a9ddebba208338412dea365cf6ad">More...</a><br /></td></tr>
<tr class="separator:ga2421a9ddebba208338412dea365cf6ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9fc507fe3e207e84f2fc251cf9bd833d"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__link.html#ga9fc507fe3e207e84f2fc251cf9bd833d">pn_link_remote_max_message_size</a> (<a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *link)</td></tr>
<tr class="memdesc:ga9fc507fe3e207e84f2fc251cf9bd833d"><td class="mdescLeft">&#160;</td><td class="mdescRight"><b>Unsettled API</b> - Get the remote view of the maximum message size for a link. <a href="group__link.html#ga9fc507fe3e207e84f2fc251cf9bd833d">More...</a><br /></td></tr>
<tr class="separator:ga9fc507fe3e207e84f2fc251cf9bd833d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacb0917118cdecd83a1bc89a0fd12c5f0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__data.html#ga5d6cf528776e8b6ad6d67caf095986bf">pn_data_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__link.html#gacb0917118cdecd83a1bc89a0fd12c5f0">pn_link_properties</a> (<a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *link)</td></tr>
<tr class="memdesc:gacb0917118cdecd83a1bc89a0fd12c5f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Access/modify the AMQP properties data for a link object. <a href="group__link.html#gacb0917118cdecd83a1bc89a0fd12c5f0">More...</a><br /></td></tr>
<tr class="separator:gacb0917118cdecd83a1bc89a0fd12c5f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga60819ab487fbaeadccd7e151be71868f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__data.html#ga5d6cf528776e8b6ad6d67caf095986bf">pn_data_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__link.html#ga60819ab487fbaeadccd7e151be71868f">pn_link_remote_properties</a> (<a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *link)</td></tr>
<tr class="memdesc:ga60819ab487fbaeadccd7e151be71868f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Access the AMQP link properties supplied by the remote link endpoint. <a href="group__link.html#ga60819ab487fbaeadccd7e151be71868f">More...</a><br /></td></tr>
<tr class="separator:ga60819ab487fbaeadccd7e151be71868f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>A channel for transferring messages. </p>
<h2 class="groupheader">Typedef Documentation</h2>
<a id="ga89dad3aa7934329a7ff467c636687bc0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga89dad3aa7934329a7ff467c636687bc0">&#9670;&nbsp;</a></span>pn_link_t</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> <a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>An AMQP Link object. </p>
<p>A pn_link_t object encapsulates all of the endpoint state associated with an AMQP Link. A pn_link_t object contains an ordered sequence of <a class="el" href="group__delivery.html#gacdfce854066c0a4ff4db9f9a0478f340" title="An AMQP Delivery object.">pn_delivery_t</a> objects representing in-flight deliveries. A pn_link_t may be either sender or a receiver but never both.</p>
<p>A pn_link_t object maintains a pointer to the <em>current</em> delivery within the ordered sequence of deliveries contained by the link (See <a class="el" href="group__link.html#gad7e426b0cc4759568b3fd2b4fb176260" title="Get the current delivery for a link.">pn_link_current</a>). The <em>current</em> delivery is the target of a number of operations associated with the link, such as sending (<a class="el" href="group__link.html#gaa825fac21730f3f9fff37d156e5f88e9" title="Send message data for the current delivery on a link.">pn_link_send</a>) and receiving (<a class="el" href="group__link.html#ga06c97ce7396973dca0d311567f25f95a" title="Receive message data for the current delivery on a link.">pn_link_recv</a>) message data. </p>
</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a id="ga3fb58bd0b88d37407ebb615c2630e608"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3fb58bd0b88d37407ebb615c2630e608">&#9670;&nbsp;</a></span>pn_snd_settle_mode_t</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__link.html#ga3fb58bd0b88d37407ebb615c2630e608">pn_snd_settle_mode_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Describes the permitted/expected settlement behaviours of a sending link. </p>
<p>The sender settle mode describes the permitted and expected behaviour of a sending link with respect to settling of deliveries. See <a class="el" href="group__delivery.html#ga98c275fd7158e8b9d7d48d70503d68df" title="Settle a delivery.">pn_delivery_settle</a> for more details. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga3fb58bd0b88d37407ebb615c2630e608a8bd9806d2f8d8c1724ed26bb0543bade"></a>PN_SND_UNSETTLED&#160;</td><td class="fielddoc"><p>The sender will send all deliveries initially unsettled. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga3fb58bd0b88d37407ebb615c2630e608ac159f0edca565961b554768a42e82bf0"></a>PN_SND_SETTLED&#160;</td><td class="fielddoc"><p>The sender will send all deliveries settled to the receiver. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga3fb58bd0b88d37407ebb615c2630e608ac33a5700d0247976b465aeb7c1437fd1"></a>PN_SND_MIXED&#160;</td><td class="fielddoc"><p>The sender may send a mixture of settled and unsettled deliveries. </p>
</td></tr>
</table>
</div>
</div>
<a id="gad1c2388cdae687be26222a5d66fd2d58"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad1c2388cdae687be26222a5d66fd2d58">&#9670;&nbsp;</a></span>pn_rcv_settle_mode_t</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__link.html#gad1c2388cdae687be26222a5d66fd2d58">pn_rcv_settle_mode_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Describes the permitted/expected settlement behaviours of a receiving link. </p>
<p>The receiver settle mode describes the permitted and expected behaviour of a receiving link with respect to settling of deliveries. See <a class="el" href="group__delivery.html#ga98c275fd7158e8b9d7d48d70503d68df" title="Settle a delivery.">pn_delivery_settle</a> for more details. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ggad1c2388cdae687be26222a5d66fd2d58ac22b82396bd686940dfcc861302a8262"></a>PN_RCV_FIRST&#160;</td><td class="fielddoc"><p>The receiver will settle deliveries regardless of what the sender does. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggad1c2388cdae687be26222a5d66fd2d58ac79dc7f63fce078a8f0fe268c81dcaf3"></a>PN_RCV_SECOND&#160;</td><td class="fielddoc"><p>The receiver will only settle deliveries after the sender settles. </p>
</td></tr>
</table>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="ga469bef2e81c53e85899ffbb277616a8c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga469bef2e81c53e85899ffbb277616a8c">&#9670;&nbsp;</a></span>pn_sender()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a>* pn_sender </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__session.html#ga38ccb93b8f5c2892adafce5d5f0fbcd9">pn_session_t</a> *&#160;</td>
<td class="paramname"><em>session</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>name</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Construct a new sender on a session. </p>
<p>Each sending link between two AMQP containers must be uniquely named. Note that this uniqueness cannot be enforced at the API level, so some consideration should be taken in choosing link names.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">session</td><td>the session object </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>the name of the link </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a newly constructed sender link or NULL on error </dd></dl>
<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="send_8c-example.html#a25">send.c</a>.</dd>
</dl>
</div>
</div>
<a id="ga5e314b3e07b48ebcffbac63f265fa69f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5e314b3e07b48ebcffbac63f265fa69f">&#9670;&nbsp;</a></span>pn_receiver()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a>* pn_receiver </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__session.html#ga38ccb93b8f5c2892adafce5d5f0fbcd9">pn_session_t</a> *&#160;</td>
<td class="paramname"><em>session</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>name</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Construct a new receiver on a session. </p>
<p>Each receiving link between two AMQP containers must be uniquely named. Note that this uniqueness cannot be enforced at the API level, so some consideration should be taken in choosing link names.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">session</td><td>the session object </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>the name of the link </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a newly constructed receiver link or NULL on error </dd></dl>
<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="receive_8c-example.html#a20">receive.c</a>.</dd>
</dl>
</div>
</div>
<a id="gadd3b8899fe023d3506fb88d228d6b1b7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gadd3b8899fe023d3506fb88d228d6b1b7">&#9670;&nbsp;</a></span>pn_link_free()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void pn_link_free </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *&#160;</td>
<td class="paramname"><em>link</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Free a link object. </p>
<p>When a link object is freed, all <a class="el" href="group__delivery.html#gacdfce854066c0a4ff4db9f9a0478f340" title="An AMQP Delivery object.">pn_delivery_t</a> objects associated with the session are also freed. Freeing a link will settle any unsettled deliveries on the link.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">link</td><td>a link object to free (or NULL) </td></tr>
</table>
</dd>
</dl>
<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="broker_8c-example.html#a89">broker.c</a>, and <a class="el" href="direct_8c-example.html#a81">direct.c</a>.</dd>
</dl>
</div>
</div>
<a id="ga93e6b527743f433da2ff367c1b2c500a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga93e6b527743f433da2ff367c1b2c500a">&#9670;&nbsp;</a></span>pn_link_get_context()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void* pn_link_get_context </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *&#160;</td>
<td class="paramname"><em>link</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the application context that is associated with a link object. </p>
<p>The application context for a link may be set using <a class="el" href="group__link.html#ga376f2cc18bbd771d95aa8222586d19b2" title="Set a new application context for a link object.">pn_link_set_context</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">link</td><td>the link whose context is to be returned. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the application context for the link object </dd></dl>
<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="broker_8c-example.html#a12">broker.c</a>.</dd>
</dl>
</div>
</div>
<a id="ga376f2cc18bbd771d95aa8222586d19b2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga376f2cc18bbd771d95aa8222586d19b2">&#9670;&nbsp;</a></span>pn_link_set_context()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void pn_link_set_context </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *&#160;</td>
<td class="paramname"><em>link</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>context</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Set a new application context for a link object. </p>
<p>The application context for a link object may be retrieved using <a class="el" href="group__link.html#ga93e6b527743f433da2ff367c1b2c500a" title="Get the application context that is associated with a link object.">pn_link_get_context</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">link</td><td>the link object </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">context</td><td>the application context </td></tr>
</table>
</dd>
</dl>
<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="broker_8c-example.html#a13">broker.c</a>.</dd>
</dl>
</div>
</div>
<a id="ga8b19ffdb7934940fa7c5fd75c5fe2d69"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8b19ffdb7934940fa7c5fd75c5fe2d69">&#9670;&nbsp;</a></span>pn_link_attachments()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">pn_record_t* pn_link_attachments </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *&#160;</td>
<td class="paramname"><em>link</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the attachments that are associated with a link object. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">link</td><td>the link whose attachments are to be returned. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the attachments for the link object </dd></dl>
</div>
</div>
<a id="gaa44112980ebabbb5cbd002670073a751"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa44112980ebabbb5cbd002670073a751">&#9670;&nbsp;</a></span>pn_link_name()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const char* pn_link_name </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *&#160;</td>
<td class="paramname"><em>link</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the name of a link. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">link</td><td>a link object </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the name of the link </dd></dl>
</div>
</div>
<a id="ga7c48ef214568267839aea04ed337926b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7c48ef214568267839aea04ed337926b">&#9670;&nbsp;</a></span>pn_link_is_sender()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool pn_link_is_sender </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *&#160;</td>
<td class="paramname"><em>link</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Test if a link is a sender. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">link</td><td>a link object </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if and only if the link is a sender </dd></dl>
<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="broker_8c-example.html#a16">broker.c</a>, and <a class="el" href="direct_8c-example.html#a89">direct.c</a>.</dd>
</dl>
</div>
</div>
<a id="gae7045dd02f2c9450ff8737e005628d81"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae7045dd02f2c9450ff8737e005628d81">&#9670;&nbsp;</a></span>pn_link_is_receiver()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool pn_link_is_receiver </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *&#160;</td>
<td class="paramname"><em>link</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Test if a link is a receiver. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">link</td><td>a link object </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if and only if the link is a receiver </dd></dl>
</div>
</div>
<a id="gad502b38bc184ad0bfaa86dede81f62c9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad502b38bc184ad0bfaa86dede81f62c9">&#9670;&nbsp;</a></span>pn_link_state()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__connection.html#gaa83193a655e32bffc18624acc2c39233">pn_state_t</a> pn_link_state </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *&#160;</td>
<td class="paramname"><em>link</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the endpoint state flags for a link. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">link</td><td>the link </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the link's state flags </dd></dl>
</div>
</div>
<a id="gaf6f11d778aa4622d8aa5db8962bb1f0a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf6f11d778aa4622d8aa5db8962bb1f0a">&#9670;&nbsp;</a></span>pn_link_error()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__error.html#ga24a289d5b32c9bd8a775600a5af83d52">pn_error_t</a>* pn_link_error </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *&#160;</td>
<td class="paramname"><em>link</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Deprecated</b> - Use <a class="el" href="group__link.html#ga52c99044eabb7712efa2f1098c760804" title="Get the local condition associated with a link endpoint.">pn_link_condition()</a>. </p>
<p>Get additional error information associated with the link.</p>
<p>Whenever a link operation fails (i.e. returns an error code), additional error details can be obtained using this function. The error object that is returned may also be used to clear the error condition.</p>
<p>The pointer returned by this operation is valid until the link object is freed.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">link</td><td>the link object </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the link's error object </dd></dl>
</div>
</div>
<a id="ga52c99044eabb7712efa2f1098c760804"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga52c99044eabb7712efa2f1098c760804">&#9670;&nbsp;</a></span>pn_link_condition()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__condition.html#ga11eb7db7d2c205169fe3d47c996a95a5">pn_condition_t</a>* pn_link_condition </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *&#160;</td>
<td class="paramname"><em>link</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the local condition associated with a link endpoint. </p>
<p>The <a class="el" href="group__condition.html#ga11eb7db7d2c205169fe3d47c996a95a5" title="An AMQP Condition object.">pn_condition_t</a> object retrieved may be modified prior to closing a link in order to indicate a particular condition exists when the link closes. This is normally used to communicate error conditions to the remote peer, however it may also be used in non error cases. See <a class="el" href="group__condition.html#ga11eb7db7d2c205169fe3d47c996a95a5" title="An AMQP Condition object.">pn_condition_t</a> for more details.</p>
<p>The pointer returned by this operation is valid until the link object is freed.</p>
<p>Deprecation notice: note that this will always return an empty error object</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">link</td><td>the link object </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the link's local condition object </dd></dl>
<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="broker_8c-example.html#a71">broker.c</a>, <a class="el" href="direct_8c-example.html#a39">direct.c</a>, and <a class="el" href="receive_8c-example.html#a35">receive.c</a>.</dd>
</dl>
</div>
</div>
<a id="ga97dc5133125c9b7e4afbb1b76e6efe7b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga97dc5133125c9b7e4afbb1b76e6efe7b">&#9670;&nbsp;</a></span>pn_link_remote_condition()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__condition.html#ga11eb7db7d2c205169fe3d47c996a95a5">pn_condition_t</a>* pn_link_remote_condition </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *&#160;</td>
<td class="paramname"><em>link</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the remote condition associated with a link endpoint. </p>
<p>The <a class="el" href="group__condition.html#ga11eb7db7d2c205169fe3d47c996a95a5" title="An AMQP Condition object.">pn_condition_t</a> object retrieved may be examined in order to determine whether the remote peer was indicating some sort of exceptional condition when the remote link endpoint was closed. The <a class="el" href="group__condition.html#ga11eb7db7d2c205169fe3d47c996a95a5" title="An AMQP Condition object.">pn_condition_t</a> object returned may not be modified.</p>
<p>The pointer returned by this operation is valid until the link object is freed.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">link</td><td>the link object </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the link's remote condition object </dd></dl>
<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="broker_8c-example.html#a88">broker.c</a>, <a class="el" href="direct_8c-example.html#a80">direct.c</a>, <a class="el" href="receive_8c-example.html#a54">receive.c</a>, and <a class="el" href="send_8c-example.html#a48">send.c</a>.</dd>
</dl>
</div>
</div>
<a id="gac63e43305fb1a5e3b14399a9ddc8f24d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac63e43305fb1a5e3b14399a9ddc8f24d">&#9670;&nbsp;</a></span>pn_link_session()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__session.html#ga38ccb93b8f5c2892adafce5d5f0fbcd9">pn_session_t</a>* pn_link_session </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *&#160;</td>
<td class="paramname"><em>link</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the parent session for a link object. </p>
<p>This operation retrieves the parent <a class="el" href="group__session.html#ga38ccb93b8f5c2892adafce5d5f0fbcd9" title="An AMQP Session object.">pn_session_t</a> object that contains the given <a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0" title="An AMQP Link object.">pn_link_t</a> object.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">link</td><td>the link object </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the parent session object </dd></dl>
<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="broker_8c-example.html#a2">broker.c</a>, <a class="el" href="direct_8c-example.html#a85">direct.c</a>, and <a class="el" href="receive_8c-example.html#a41">receive.c</a>.</dd>
</dl>
</div>
</div>
<a id="ga7c9434c40eb653f007ff5721e2ebf73e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7c9434c40eb653f007ff5721e2ebf73e">&#9670;&nbsp;</a></span>pn_link_head()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a>* pn_link_head </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__connection.html#ga886351d81ff3a977a284a206526c5aff">pn_connection_t</a> *&#160;</td>
<td class="paramname"><em>connection</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__connection.html#gaa83193a655e32bffc18624acc2c39233">pn_state_t</a>&#160;</td>
<td class="paramname"><em>state</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Retrieve the first link that matches the given state mask. </p>
<p>Examines the state of each link owned by the connection and returns the first link that matches the given state mask. If state contains both local and remote flags, then an exact match against those flags is performed. If state contains only local or only remote flags, then a match occurs if any of the local or remote flags are set respectively. state==0 matches all links.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">connection</td><td>to be searched for matching Links </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">state</td><td>mask to match </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the first link owned by the connection that matches the mask, else NULL if no links match </dd></dl>
<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="broker_8c-example.html#a20">broker.c</a>.</dd>
</dl>
</div>
</div>
<a id="ga9b2a9cfa00dfdae4e01bf75483433925"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga9b2a9cfa00dfdae4e01bf75483433925">&#9670;&nbsp;</a></span>pn_link_next()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a>* pn_link_next </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *&#160;</td>
<td class="paramname"><em>link</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__connection.html#gaa83193a655e32bffc18624acc2c39233">pn_state_t</a>&#160;</td>
<td class="paramname"><em>state</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Retrieve the next link that matches the given state mask. </p>
<p>When used with pn_link_head, the application can access all links on the connection that match the given state. See pn_link_head for description of match behavior.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">link</td><td>the previous link obtained from pn_link_head or pn_link_next </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">state</td><td>mask to match </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the next session owned by the connection that matches the mask, else NULL if no sessions match </dd></dl>
<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="broker_8c-example.html#a21">broker.c</a>.</dd>
</dl>
</div>
</div>
<a id="gaabaca3f5d03970a122240eebc588add6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaabaca3f5d03970a122240eebc588add6">&#9670;&nbsp;</a></span>pn_link_open()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void pn_link_open </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *&#160;</td>
<td class="paramname"><em>link</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Open a link. </p>
<p>Once this operation has completed, the PN_LOCAL_ACTIVE state flag will be set.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">link</td><td>a link object </td></tr>
</table>
</dd>
</dl>
<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="broker_8c-example.html#a59">broker.c</a>, <a class="el" href="direct_8c-example.html#a27">direct.c</a>, <a class="el" href="receive_8c-example.html#a23">receive.c</a>, and <a class="el" href="send_8c-example.html#a28">send.c</a>.</dd>
</dl>
</div>
</div>
<a id="ga4851693eb6a16fd9ab61e2df6f00770d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga4851693eb6a16fd9ab61e2df6f00770d">&#9670;&nbsp;</a></span>pn_link_close()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void pn_link_close </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *&#160;</td>
<td class="paramname"><em>link</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Close a link. </p>
<p>Once this operation has completed, the PN_LOCAL_CLOSED state flag will be set. This may be called without calling <a class="el" href="group__link.html#gaabaca3f5d03970a122240eebc588add6" title="Open a link.">pn_link_open</a>, in this case it is equivalent to calling <a class="el" href="group__link.html#gaabaca3f5d03970a122240eebc588add6" title="Open a link.">pn_link_open</a> followed by <a class="el" href="group__link.html#ga4851693eb6a16fd9ab61e2df6f00770d" title="Close a link.">pn_link_close</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">link</td><td>a link object </td></tr>
</table>
</dd>
</dl>
<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="broker_8c-example.html#a73">broker.c</a>, <a class="el" href="direct_8c-example.html#a41">direct.c</a>, and <a class="el" href="receive_8c-example.html#a36">receive.c</a>.</dd>
</dl>
</div>
</div>
<a id="ga1dc327c52ac24a0d65a17c88ce685b0b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1dc327c52ac24a0d65a17c88ce685b0b">&#9670;&nbsp;</a></span>pn_link_detach()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void pn_link_detach </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *&#160;</td>
<td class="paramname"><em>link</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Detach a link. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">link</td><td>a link object </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ga2c8985a9d44a813ab1739a91ae3708a3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2c8985a9d44a813ab1739a91ae3708a3">&#9670;&nbsp;</a></span>pn_link_source()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__terminus.html#gad202baf5c904d6991e13521b7c93fdc2">pn_terminus_t</a>* pn_link_source </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *&#160;</td>
<td class="paramname"><em>link</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Access the locally defined source definition for a link. </p>
<p>The pointer returned by this operation is valid until the link object is freed.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">link</td><td>a link object </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a pointer to a source terminus </dd></dl>
<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="broker_8c-example.html#a19">broker.c</a>, and <a class="el" href="receive_8c-example.html#a22">receive.c</a>.</dd>
</dl>
</div>
</div>
<a id="ga997c85388b9fb30151ea3b40b946e958"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga997c85388b9fb30151ea3b40b946e958">&#9670;&nbsp;</a></span>pn_link_target()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__terminus.html#gad202baf5c904d6991e13521b7c93fdc2">pn_terminus_t</a>* pn_link_target </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *&#160;</td>
<td class="paramname"><em>link</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Access the locally defined target definition for a link. </p>
<p>The pointer returned by this operation is valid until the link object is freed.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">link</td><td>a link object </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a pointer to a target terminus </dd></dl>
<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="broker_8c-example.html#a57">broker.c</a>, <a class="el" href="direct_8c-example.html#a47">direct.c</a>, and <a class="el" href="send_8c-example.html#a27">send.c</a>.</dd>
</dl>
</div>
</div>
<a id="gadf6b8ff6223465f21a481e9287f60671"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gadf6b8ff6223465f21a481e9287f60671">&#9670;&nbsp;</a></span>pn_link_remote_source()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__terminus.html#gad202baf5c904d6991e13521b7c93fdc2">pn_terminus_t</a>* pn_link_remote_source </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *&#160;</td>
<td class="paramname"><em>link</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Access the remotely defined source definition for a link. </p>
<p>The pointer returned by this operation is valid until the link object is freed. The remotely defined terminus will be empty until the link is remotely opened as indicated by the PN_REMOTE_ACTIVE flag.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">link</td><td>a link object </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a pointer to the remotely defined source terminus </dd></dl>
<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="broker_8c-example.html#a54">broker.c</a>.</dd>
</dl>
</div>
</div>
<a id="gabf61668a66ae189dbb4820da6ee30d90"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gabf61668a66ae189dbb4820da6ee30d90">&#9670;&nbsp;</a></span>pn_link_remote_target()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__terminus.html#gad202baf5c904d6991e13521b7c93fdc2">pn_terminus_t</a>* pn_link_remote_target </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *&#160;</td>
<td class="paramname"><em>link</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Access the remotely defined target definition for a link. </p>
<p>The pointer returned by this operation is valid until the link object is freed. The remotely defined terminus will be empty until the link is remotely opened as indicated by the PN_REMOTE_ACTIVE flag.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">link</td><td>a link object </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a pointer to the remotely defined target terminus </dd></dl>
<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="broker_8c-example.html#a56">broker.c</a>.</dd>
</dl>
</div>
</div>
<a id="gad7e426b0cc4759568b3fd2b4fb176260"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad7e426b0cc4759568b3fd2b4fb176260">&#9670;&nbsp;</a></span>pn_link_current()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__delivery.html#gacdfce854066c0a4ff4db9f9a0478f340">pn_delivery_t</a>* pn_link_current </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *&#160;</td>
<td class="paramname"><em>link</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the current delivery for a link. </p>
<p>Each link maintains a sequence of deliveries in the order they were created, along with a pointer to the <em>current</em> delivery. All send/recv operations on a link take place on the <em>current</em> delivery. If a link has no current delivery, the current delivery is automatically initialized to the next delivery created on the link. Once initialized, the current delivery remains the same until it is changed through use of <a class="el" href="group__link.html#ga93824a3859c37463e44458cd2f63d31f" title="Advance the current delivery of a link to the next delivery on the link.">pn_link_advance</a> or until it is settled via <a class="el" href="group__delivery.html#ga98c275fd7158e8b9d7d48d70503d68df" title="Settle a delivery.">pn_delivery_settle</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">link</td><td>a link object </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the current delivery for the link, or NULL if there is none </dd></dl>
</div>
</div>
<a id="ga93824a3859c37463e44458cd2f63d31f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga93824a3859c37463e44458cd2f63d31f">&#9670;&nbsp;</a></span>pn_link_advance()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool pn_link_advance </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *&#160;</td>
<td class="paramname"><em>link</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Advance the current delivery of a link to the next delivery on the link. </p>
<p>For sending links this operation is used to finish sending message data for the current outgoing delivery and move on to the next outgoing delivery (if any).</p>
<p>For receiving links, this operation is used to finish accessing message data from the current incoming delivery and move on to the next incoming delivery (if any).</p>
<p>Each link maintains a sequence of deliveries in the order they were created, along with a pointer to the <em>current</em> delivery. The pn_link_advance operation will modify the <em>current</em> delivery on the link to point to the next delivery in the sequence. If there is no next delivery in the sequence, the current delivery will be set to NULL. This operation will return true if invoking it caused the value of the current delivery to change, even if it was set to NULL.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">link</td><td>a link object </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if the current delivery was changed </dd></dl>
<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="broker_8c-example.html#a8">broker.c</a>.</dd>
</dl>
</div>
</div>
<a id="ga55428637f3b8c446efd5fea3f26c932d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga55428637f3b8c446efd5fea3f26c932d">&#9670;&nbsp;</a></span>pn_link_credit()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int pn_link_credit </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *&#160;</td>
<td class="paramname"><em>link</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the credit balance for a link. </p>
<p>Links use a credit based flow control scheme. Every receiver maintains a credit balance that corresponds to the number of deliveries that the receiver can accept at any given moment. As more capacity becomes available at the receiver (see <a class="el" href="group__link.html#gafec44cf1c79ec03f3ac009e1879e71a9" title="Grant credit for incoming deliveries on a receiver.">pn_link_flow</a>), it adds credit to this balance and communicates the new balance to the sender. Whenever a delivery is sent/received, the credit balance maintained by the link is decremented by one. Once the credit balance at the sender reaches zero, the sender must pause sending until more credit is obtained from the receiver.</p>
<p>Note that a sending link may still be used to send deliveries even if pn_link_credit reaches zero, however those deliveries will end up being buffered by the link until enough credit is obtained from the receiver to send them over the wire. In this case the balance reported by <a class="el" href="group__link.html#ga55428637f3b8c446efd5fea3f26c932d" title="Get the credit balance for a link.">pn_link_credit</a> will go negative.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">link</td><td>a link object </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the credit balance for the link </dd></dl>
<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="broker_8c-example.html#a17">broker.c</a>, <a class="el" href="direct_8c-example.html#a45">direct.c</a>, <a class="el" href="receive_8c-example.html#a40">receive.c</a>, and <a class="el" href="send_8c-example.html#a31">send.c</a>.</dd>
</dl>
</div>
</div>
<a id="ga57a00950e2eeef378fd6c0a3b3b5bfe9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga57a00950e2eeef378fd6c0a3b3b5bfe9">&#9670;&nbsp;</a></span>pn_link_queued()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int pn_link_queued </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *&#160;</td>
<td class="paramname"><em>link</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the number of queued deliveries for a link. </p>
<p>Links may queue deliveries for a number of reasons, for example there may be insufficient credit to send them to the receiver (see <a class="el" href="group__link.html#ga55428637f3b8c446efd5fea3f26c932d" title="Get the credit balance for a link.">pn_link_credit</a>), or they simply may not have yet had a chance to be written to the wire. This operation will return the number of queued deliveries on a link.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">link</td><td>a link object </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the number of queued deliveries for the link </dd></dl>
</div>
</div>
<a id="gab16f14d071548c5c9ab22924ee5b1ebb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab16f14d071548c5c9ab22924ee5b1ebb">&#9670;&nbsp;</a></span>pn_link_remote_credit()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int pn_link_remote_credit </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *&#160;</td>
<td class="paramname"><em>link</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the remote view of the credit for a link. </p>
<p>The remote view of the credit for a link differs from local view of credit for a link by the number of queued deliveries. In other words <a class="el" href="group__link.html#gab16f14d071548c5c9ab22924ee5b1ebb" title="Get the remote view of the credit for a link.">pn_link_remote_credit</a> is defined to be <a class="el" href="group__link.html#ga55428637f3b8c446efd5fea3f26c932d" title="Get the credit balance for a link.">pn_link_credit</a> - <a class="el" href="group__link.html#ga57a00950e2eeef378fd6c0a3b3b5bfe9" title="Get the number of queued deliveries for a link.">pn_link_queued</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">link</td><td>a link object </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the remote view of the credit for a link </dd></dl>
</div>
</div>
<a id="ga40dd26f3d035c54056e2649aeb78d8ac"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga40dd26f3d035c54056e2649aeb78d8ac">&#9670;&nbsp;</a></span>pn_link_get_drain()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool pn_link_get_drain </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *&#160;</td>
<td class="paramname"><em>link</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the drain flag for a link. </p>
<p>If a link is in drain mode, then the sending endpoint of a link must immediately use up all available credit on the link. If this is not possible, the excess credit must be returned by invoking <a class="el" href="group__link.html#ga95c4018a1f1fe0e7c2e7fd02fe062d23" title="Drain excess credit for a link.">pn_link_drained</a>. Only the receiving endpoint can set the drain mode. See <a class="el" href="group__link.html#gaeb417e6b7e99c76f61549f5ed5519395" title="Set the drain mode on a link.">pn_link_set_drain</a> for details.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">link</td><td>a link object </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if and only if the link is in drain mode </dd></dl>
</div>
</div>
<a id="ga95c4018a1f1fe0e7c2e7fd02fe062d23"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga95c4018a1f1fe0e7c2e7fd02fe062d23">&#9670;&nbsp;</a></span>pn_link_drained()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int pn_link_drained </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *&#160;</td>
<td class="paramname"><em>link</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Drain excess credit for a link. </p>
<p>When a link is in drain mode, the sender must use all excess credit immediately, and release any excess credit back to the receiver if there are no deliveries available to send.</p>
<p>When invoked on a sending link that is in drain mode, this operation will release all excess credit back to the receiver and return the number of credits released back to the sender. If the link is not in drain mode, this operation is a noop.</p>
<p>When invoked on a receiving link, this operation will return and reset the number of credits the sender has released back to the receiver.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">link</td><td>a link object </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the number of credits drained </dd></dl>
</div>
</div>
<a id="ga7f1742528b32c3c9609b97a3ed449639"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7f1742528b32c3c9609b97a3ed449639">&#9670;&nbsp;</a></span>pn_link_available()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int pn_link_available </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *&#160;</td>
<td class="paramname"><em>link</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the available deliveries hint for a link. </p>
<p>The available count for a link provides a hint as to the number of deliveries that might be able to be sent if sufficient credit were issued by the receiving link endpoint. See <a class="el" href="group__link.html#gaef3f2e4bca87f9adc70e90dce7cd42b2" title="Signal the availability of deliveries for a link.">pn_link_offered</a> for more details.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">link</td><td>a link object </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the available deliveries hint </dd></dl>
</div>
</div>
<a id="gacef130ca5cc6eb3eec2dd48c8bf5c7e6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gacef130ca5cc6eb3eec2dd48c8bf5c7e6">&#9670;&nbsp;</a></span>pn_link_snd_settle_mode()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__link.html#ga3fb58bd0b88d37407ebb615c2630e608">pn_snd_settle_mode_t</a> pn_link_snd_settle_mode </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *&#160;</td>
<td class="paramname"><em>link</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the local sender settle mode for a link. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">link</td><td>a link object </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the local sender settle mode </dd></dl>
</div>
</div>
<a id="ga0bc65ff494e2860e6227f68c72468101"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga0bc65ff494e2860e6227f68c72468101">&#9670;&nbsp;</a></span>pn_link_rcv_settle_mode()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__link.html#gad1c2388cdae687be26222a5d66fd2d58">pn_rcv_settle_mode_t</a> pn_link_rcv_settle_mode </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *&#160;</td>
<td class="paramname"><em>link</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the local receiver settle mode for a link. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">link</td><td>a link object </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the local receiver settle mode </dd></dl>
</div>
</div>
<a id="ga677c416a6365cedd23b43043dff0b89f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga677c416a6365cedd23b43043dff0b89f">&#9670;&nbsp;</a></span>pn_link_set_snd_settle_mode()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void pn_link_set_snd_settle_mode </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *&#160;</td>
<td class="paramname"><em>link</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__link.html#ga3fb58bd0b88d37407ebb615c2630e608">pn_snd_settle_mode_t</a>&#160;</td>
<td class="paramname"><em>mode</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Set the local sender settle mode for a link. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">link</td><td>a link object </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">mode</td><td>the sender settle mode </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="gab6441a917c291e68984405057eb56ab8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab6441a917c291e68984405057eb56ab8">&#9670;&nbsp;</a></span>pn_link_set_rcv_settle_mode()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void pn_link_set_rcv_settle_mode </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *&#160;</td>
<td class="paramname"><em>link</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__link.html#gad1c2388cdae687be26222a5d66fd2d58">pn_rcv_settle_mode_t</a>&#160;</td>
<td class="paramname"><em>mode</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Set the local receiver settle mode for a link. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">link</td><td>a link object </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">mode</td><td>the receiver settle mode </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ga92592155f2afcf6b9aabfb4fc64c140f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga92592155f2afcf6b9aabfb4fc64c140f">&#9670;&nbsp;</a></span>pn_link_remote_snd_settle_mode()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__link.html#ga3fb58bd0b88d37407ebb615c2630e608">pn_snd_settle_mode_t</a> pn_link_remote_snd_settle_mode </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *&#160;</td>
<td class="paramname"><em>link</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the remote sender settle mode for a link. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">link</td><td>a link object </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the remote sender settle mode </dd></dl>
</div>
</div>
<a id="ga378e4bb5a0519a75c3c151c15809dda5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga378e4bb5a0519a75c3c151c15809dda5">&#9670;&nbsp;</a></span>pn_link_remote_rcv_settle_mode()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__link.html#gad1c2388cdae687be26222a5d66fd2d58">pn_rcv_settle_mode_t</a> pn_link_remote_rcv_settle_mode </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *&#160;</td>
<td class="paramname"><em>link</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the remote receiver settle mode for a link. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">link</td><td>a link object </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the remote receiver settle mode </dd></dl>
</div>
</div>
<a id="gac7309a622f3f2296261ff8fa9bc33ba1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac7309a622f3f2296261ff8fa9bc33ba1">&#9670;&nbsp;</a></span>pn_link_unsettled()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int pn_link_unsettled </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *&#160;</td>
<td class="paramname"><em>link</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the number of unsettled deliveries for a link. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">link</td><td>a link object </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the number of unsettled deliveries </dd></dl>
</div>
</div>
<a id="ga6206e3d4efe0ebe0491955006930fa18"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6206e3d4efe0ebe0491955006930fa18">&#9670;&nbsp;</a></span>pn_unsettled_head()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__delivery.html#gacdfce854066c0a4ff4db9f9a0478f340">pn_delivery_t</a>* pn_unsettled_head </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *&#160;</td>
<td class="paramname"><em>link</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the first unsettled delivery for a link. </p>
<p>"</p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">link</td><td>a link object </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a pointer to the first unsettled delivery on the link </dd></dl>
</div>
</div>
<a id="ga6dc9ad6d95d1cccd6f3d29b782269cce"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6dc9ad6d95d1cccd6f3d29b782269cce">&#9670;&nbsp;</a></span>pn_unsettled_next()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__delivery.html#gacdfce854066c0a4ff4db9f9a0478f340">pn_delivery_t</a>* pn_unsettled_next </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__delivery.html#gacdfce854066c0a4ff4db9f9a0478f340">pn_delivery_t</a> *&#160;</td>
<td class="paramname"><em>delivery</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the next unsettled delivery on a link. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">delivery</td><td>a delivery object </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the next unsettled delivery on the link </dd></dl>
</div>
</div>
<a id="gaef3f2e4bca87f9adc70e90dce7cd42b2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaef3f2e4bca87f9adc70e90dce7cd42b2">&#9670;&nbsp;</a></span>pn_link_offered()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void pn_link_offered </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *&#160;</td>
<td class="paramname"><em>sender</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>credit</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Signal the availability of deliveries for a link. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">sender</td><td>a sender link object </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">credit</td><td>the number of deliveries potentially available for transfer </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="gaa825fac21730f3f9fff37d156e5f88e9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa825fac21730f3f9fff37d156e5f88e9">&#9670;&nbsp;</a></span>pn_link_send()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">ssize_t pn_link_send </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *&#160;</td>
<td class="paramname"><em>sender</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>bytes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>n</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Send message data for the current delivery on a link. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">sender</td><td>a sender link object </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">bytes</td><td>the start of the message data </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>the number of bytes of message data </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the number of bytes sent, or an error code </dd></dl>
<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="broker_8c-example.html#a6">broker.c</a>.</dd>
</dl>
</div>
</div>
<a id="gafec44cf1c79ec03f3ac009e1879e71a9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gafec44cf1c79ec03f3ac009e1879e71a9">&#9670;&nbsp;</a></span>pn_link_flow()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void pn_link_flow </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *&#160;</td>
<td class="paramname"><em>receiver</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>credit</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Grant credit for incoming deliveries on a receiver. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">receiver</td><td>a receiving link object </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">credit</td><td>the amount to increment the link credit </td></tr>
</table>
</dd>
</dl>
<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="broker_8c-example.html#a58">broker.c</a>, <a class="el" href="direct_8c-example.html#a28">direct.c</a>, and <a class="el" href="receive_8c-example.html#a24">receive.c</a>.</dd>
</dl>
</div>
</div>
<a id="gad7ad9bc5c9ea7e8a21cd4fa472d2c8df"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad7ad9bc5c9ea7e8a21cd4fa472d2c8df">&#9670;&nbsp;</a></span>pn_link_drain()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void pn_link_drain </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *&#160;</td>
<td class="paramname"><em>receiver</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>credit</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Grant credit for incoming deliveries on a receiver, and set drain mode to true. </p>
<p>Use <a class="el" href="group__link.html#gaeb417e6b7e99c76f61549f5ed5519395" title="Set the drain mode on a link.">pn_link_set_drain</a> to set the drain mode explicitly.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">receiver</td><td>a receiving link object </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">credit</td><td>the amount to increment the link credit </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="gaeb417e6b7e99c76f61549f5ed5519395"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaeb417e6b7e99c76f61549f5ed5519395">&#9670;&nbsp;</a></span>pn_link_set_drain()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void pn_link_set_drain </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *&#160;</td>
<td class="paramname"><em>receiver</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>drain</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Set the drain mode on a link. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">receiver</td><td>a receiving link object </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">drain</td><td>the drain mode </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ga06c97ce7396973dca0d311567f25f95a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga06c97ce7396973dca0d311567f25f95a">&#9670;&nbsp;</a></span>pn_link_recv()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">ssize_t pn_link_recv </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *&#160;</td>
<td class="paramname"><em>receiver</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char *&#160;</td>
<td class="paramname"><em>bytes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>n</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Receive message data for the current delivery on a link. </p>
<p>Use <a class="el" href="group__delivery.html#ga17523835dbc8d1906bd71df69d09cc40" title="Get the amount of pending message data for a delivery.">pn_delivery_pending</a> on the current delivery to figure out how much buffer space is needed.</p>
<p>Note that the link API can be used to stream large messages across the network, so just because there is no data to read does not imply the message is complete. To ensure the entirety of the message data has been read, either invoke <a class="el" href="group__link.html#ga06c97ce7396973dca0d311567f25f95a" title="Receive message data for the current delivery on a link.">pn_link_recv</a> until PN_EOS is returned, or verify that </p><pre class="fragment">(!pn_delivery_partial(d) &amp;&amp; !pn_delivery_aborted(d) &amp;&amp; pn_delivery_pending(d)==0)
</pre><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">receiver</td><td>a receiving link object </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">bytes</td><td>a pointer to an empty buffer </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>the buffer capacity </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The number of bytes received, or an error code:<ul>
<li><a class="el" href="group__error.html#ga9e0f51b097f94293cdbbdeb5422a27a3" title="End of stream.">PN_EOS</a>: The message has been completely received</li>
<li>0: No data available now. If <a class="el" href="group__delivery.html#ga23c7b3c678228ccb21378e7c8ec9a72d" title="Check if a delivery only has partial message data.">pn_delivery_partial()</a> there will be further <a class="el" href="group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaa70bbfc163d85732b5652dc70fb3330fe" title="A delivery has been created or updated.">PN_DELIVERY</a> events with more data.</li>
<li><a class="el" href="group__error.html#ga5efbe6093556326613d2ccd3864a00aa" title="State error.">PN_STATE_ERR</a>: The link has no current delivery</li>
<li><a class="el" href="group__error.html#ga82db456291c2627e31becc44b733a7f0" title="Delivery aborted error.">PN_ABORTED</a>: See <a class="el" href="group__delivery.html#ga712690e0cc84419d7b7ca7c49a10b776" title="Check if a received delivery has been aborted.">pn_delivery_aborted()</a> </li>
</ul>
</dd></dl>
<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="broker_8c-example.html#a67">broker.c</a>, <a class="el" href="direct_8c-example.html#a34">direct.c</a>, and <a class="el" href="receive_8c-example.html#a30">receive.c</a>.</dd>
</dl>
</div>
</div>
<a id="ga4a821eaf6298b94522572fad73b8e2d1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga4a821eaf6298b94522572fad73b8e2d1">&#9670;&nbsp;</a></span>pn_link_draining()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool pn_link_draining </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *&#160;</td>
<td class="paramname"><em>receiver</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Check if a link is currently draining. </p>
<p>A link is defined to be draining when drain mode is set to true, and the sender still has excess credit.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">receiver</td><td>a receiving link object </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if the link is currently draining, false otherwise </dd></dl>
</div>
</div>
<a id="gac282341dacff892eba8e224eca5c5c52"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac282341dacff892eba8e224eca5c5c52">&#9670;&nbsp;</a></span>pn_link_max_message_size()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint64_t pn_link_max_message_size </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *&#160;</td>
<td class="paramname"><em>link</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Unsettled API</b> - Get the maximum message size for a link. </p>
<p>A zero maximum message size means the size is unlimited.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">link</td><td>a link object </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the maximum message size for a link. </dd></dl>
</div>
</div>
<a id="ga2421a9ddebba208338412dea365cf6ad"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2421a9ddebba208338412dea365cf6ad">&#9670;&nbsp;</a></span>pn_link_set_max_message_size()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void pn_link_set_max_message_size </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *&#160;</td>
<td class="paramname"><em>link</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint64_t&#160;</td>
<td class="paramname"><em>size</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Unsettled API</b> - Set the maximum message size for a link. </p>
<p>A zero maximum message size means the size is unlimited.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">link</td><td>a link object </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>the maximum message size for the link </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ga9fc507fe3e207e84f2fc251cf9bd833d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga9fc507fe3e207e84f2fc251cf9bd833d">&#9670;&nbsp;</a></span>pn_link_remote_max_message_size()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint64_t pn_link_remote_max_message_size </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *&#160;</td>
<td class="paramname"><em>link</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Unsettled API</b> - Get the remote view of the maximum message size for a link. </p>
<p>A zero maximum message size means the size is unlimited.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">link</td><td>a link object </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the remote view of the maximum message size for a link </dd></dl>
</div>
</div>
<a id="gacb0917118cdecd83a1bc89a0fd12c5f0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gacb0917118cdecd83a1bc89a0fd12c5f0">&#9670;&nbsp;</a></span>pn_link_properties()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__data.html#ga5d6cf528776e8b6ad6d67caf095986bf">pn_data_t</a>* pn_link_properties </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *&#160;</td>
<td class="paramname"><em>link</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Access/modify the AMQP properties data for a link object. </p>
<p>This operation will return a pointer to a <a class="el" href="group__data.html#ga5d6cf528776e8b6ad6d67caf095986bf" title="An AMQP Data object.">pn_data_t</a> object that is valid until the link object is freed. Any data contained by the <a class="el" href="group__data.html#ga5d6cf528776e8b6ad6d67caf095986bf" title="An AMQP Data object.">pn_data_t</a> object will be sent as the AMQP properties for the link object when the link is opened by calling <a class="el" href="group__link.html#gaabaca3f5d03970a122240eebc588add6" title="Open a link.">pn_link_open</a>. Note that this MUST take the form of a symbol keyed map to be valid.</p>
<p>The <a class="el" href="group__data.html#ga5d6cf528776e8b6ad6d67caf095986bf" title="An AMQP Data object.">pn_data_t</a> pointer returned is valid until the link object is freed.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">link</td><td>the link object </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a pointer to a pn_data_t representing the link properties </dd></dl>
</div>
</div>
<a id="ga60819ab487fbaeadccd7e151be71868f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga60819ab487fbaeadccd7e151be71868f">&#9670;&nbsp;</a></span>pn_link_remote_properties()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__data.html#ga5d6cf528776e8b6ad6d67caf095986bf">pn_data_t</a>* pn_link_remote_properties </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *&#160;</td>
<td class="paramname"><em>link</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Access the AMQP link properties supplied by the remote link endpoint. </p>
<p>This operation will return a pointer to a <a class="el" href="group__data.html#ga5d6cf528776e8b6ad6d67caf095986bf" title="An AMQP Data object.">pn_data_t</a> object that is valid until the link object is freed. This data object will be empty until the remote link is opened as indicated by the <a class="el" href="group__connection.html#gad96220f2886c21a4f2eebc9487f53a87" title="The remote endpoint state is active.">PN_REMOTE_ACTIVE</a> flag.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">link</td><td>the link object </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the remote link properties </dd></dl>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by <a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20 </li>
</ul>
</div>
</body>
</html>