blob: a41bb043dead364ed48957d563ea74afac374b4c [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: Transport</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__transport.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="#define-members">Macros</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">Transport<div class="ingroups"><a class="el" href="group__core.html">Core</a></div></div> </div>
</div><!--header-->
<div class="contents">
<p>A network channel supporting an AMQP connection.
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:gae8f32e46e94953bab10bee530eee9044"><td class="memItemLeft" align="right" valign="top"><a id="gae8f32e46e94953bab10bee530eee9044"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__transport.html#gae8f32e46e94953bab10bee530eee9044">PN_TRACE_OFF</a></td></tr>
<tr class="memdesc:gae8f32e46e94953bab10bee530eee9044"><td class="mdescLeft">&#160;</td><td class="mdescRight">Turn logging off entirely. <br /></td></tr>
<tr class="separator:gae8f32e46e94953bab10bee530eee9044"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafde0eb3c73fb98816f4238d42d48f3d8"><td class="memItemLeft" align="right" valign="top"><a id="gafde0eb3c73fb98816f4238d42d48f3d8"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__transport.html#gafde0eb3c73fb98816f4238d42d48f3d8">PN_TRACE_RAW</a></td></tr>
<tr class="memdesc:gafde0eb3c73fb98816f4238d42d48f3d8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Log raw binary data going in and out of the transport. <br /></td></tr>
<tr class="separator:gafde0eb3c73fb98816f4238d42d48f3d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab8e04b4c128379ff27e6b801c0bce494"><td class="memItemLeft" align="right" valign="top"><a id="gab8e04b4c128379ff27e6b801c0bce494"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__transport.html#gab8e04b4c128379ff27e6b801c0bce494">PN_TRACE_FRM</a></td></tr>
<tr class="memdesc:gab8e04b4c128379ff27e6b801c0bce494"><td class="mdescLeft">&#160;</td><td class="mdescRight">Log protocol frames going in and out of the transport. <br /></td></tr>
<tr class="separator:gab8e04b4c128379ff27e6b801c0bce494"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7065ad65f95c995a24e416edc95aead4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__transport.html#ga7065ad65f95c995a24e416edc95aead4">PN_TRACE_DRV</a></td></tr>
<tr class="memdesc:ga7065ad65f95c995a24e416edc95aead4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Log driver-related events. <a href="group__transport.html#ga7065ad65f95c995a24e416edc95aead4">More...</a><br /></td></tr>
<tr class="separator:ga7065ad65f95c995a24e416edc95aead4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3bde88d15fcfda400a36d8f9e5d51688"><td class="memItemLeft" align="right" valign="top"><a id="ga3bde88d15fcfda400a36d8f9e5d51688"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__transport.html#ga3bde88d15fcfda400a36d8f9e5d51688">PN_TRACE_EVT</a></td></tr>
<tr class="memdesc:ga3bde88d15fcfda400a36d8f9e5d51688"><td class="mdescLeft">&#160;</td><td class="mdescRight">Log events. <br /></td></tr>
<tr class="separator:ga3bde88d15fcfda400a36d8f9e5d51688"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:ga4695788da8491f0c7104bfe36634ff94"><td class="memItemLeft" align="right" valign="top">typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__transport.html#ga4695788da8491f0c7104bfe36634ff94">pn_trace_t</a></td></tr>
<tr class="memdesc:ga4695788da8491f0c7104bfe36634ff94"><td class="mdescLeft">&#160;</td><td class="mdescRight">Holds the trace flags for an AMQP transport. <a href="group__transport.html#ga4695788da8491f0c7104bfe36634ff94">More...</a><br /></td></tr>
<tr class="separator:ga4695788da8491f0c7104bfe36634ff94"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae9b49fcbf6397e6916eb4e1357c90ff3"><td class="memItemLeft" align="right" valign="top"><a id="gae9b49fcbf6397e6916eb4e1357c90ff3"></a>
typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__transport.html#gae9b49fcbf6397e6916eb4e1357c90ff3">pn_tracer_t</a>) (<a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport, const char *message)</td></tr>
<tr class="memdesc:gae9b49fcbf6397e6916eb4e1357c90ff3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback for customizing logging behaviour. <br /></td></tr>
<tr class="separator:gae9b49fcbf6397e6916eb4e1357c90ff3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac26eda05f649bbf0399f3d8d78d12fa8"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a></td></tr>
<tr class="memdesc:gac26eda05f649bbf0399f3d8d78d12fa8"><td class="mdescLeft">&#160;</td><td class="mdescRight">A network channel supporting an AMQP connection. <a href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">More...</a><br /></td></tr>
<tr class="separator:gac26eda05f649bbf0399f3d8d78d12fa8"><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:gaf9833d93faf6a6ed68039e4a909cdd77"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__transport.html#gaf9833d93faf6a6ed68039e4a909cdd77">pn_transport</a> (void)</td></tr>
<tr class="memdesc:gaf9833d93faf6a6ed68039e4a909cdd77"><td class="mdescLeft">&#160;</td><td class="mdescRight">Factory for creating a transport. <a href="group__transport.html#gaf9833d93faf6a6ed68039e4a909cdd77">More...</a><br /></td></tr>
<tr class="separator:gaf9833d93faf6a6ed68039e4a909cdd77"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac5bebd26c0942bc17d7fad36577110f8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__transport.html#gac5bebd26c0942bc17d7fad36577110f8">pn_transport_set_server</a> (<a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport)</td></tr>
<tr class="memdesc:gac5bebd26c0942bc17d7fad36577110f8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configure a transport as a server. <a href="group__transport.html#gac5bebd26c0942bc17d7fad36577110f8">More...</a><br /></td></tr>
<tr class="separator:gac5bebd26c0942bc17d7fad36577110f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6ab28051242631d9bea4814e8670ab90"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__transport.html#ga6ab28051242631d9bea4814e8670ab90">pn_transport_free</a> (<a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport)</td></tr>
<tr class="memdesc:ga6ab28051242631d9bea4814e8670ab90"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a transport object. <a href="group__transport.html#ga6ab28051242631d9bea4814e8670ab90">More...</a><br /></td></tr>
<tr class="separator:ga6ab28051242631d9bea4814e8670ab90"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6b2750a2d313c65aabe5dc8a99f1de58"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__transport.html#ga6b2750a2d313c65aabe5dc8a99f1de58">pn_transport_get_user</a> (<a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport)</td></tr>
<tr class="memdesc:ga6b2750a2d313c65aabe5dc8a99f1de58"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve the authenticated user. <a href="group__transport.html#ga6b2750a2d313c65aabe5dc8a99f1de58">More...</a><br /></td></tr>
<tr class="separator:ga6b2750a2d313c65aabe5dc8a99f1de58"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga285b4cced59c665ae178adf26128d3fc"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__transport.html#ga285b4cced59c665ae178adf26128d3fc">pn_transport_require_auth</a> (<a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport, bool required)</td></tr>
<tr class="memdesc:ga285b4cced59c665ae178adf26128d3fc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set whether a non-authenticated transport connection is allowed. <a href="group__transport.html#ga285b4cced59c665ae178adf26128d3fc">More...</a><br /></td></tr>
<tr class="separator:ga285b4cced59c665ae178adf26128d3fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8a60f6a48e4bd2d090f5bd264cf7f90d"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__transport.html#ga8a60f6a48e4bd2d090f5bd264cf7f90d">pn_transport_is_authenticated</a> (<a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport)</td></tr>
<tr class="memdesc:ga8a60f6a48e4bd2d090f5bd264cf7f90d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tell whether the transport connection is authenticated. <a href="group__transport.html#ga8a60f6a48e4bd2d090f5bd264cf7f90d">More...</a><br /></td></tr>
<tr class="separator:ga8a60f6a48e4bd2d090f5bd264cf7f90d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaeb7e30ead4a6ab080d0005379be20e34"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__transport.html#gaeb7e30ead4a6ab080d0005379be20e34">pn_transport_require_encryption</a> (<a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport, bool required)</td></tr>
<tr class="memdesc:gaeb7e30ead4a6ab080d0005379be20e34"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set whether a non encrypted transport connection is allowed. <a href="group__transport.html#gaeb7e30ead4a6ab080d0005379be20e34">More...</a><br /></td></tr>
<tr class="separator:gaeb7e30ead4a6ab080d0005379be20e34"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga737021ca419e948932071aad2ad38c5b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__transport.html#ga737021ca419e948932071aad2ad38c5b">pn_transport_is_encrypted</a> (<a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport)</td></tr>
<tr class="memdesc:ga737021ca419e948932071aad2ad38c5b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tell whether the transport connection is encrypted. <a href="group__transport.html#ga737021ca419e948932071aad2ad38c5b">More...</a><br /></td></tr>
<tr class="separator:ga737021ca419e948932071aad2ad38c5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac458d9fdb684f9501e89b96fc51f5c34"><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__transport.html#gac458d9fdb684f9501e89b96fc51f5c34">pn_transport_condition</a> (<a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport)</td></tr>
<tr class="memdesc:gac458d9fdb684f9501e89b96fc51f5c34"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get additional information about the condition of the transport. <a href="group__transport.html#gac458d9fdb684f9501e89b96fc51f5c34">More...</a><br /></td></tr>
<tr class="separator:gac458d9fdb684f9501e89b96fc51f5c34"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3a539904a3de515110377b41c185c615"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__logger.html#gaff413c562d91f0c5eb2ec3ef4082165e">pn_logger_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__transport.html#ga3a539904a3de515110377b41c185c615">pn_transport_logger</a> (<a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport)</td></tr>
<tr class="memdesc:ga3a539904a3de515110377b41c185c615"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the transport logger. <a href="group__transport.html#ga3a539904a3de515110377b41c185c615">More...</a><br /></td></tr>
<tr class="separator:ga3a539904a3de515110377b41c185c615"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaede0bc2a0038ccdc7e1b193e322147fa"><td class="memItemLeft" align="right" valign="top"><a id="gaede0bc2a0038ccdc7e1b193e322147fa"></a>
<a class="el" href="group__error.html#ga24a289d5b32c9bd8a775600a5af83d52">pn_error_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__transport.html#gaede0bc2a0038ccdc7e1b193e322147fa">pn_transport_error</a> (<a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport)</td></tr>
<tr class="memdesc:gaede0bc2a0038ccdc7e1b193e322147fa"><td class="mdescLeft">&#160;</td><td class="mdescRight"><b>Deprecated</b> - Use <a class="el" href="group__transport.html#gac458d9fdb684f9501e89b96fc51f5c34" title="Get additional information about the condition of the transport.">pn_transport_condition()</a>. <br /></td></tr>
<tr class="separator:gaede0bc2a0038ccdc7e1b193e322147fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1a769e2e6c900c78c710407296cb4e13"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__transport.html#ga1a769e2e6c900c78c710407296cb4e13">pn_transport_bind</a> (<a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport, <a class="el" href="group__connection.html#ga886351d81ff3a977a284a206526c5aff">pn_connection_t</a> *connection)</td></tr>
<tr class="memdesc:ga1a769e2e6c900c78c710407296cb4e13"><td class="mdescLeft">&#160;</td><td class="mdescRight"><b>Deprecated</b> - Use <a class="el" href="group__connection__driver.html#ga2330d329e295da740ef8d126657470c6" title="Set connection and transport to the provided values, or create a new pn_connection_t or pn_transport_...">pn_connection_driver_init()</a>. <a href="group__transport.html#ga1a769e2e6c900c78c710407296cb4e13">More...</a><br /></td></tr>
<tr class="separator:ga1a769e2e6c900c78c710407296cb4e13"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2a66ff267333651eb166f3f6fa4ede50"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__transport.html#ga2a66ff267333651eb166f3f6fa4ede50">pn_transport_unbind</a> (<a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport)</td></tr>
<tr class="memdesc:ga2a66ff267333651eb166f3f6fa4ede50"><td class="mdescLeft">&#160;</td><td class="mdescRight"><b>Deprecated</b> - Use <a class="el" href="group__connection__driver.html#ga3e8959d7897cd9415f687981c1d94c96" title="Unbind, release and free the connection and transport.">pn_connection_driver_destroy()</a>. <a href="group__transport.html#ga2a66ff267333651eb166f3f6fa4ede50">More...</a><br /></td></tr>
<tr class="separator:ga2a66ff267333651eb166f3f6fa4ede50"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa83f8c30fc0e7518c6ef214bb7b4ea56"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__transport.html#gaa83f8c30fc0e7518c6ef214bb7b4ea56">pn_transport_trace</a> (<a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport, <a class="el" href="group__transport.html#ga4695788da8491f0c7104bfe36634ff94">pn_trace_t</a> trace)</td></tr>
<tr class="memdesc:gaa83f8c30fc0e7518c6ef214bb7b4ea56"><td class="mdescLeft">&#160;</td><td class="mdescRight">Update a transports trace flags. <a href="group__transport.html#gaa83f8c30fc0e7518c6ef214bb7b4ea56">More...</a><br /></td></tr>
<tr class="separator:gaa83f8c30fc0e7518c6ef214bb7b4ea56"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7eb7915459eb433e68ff5ce80c5020a7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__transport.html#ga7eb7915459eb433e68ff5ce80c5020a7">pn_transport_set_tracer</a> (<a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport, <a class="el" href="group__transport.html#gae9b49fcbf6397e6916eb4e1357c90ff3">pn_tracer_t</a> tracer)</td></tr>
<tr class="memdesc:ga7eb7915459eb433e68ff5ce80c5020a7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the tracing function used by a transport. <a href="group__transport.html#ga7eb7915459eb433e68ff5ce80c5020a7">More...</a><br /></td></tr>
<tr class="separator:ga7eb7915459eb433e68ff5ce80c5020a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga30d129d04a387ea34515c1641b83521b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__transport.html#gae9b49fcbf6397e6916eb4e1357c90ff3">pn_tracer_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__transport.html#ga30d129d04a387ea34515c1641b83521b">pn_transport_get_tracer</a> (<a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport)</td></tr>
<tr class="memdesc:ga30d129d04a387ea34515c1641b83521b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the tracing function used by a transport. <a href="group__transport.html#ga30d129d04a387ea34515c1641b83521b">More...</a><br /></td></tr>
<tr class="separator:ga30d129d04a387ea34515c1641b83521b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga000b2b9ab82139defb1a103f220ec58e"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__transport.html#ga000b2b9ab82139defb1a103f220ec58e">pn_transport_get_context</a> (<a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport)</td></tr>
<tr class="memdesc:ga000b2b9ab82139defb1a103f220ec58e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the application context that is associated with a transport object. <a href="group__transport.html#ga000b2b9ab82139defb1a103f220ec58e">More...</a><br /></td></tr>
<tr class="separator:ga000b2b9ab82139defb1a103f220ec58e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac22041ff85d1a1f5287ac2ba826edb74"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__transport.html#gac22041ff85d1a1f5287ac2ba826edb74">pn_transport_set_context</a> (<a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport, void *context)</td></tr>
<tr class="memdesc:gac22041ff85d1a1f5287ac2ba826edb74"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set a new application context for a transport object. <a href="group__transport.html#gac22041ff85d1a1f5287ac2ba826edb74">More...</a><br /></td></tr>
<tr class="separator:gac22041ff85d1a1f5287ac2ba826edb74"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabdd6d56837a028097b1676350d65a864"><td class="memItemLeft" align="right" valign="top">pn_record_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__transport.html#gabdd6d56837a028097b1676350d65a864">pn_transport_attachments</a> (<a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport)</td></tr>
<tr class="memdesc:gabdd6d56837a028097b1676350d65a864"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the attachments that are associated with a transport object. <a href="group__transport.html#gabdd6d56837a028097b1676350d65a864">More...</a><br /></td></tr>
<tr class="separator:gabdd6d56837a028097b1676350d65a864"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad603e8d72578bcedd2d9235f74f28f37"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__transport.html#gad603e8d72578bcedd2d9235f74f28f37">pn_transport_log</a> (<a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport, const char *message)</td></tr>
<tr class="memdesc:gad603e8d72578bcedd2d9235f74f28f37"><td class="mdescLeft">&#160;</td><td class="mdescRight">Log a message using a transport's logging mechanism. <a href="group__transport.html#gad603e8d72578bcedd2d9235f74f28f37">More...</a><br /></td></tr>
<tr class="separator:gad603e8d72578bcedd2d9235f74f28f37"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac773c1b9226783f36e2f2d4770e90e3f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__transport.html#gac773c1b9226783f36e2f2d4770e90e3f">pn_transport_vlogf</a> (<a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport, const char *fmt, va_list ap)</td></tr>
<tr class="memdesc:gac773c1b9226783f36e2f2d4770e90e3f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Log a printf formatted message using a transport's logging mechanism. <a href="group__transport.html#gac773c1b9226783f36e2f2d4770e90e3f">More...</a><br /></td></tr>
<tr class="separator:gac773c1b9226783f36e2f2d4770e90e3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga26cff9ffda93e2ffc8606e19eefe7f84"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__transport.html#ga26cff9ffda93e2ffc8606e19eefe7f84">pn_transport_logf</a> (<a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport, const char *fmt,...)</td></tr>
<tr class="memdesc:ga26cff9ffda93e2ffc8606e19eefe7f84"><td class="mdescLeft">&#160;</td><td class="mdescRight">Log a printf formatted message using a transport's logging mechanism. <a href="group__transport.html#ga26cff9ffda93e2ffc8606e19eefe7f84">More...</a><br /></td></tr>
<tr class="separator:ga26cff9ffda93e2ffc8606e19eefe7f84"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac14e93cc5e8bc949fe7a0800ebd6e052"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__transport.html#gac14e93cc5e8bc949fe7a0800ebd6e052">pn_transport_get_channel_max</a> (<a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport)</td></tr>
<tr class="memdesc:gac14e93cc5e8bc949fe7a0800ebd6e052"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the maximum allowed channel for a transport. <a href="group__transport.html#gac14e93cc5e8bc949fe7a0800ebd6e052">More...</a><br /></td></tr>
<tr class="separator:gac14e93cc5e8bc949fe7a0800ebd6e052"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8f080d7fb1e7fea2c93391d0b8f59773"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__transport.html#ga8f080d7fb1e7fea2c93391d0b8f59773">pn_transport_set_channel_max</a> (<a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport, uint16_t channel_max)</td></tr>
<tr class="memdesc:ga8f080d7fb1e7fea2c93391d0b8f59773"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the maximum allowed channel number for a transport. <a href="group__transport.html#ga8f080d7fb1e7fea2c93391d0b8f59773">More...</a><br /></td></tr>
<tr class="separator:ga8f080d7fb1e7fea2c93391d0b8f59773"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaff7c08aeb92596ad9d269468d1557647"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__transport.html#gaff7c08aeb92596ad9d269468d1557647">pn_transport_remote_channel_max</a> (<a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport)</td></tr>
<tr class="memdesc:gaff7c08aeb92596ad9d269468d1557647"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the maximum allowed channel of a transport's remote peer. <a href="group__transport.html#gaff7c08aeb92596ad9d269468d1557647">More...</a><br /></td></tr>
<tr class="separator:gaff7c08aeb92596ad9d269468d1557647"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga46552ed46e59de6530d2eee03707a51b"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__transport.html#ga46552ed46e59de6530d2eee03707a51b">pn_transport_get_max_frame</a> (<a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport)</td></tr>
<tr class="memdesc:ga46552ed46e59de6530d2eee03707a51b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the maximum frame size of a transport. <a href="group__transport.html#ga46552ed46e59de6530d2eee03707a51b">More...</a><br /></td></tr>
<tr class="separator:ga46552ed46e59de6530d2eee03707a51b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga51573625b6940884fed214b615f42e0f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__transport.html#ga51573625b6940884fed214b615f42e0f">pn_transport_set_max_frame</a> (<a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport, uint32_t size)</td></tr>
<tr class="memdesc:ga51573625b6940884fed214b615f42e0f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the maximum frame size of a transport. <a href="group__transport.html#ga51573625b6940884fed214b615f42e0f">More...</a><br /></td></tr>
<tr class="separator:ga51573625b6940884fed214b615f42e0f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga351823e18e043576078f361d7dfe1cce"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__transport.html#ga351823e18e043576078f361d7dfe1cce">pn_transport_get_remote_max_frame</a> (<a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport)</td></tr>
<tr class="memdesc:ga351823e18e043576078f361d7dfe1cce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the maximum frame size of a transport's remote peer. <a href="group__transport.html#ga351823e18e043576078f361d7dfe1cce">More...</a><br /></td></tr>
<tr class="separator:ga351823e18e043576078f361d7dfe1cce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6980396c3d890b86656167c3a063eee7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__api__types.html#ga9a701bc6dc9af9f42c3f4679172a723c">pn_millis_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__transport.html#ga6980396c3d890b86656167c3a063eee7">pn_transport_get_idle_timeout</a> (<a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport)</td></tr>
<tr class="memdesc:ga6980396c3d890b86656167c3a063eee7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the idle timeout for a transport. <a href="group__transport.html#ga6980396c3d890b86656167c3a063eee7">More...</a><br /></td></tr>
<tr class="separator:ga6980396c3d890b86656167c3a063eee7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafb1c98602d17524eb40e48bf610362d7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__transport.html#gafb1c98602d17524eb40e48bf610362d7">pn_transport_set_idle_timeout</a> (<a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport, <a class="el" href="group__api__types.html#ga9a701bc6dc9af9f42c3f4679172a723c">pn_millis_t</a> timeout)</td></tr>
<tr class="memdesc:gafb1c98602d17524eb40e48bf610362d7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the idle timeout for a transport. <a href="group__transport.html#gafb1c98602d17524eb40e48bf610362d7">More...</a><br /></td></tr>
<tr class="separator:gafb1c98602d17524eb40e48bf610362d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabdcbd5d08c5b5cd3603dee74421985b5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__api__types.html#ga9a701bc6dc9af9f42c3f4679172a723c">pn_millis_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__transport.html#gabdcbd5d08c5b5cd3603dee74421985b5">pn_transport_get_remote_idle_timeout</a> (<a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport)</td></tr>
<tr class="memdesc:gabdcbd5d08c5b5cd3603dee74421985b5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the idle timeout for a transport's remote peer. <a href="group__transport.html#gabdcbd5d08c5b5cd3603dee74421985b5">More...</a><br /></td></tr>
<tr class="separator:gabdcbd5d08c5b5cd3603dee74421985b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga93f5efd9d63ebd1b1498fdace388ec3d"><td class="memItemLeft" align="right" valign="top"><a id="ga93f5efd9d63ebd1b1498fdace388ec3d"></a>
ssize_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__transport.html#ga93f5efd9d63ebd1b1498fdace388ec3d">pn_transport_input</a> (<a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport, const char *bytes, size_t available)</td></tr>
<tr class="memdesc:ga93f5efd9d63ebd1b1498fdace388ec3d"><td class="mdescLeft">&#160;</td><td class="mdescRight"><b>Deprecated</b> - Use the <a class="el" href="group__connection__driver.html">Connection driver</a> API. <br /></td></tr>
<tr class="separator:ga93f5efd9d63ebd1b1498fdace388ec3d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae72fdee3b8aae3cb484b0ed98c2b802e"><td class="memItemLeft" align="right" valign="top"><a id="gae72fdee3b8aae3cb484b0ed98c2b802e"></a>
ssize_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__transport.html#gae72fdee3b8aae3cb484b0ed98c2b802e">pn_transport_output</a> (<a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport, char *bytes, size_t size)</td></tr>
<tr class="memdesc:gae72fdee3b8aae3cb484b0ed98c2b802e"><td class="mdescLeft">&#160;</td><td class="mdescRight"><b>Deprecated</b> - Use the <a class="el" href="group__connection__driver.html">Connection driver</a> API. <br /></td></tr>
<tr class="separator:gae72fdee3b8aae3cb484b0ed98c2b802e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa079bb5f5b9ea10734c9d8af26fba333"><td class="memItemLeft" align="right" valign="top">ssize_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__transport.html#gaa079bb5f5b9ea10734c9d8af26fba333">pn_transport_capacity</a> (<a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport)</td></tr>
<tr class="memdesc:gaa079bb5f5b9ea10734c9d8af26fba333"><td class="mdescLeft">&#160;</td><td class="mdescRight"><b>Deprecated</b> - Use the <a class="el" href="group__connection__driver.html">Connection driver</a> API. <a href="group__transport.html#gaa079bb5f5b9ea10734c9d8af26fba333">More...</a><br /></td></tr>
<tr class="separator:gaa079bb5f5b9ea10734c9d8af26fba333"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4a9e6c6b207c41647ff988b5ae090d85"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__transport.html#ga4a9e6c6b207c41647ff988b5ae090d85">pn_transport_tail</a> (<a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport)</td></tr>
<tr class="memdesc:ga4a9e6c6b207c41647ff988b5ae090d85"><td class="mdescLeft">&#160;</td><td class="mdescRight"><b>Deprecated</b> - Use the <a class="el" href="group__connection__driver.html">Connection driver</a> API. <a href="group__transport.html#ga4a9e6c6b207c41647ff988b5ae090d85">More...</a><br /></td></tr>
<tr class="separator:ga4a9e6c6b207c41647ff988b5ae090d85"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga50c63f26b8b16f45e6e7912ca54de94b"><td class="memItemLeft" align="right" valign="top">ssize_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__transport.html#ga50c63f26b8b16f45e6e7912ca54de94b">pn_transport_push</a> (<a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport, const char *src, size_t size)</td></tr>
<tr class="memdesc:ga50c63f26b8b16f45e6e7912ca54de94b"><td class="mdescLeft">&#160;</td><td class="mdescRight"><b>Deprecated</b> - Use the <a class="el" href="group__connection__driver.html">Connection driver</a> API. <a href="group__transport.html#ga50c63f26b8b16f45e6e7912ca54de94b">More...</a><br /></td></tr>
<tr class="separator:ga50c63f26b8b16f45e6e7912ca54de94b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1f52a6f11322873e74b9daf004269a91"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__transport.html#ga1f52a6f11322873e74b9daf004269a91">pn_transport_process</a> (<a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport, size_t size)</td></tr>
<tr class="memdesc:ga1f52a6f11322873e74b9daf004269a91"><td class="mdescLeft">&#160;</td><td class="mdescRight"><b>Deprecated</b> - Use the <a class="el" href="group__connection__driver.html">Connection driver</a> API. <a href="group__transport.html#ga1f52a6f11322873e74b9daf004269a91">More...</a><br /></td></tr>
<tr class="separator:ga1f52a6f11322873e74b9daf004269a91"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa8304f8719610e384aa9a3f5f3c98289"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__transport.html#gaa8304f8719610e384aa9a3f5f3c98289">pn_transport_close_tail</a> (<a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport)</td></tr>
<tr class="memdesc:gaa8304f8719610e384aa9a3f5f3c98289"><td class="mdescLeft">&#160;</td><td class="mdescRight"><b>Deprecated</b> - Use the <a class="el" href="group__connection__driver.html">Connection driver</a> API. <a href="group__transport.html#gaa8304f8719610e384aa9a3f5f3c98289">More...</a><br /></td></tr>
<tr class="separator:gaa8304f8719610e384aa9a3f5f3c98289"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga81adf1fd6fa28054f2f80c424aa98122"><td class="memItemLeft" align="right" valign="top">ssize_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__transport.html#ga81adf1fd6fa28054f2f80c424aa98122">pn_transport_pending</a> (<a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport)</td></tr>
<tr class="memdesc:ga81adf1fd6fa28054f2f80c424aa98122"><td class="mdescLeft">&#160;</td><td class="mdescRight"><b>Deprecated</b> - Use the <a class="el" href="group__connection__driver.html">Connection driver</a> API. <a href="group__transport.html#ga81adf1fd6fa28054f2f80c424aa98122">More...</a><br /></td></tr>
<tr class="separator:ga81adf1fd6fa28054f2f80c424aa98122"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3ef8b0032b2a012c697e853e363338ea"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__transport.html#ga3ef8b0032b2a012c697e853e363338ea">pn_transport_head</a> (<a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport)</td></tr>
<tr class="memdesc:ga3ef8b0032b2a012c697e853e363338ea"><td class="mdescLeft">&#160;</td><td class="mdescRight"><b>Deprecated</b> - Use the <a class="el" href="group__connection__driver.html">Connection driver</a> API. <a href="group__transport.html#ga3ef8b0032b2a012c697e853e363338ea">More...</a><br /></td></tr>
<tr class="separator:ga3ef8b0032b2a012c697e853e363338ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga09a0d15514ca9a14eb40f12425a52797"><td class="memItemLeft" align="right" valign="top">ssize_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__transport.html#ga09a0d15514ca9a14eb40f12425a52797">pn_transport_peek</a> (<a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport, char *dst, size_t size)</td></tr>
<tr class="memdesc:ga09a0d15514ca9a14eb40f12425a52797"><td class="mdescLeft">&#160;</td><td class="mdescRight"><b>Deprecated</b> - Use the <a class="el" href="group__connection__driver.html">Connection driver</a> API. <a href="group__transport.html#ga09a0d15514ca9a14eb40f12425a52797">More...</a><br /></td></tr>
<tr class="separator:ga09a0d15514ca9a14eb40f12425a52797"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga31470f0b0dbfd2c8c2929cc170858dc9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__transport.html#ga31470f0b0dbfd2c8c2929cc170858dc9">pn_transport_pop</a> (<a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport, size_t size)</td></tr>
<tr class="memdesc:ga31470f0b0dbfd2c8c2929cc170858dc9"><td class="mdescLeft">&#160;</td><td class="mdescRight"><b>Deprecated</b> - Use the <a class="el" href="group__connection__driver.html">Connection driver</a> API. <a href="group__transport.html#ga31470f0b0dbfd2c8c2929cc170858dc9">More...</a><br /></td></tr>
<tr class="separator:ga31470f0b0dbfd2c8c2929cc170858dc9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab8d0c7878d3d8ecda627678a6ec55072"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__transport.html#gab8d0c7878d3d8ecda627678a6ec55072">pn_transport_close_head</a> (<a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport)</td></tr>
<tr class="memdesc:gab8d0c7878d3d8ecda627678a6ec55072"><td class="mdescLeft">&#160;</td><td class="mdescRight"><b>Deprecated</b> - Use the <a class="el" href="group__connection__driver.html">Connection driver</a> API. <a href="group__transport.html#gab8d0c7878d3d8ecda627678a6ec55072">More...</a><br /></td></tr>
<tr class="separator:gab8d0c7878d3d8ecda627678a6ec55072"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab8d9e4729b8835d3740de8d2c78831ef"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__transport.html#gab8d9e4729b8835d3740de8d2c78831ef">pn_transport_quiesced</a> (<a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport)</td></tr>
<tr class="memdesc:gab8d9e4729b8835d3740de8d2c78831ef"><td class="mdescLeft">&#160;</td><td class="mdescRight"><b>Deprecated</b> - Use the <a class="el" href="group__connection__driver.html">Connection driver</a> API. <a href="group__transport.html#gab8d9e4729b8835d3740de8d2c78831ef">More...</a><br /></td></tr>
<tr class="separator:gab8d9e4729b8835d3740de8d2c78831ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3eb018b426d168de8c8d9b3441be036c"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__transport.html#ga3eb018b426d168de8c8d9b3441be036c">pn_transport_head_closed</a> (<a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport)</td></tr>
<tr class="memdesc:ga3eb018b426d168de8c8d9b3441be036c"><td class="mdescLeft">&#160;</td><td class="mdescRight"><b>Deprecated</b> - Use the <a class="el" href="group__connection__driver.html">Connection driver</a> API. <a href="group__transport.html#ga3eb018b426d168de8c8d9b3441be036c">More...</a><br /></td></tr>
<tr class="separator:ga3eb018b426d168de8c8d9b3441be036c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga65e4c70675f7e94dfaa9d58b2a590694"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__transport.html#ga65e4c70675f7e94dfaa9d58b2a590694">pn_transport_tail_closed</a> (<a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport)</td></tr>
<tr class="memdesc:ga65e4c70675f7e94dfaa9d58b2a590694"><td class="mdescLeft">&#160;</td><td class="mdescRight"><b>Deprecated</b> - Use the <a class="el" href="group__connection__driver.html">Connection driver</a> API. <a href="group__transport.html#ga65e4c70675f7e94dfaa9d58b2a590694">More...</a><br /></td></tr>
<tr class="separator:ga65e4c70675f7e94dfaa9d58b2a590694"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga55c589d9b3e69057b130036c3c2173df"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__transport.html#ga55c589d9b3e69057b130036c3c2173df">pn_transport_closed</a> (<a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport)</td></tr>
<tr class="memdesc:ga55c589d9b3e69057b130036c3c2173df"><td class="mdescLeft">&#160;</td><td class="mdescRight"><b>Deprecated</b> - Use the <a class="el" href="group__connection__driver.html">Connection driver</a> API. <a href="group__transport.html#ga55c589d9b3e69057b130036c3c2173df">More...</a><br /></td></tr>
<tr class="separator:ga55c589d9b3e69057b130036c3c2173df"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8cb42b06900d6b52389f2e5c5289ab73"><td class="memItemLeft" align="right" valign="top">int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__transport.html#ga8cb42b06900d6b52389f2e5c5289ab73">pn_transport_tick</a> (<a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport, int64_t now)</td></tr>
<tr class="memdesc:ga8cb42b06900d6b52389f2e5c5289ab73"><td class="mdescLeft">&#160;</td><td class="mdescRight">Process any pending transport timer events. <a href="group__transport.html#ga8cb42b06900d6b52389f2e5c5289ab73">More...</a><br /></td></tr>
<tr class="separator:ga8cb42b06900d6b52389f2e5c5289ab73"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3887e8d8c60d06df9978947edaf4d461"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__transport.html#ga3887e8d8c60d06df9978947edaf4d461">pn_transport_get_frames_output</a> (const <a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport)</td></tr>
<tr class="memdesc:ga3887e8d8c60d06df9978947edaf4d461"><td class="mdescLeft">&#160;</td><td class="mdescRight"><b>Deprecated</b> - No replacement. <a href="group__transport.html#ga3887e8d8c60d06df9978947edaf4d461">More...</a><br /></td></tr>
<tr class="separator:ga3887e8d8c60d06df9978947edaf4d461"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga92ce0b44ab956c182d646824b4e9ed61"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__transport.html#ga92ce0b44ab956c182d646824b4e9ed61">pn_transport_get_frames_input</a> (const <a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport)</td></tr>
<tr class="memdesc:ga92ce0b44ab956c182d646824b4e9ed61"><td class="mdescLeft">&#160;</td><td class="mdescRight"><b>Deprecated</b> - No replacement. <a href="group__transport.html#ga92ce0b44ab956c182d646824b4e9ed61">More...</a><br /></td></tr>
<tr class="separator:ga92ce0b44ab956c182d646824b4e9ed61"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2b98f594e012c24e7b17dcc91e3d4caf"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__connection.html#ga886351d81ff3a977a284a206526c5aff">pn_connection_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__transport.html#ga2b98f594e012c24e7b17dcc91e3d4caf">pn_transport_connection</a> (<a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport)</td></tr>
<tr class="memdesc:ga2b98f594e012c24e7b17dcc91e3d4caf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Access the AMQP Connection associated with the transport. <a href="group__transport.html#ga2b98f594e012c24e7b17dcc91e3d4caf">More...</a><br /></td></tr>
<tr class="separator:ga2b98f594e012c24e7b17dcc91e3d4caf"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>A network channel supporting an AMQP connection. </p>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a id="ga7065ad65f95c995a24e416edc95aead4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7065ad65f95c995a24e416edc95aead4">&#9670;&nbsp;</a></span>PN_TRACE_DRV</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define PN_TRACE_DRV</td>
</tr>
</table>
</div><div class="memdoc">
<p>Log driver-related events. </p>
<p>For example, initialization, end of stream, and so on. </p>
</div>
</div>
<h2 class="groupheader">Typedef Documentation</h2>
<a id="ga4695788da8491f0c7104bfe36634ff94"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga4695788da8491f0c7104bfe36634ff94">&#9670;&nbsp;</a></span>pn_trace_t</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef int <a class="el" href="group__transport.html#ga4695788da8491f0c7104bfe36634ff94">pn_trace_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Holds the trace flags for an AMQP transport. </p>
<p>The trace flags for an AMQP transport control what sort of information is logged by an AMQP transport. The following bits can be set:</p>
<ul>
<li><a class="el" href="group__transport.html#gae8f32e46e94953bab10bee530eee9044" title="Turn logging off entirely.">PN_TRACE_OFF</a></li>
<li><a class="el" href="group__transport.html#gafde0eb3c73fb98816f4238d42d48f3d8" title="Log raw binary data going in and out of the transport.">PN_TRACE_RAW</a></li>
<li><a class="el" href="group__transport.html#gab8e04b4c128379ff27e6b801c0bce494" title="Log protocol frames going in and out of the transport.">PN_TRACE_FRM</a></li>
<li><a class="el" href="group__transport.html#ga7065ad65f95c995a24e416edc95aead4" title="Log driver-related events.">PN_TRACE_DRV</a></li>
<li><a class="el" href="group__transport.html#ga3bde88d15fcfda400a36d8f9e5d51688" title="Log events.">PN_TRACE_EVT</a> </li>
</ul>
</div>
</div>
<a id="gac26eda05f649bbf0399f3d8d78d12fa8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac26eda05f649bbf0399f3d8d78d12fa8">&#9670;&nbsp;</a></span>pn_transport_t</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> <a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>A network channel supporting an AMQP connection. </p>
<p>A pn_transport_t encapsulates the transport related state of all AMQP endpoint objects associated with a physical network connection at a given point in time. </p>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="gaf9833d93faf6a6ed68039e4a909cdd77"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf9833d93faf6a6ed68039e4a909cdd77">&#9670;&nbsp;</a></span>pn_transport()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a>* pn_transport </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Factory for creating a transport. </p>
<p>A transport is used by a connection to interface with the network. There can only be one connection associated with a transport.</p>
<p>Initially a transport is configured to be a client transport. Use <a class="el" href="group__transport.html#gac5bebd26c0942bc17d7fad36577110f8" title="Configure a transport as a server.">pn_transport_set_server()</a> to configure the transport as a server transport.</p>
<p>A client transport initiates outgoing connections.</p>
<p>A client transport must be configured with the protocol layers to use and cannot configure itself automatically.</p>
<p>A server transport accepts incoming connections. It can automatically configure itself to include the various protocol layers depending on the incoming protocol headers.</p>
<dl class="section return"><dt>Returns</dt><dd>pointer to new transport </dd></dl>
<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="broker_8c-example.html#a34">broker.c</a>.</dd>
</dl>
</div>
</div>
<a id="gac5bebd26c0942bc17d7fad36577110f8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac5bebd26c0942bc17d7fad36577110f8">&#9670;&nbsp;</a></span>pn_transport_set_server()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void pn_transport_set_server </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *&#160;</td>
<td class="paramname"><em>transport</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Configure a transport as a server. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">transport</td><td>a transport object </td></tr>
</table>
</dd>
</dl>
<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="broker_8c-example.html#a35">broker.c</a>.</dd>
</dl>
</div>
</div>
<a id="ga6ab28051242631d9bea4814e8670ab90"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6ab28051242631d9bea4814e8670ab90">&#9670;&nbsp;</a></span>pn_transport_free()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void pn_transport_free </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *&#160;</td>
<td class="paramname"><em>transport</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Free a transport object. </p>
<p>When a transport is freed, it is automatically unbound from its associated connection.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">transport</td><td>a transport object or NULL </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ga6b2750a2d313c65aabe5dc8a99f1de58"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6b2750a2d313c65aabe5dc8a99f1de58">&#9670;&nbsp;</a></span>pn_transport_get_user()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const char* pn_transport_get_user </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *&#160;</td>
<td class="paramname"><em>transport</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Retrieve the authenticated user. </p>
<p>This is usually used at the the server end to find the name of the authenticated user. On the client it will merely return whatever user was passed in to the <a class="el" href="group__connection.html#gafb84dd2ef7551ad864be08cb31010d19" title="Set the authentication username for a client connection.">pn_connection_set_user()</a> API of the bound connection.</p>
<p>The returned value is only reliable after the PN_TRANSPORT_AUTHENTICATED event has been received.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">transport</td><td>the transport</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>If a the user is anonymous (either no SASL layer is negotiated or the SASL ANONYMOUS mechanism is used) then the user will be "anonymous" Otherwise a string containing the user is returned. </dd></dl>
</div>
</div>
<a id="ga285b4cced59c665ae178adf26128d3fc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga285b4cced59c665ae178adf26128d3fc">&#9670;&nbsp;</a></span>pn_transport_require_auth()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void pn_transport_require_auth </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *&#160;</td>
<td class="paramname"><em>transport</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>required</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Set whether a non-authenticated transport connection is allowed. </p>
<p>There are several ways within the AMQP protocol suite to get unauthenticated connections:</p>
<ul>
<li>Use no SASL layer (with either no TLS or TLS without client certificates)</li>
<li>Use a SASL layer but the ANONYMOUS mechanism</li>
</ul>
<p>The default if this option is not set is to allow unauthenticated connections.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">transport</td><td>the transport </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">required</td><td>boolean is true when authenticated connections are required </td></tr>
</table>
</dd>
</dl>
<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="direct_8c-example.html#a62">direct.c</a>.</dd>
</dl>
</div>
</div>
<a id="ga8a60f6a48e4bd2d090f5bd264cf7f90d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8a60f6a48e4bd2d090f5bd264cf7f90d">&#9670;&nbsp;</a></span>pn_transport_is_authenticated()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool pn_transport_is_authenticated </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *&#160;</td>
<td class="paramname"><em>transport</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Tell whether the transport connection is authenticated. </p>
<p>Note that this property may not be stable until the PN_CONNECTION_REMOTE_OPEN event is received.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">transport</td><td>the transport </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>bool representing authentication </dd></dl>
</div>
</div>
<a id="gaeb7e30ead4a6ab080d0005379be20e34"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaeb7e30ead4a6ab080d0005379be20e34">&#9670;&nbsp;</a></span>pn_transport_require_encryption()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void pn_transport_require_encryption </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *&#160;</td>
<td class="paramname"><em>transport</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>required</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Set whether a non encrypted transport connection is allowed. </p>
<p>There are several ways within the AMQP protocol suite to get encrypted connections:</p><ul>
<li>Use TLS</li>
<li>Use a SASL with a mechanism that supports security layers</li>
</ul>
<p>The default if this option is not set is to allow unencrypted connections.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">transport</td><td>the transport </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">required</td><td>boolean is true when encrypted connections are required </td></tr>
</table>
</dd>
</dl>
<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="broker_8c-example.html#a40">broker.c</a>.</dd>
</dl>
</div>
</div>
<a id="ga737021ca419e948932071aad2ad38c5b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga737021ca419e948932071aad2ad38c5b">&#9670;&nbsp;</a></span>pn_transport_is_encrypted()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool pn_transport_is_encrypted </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *&#160;</td>
<td class="paramname"><em>transport</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Tell whether the transport connection is encrypted. </p>
<p>Note that this property may not be stable until the PN_CONNECTION_REMOTE_OPEN event is received.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">transport</td><td>the transport </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>bool representing encryption </dd></dl>
</div>
</div>
<a id="gac458d9fdb684f9501e89b96fc51f5c34"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac458d9fdb684f9501e89b96fc51f5c34">&#9670;&nbsp;</a></span>pn_transport_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_transport_condition </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *&#160;</td>
<td class="paramname"><em>transport</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get additional information about the condition of the transport. </p>
<p>When a PN_TRANSPORT_ERROR event occurs, this operation can be used to access the details of the error condition.</p>
<p>The pointer returned by this operation is valid until the transport object is freed.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">transport</td><td>the transport object </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the transport's condition object </dd></dl>
<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="broker_8c-example.html#a78">broker.c</a>, <a class="el" href="direct_8c-example.html#a71">direct.c</a>, <a class="el" href="receive_8c-example.html#a45">receive.c</a>, and <a class="el" href="send_8c-example.html#a39">send.c</a>.</dd>
</dl>
</div>
</div>
<a id="ga3a539904a3de515110377b41c185c615"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3a539904a3de515110377b41c185c615">&#9670;&nbsp;</a></span>pn_transport_logger()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__logger.html#gaff413c562d91f0c5eb2ec3ef4082165e">pn_logger_t</a>* pn_transport_logger </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *&#160;</td>
<td class="paramname"><em>transport</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the transport logger. </p>
<p>This can be used to control the logging information emitted by the transport</p>
<p>The pointer returned by this operation is valid until the transport object is freed.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">transport</td><td>the transport object </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the transport's logger object </dd></dl>
</div>
</div>
<a id="ga1a769e2e6c900c78c710407296cb4e13"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1a769e2e6c900c78c710407296cb4e13">&#9670;&nbsp;</a></span>pn_transport_bind()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int pn_transport_bind </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *&#160;</td>
<td class="paramname"><em>transport</em>, </td>
</tr>
<tr>
<td class="paramkey"></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>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Deprecated</b> - Use <a class="el" href="group__connection__driver.html#ga2330d329e295da740ef8d126657470c6" title="Set connection and transport to the provided values, or create a new pn_connection_t or pn_transport_...">pn_connection_driver_init()</a>. </p>
<p>Binds the transport to an AMQP connection.</p>
<dl class="section return"><dt>Returns</dt><dd>an error code, or 0 on success </dd></dl>
</div>
</div>
<a id="ga2a66ff267333651eb166f3f6fa4ede50"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2a66ff267333651eb166f3f6fa4ede50">&#9670;&nbsp;</a></span>pn_transport_unbind()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int pn_transport_unbind </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *&#160;</td>
<td class="paramname"><em>transport</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Deprecated</b> - Use <a class="el" href="group__connection__driver.html#ga3e8959d7897cd9415f687981c1d94c96" title="Unbind, release and free the connection and transport.">pn_connection_driver_destroy()</a>. </p>
<p>Unbinds a transport from its AMQP connection.</p>
<dl class="section return"><dt>Returns</dt><dd>an error code, or 0 on success </dd></dl>
</div>
</div>
<a id="gaa83f8c30fc0e7518c6ef214bb7b4ea56"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa83f8c30fc0e7518c6ef214bb7b4ea56">&#9670;&nbsp;</a></span>pn_transport_trace()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void pn_transport_trace </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *&#160;</td>
<td class="paramname"><em>transport</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__transport.html#ga4695788da8491f0c7104bfe36634ff94">pn_trace_t</a>&#160;</td>
<td class="paramname"><em>trace</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Update a transports trace flags. </p>
<p>The trace flags for a transport control what sort of information is logged. See <a class="el" href="group__transport.html#ga4695788da8491f0c7104bfe36634ff94" title="Holds the trace flags for an AMQP transport.">pn_trace_t</a> for more details.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">transport</td><td>a transport object </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">trace</td><td>the trace flags </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ga7eb7915459eb433e68ff5ce80c5020a7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7eb7915459eb433e68ff5ce80c5020a7">&#9670;&nbsp;</a></span>pn_transport_set_tracer()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void pn_transport_set_tracer </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *&#160;</td>
<td class="paramname"><em>transport</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__transport.html#gae9b49fcbf6397e6916eb4e1357c90ff3">pn_tracer_t</a>&#160;</td>
<td class="paramname"><em>tracer</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Set the tracing function used by a transport. </p>
<p>The tracing function is called to perform logging. Overriding this function allows embedding applications to divert the engine's logging to a place of their choice.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">transport</td><td>a transport object </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">tracer</td><td>the tracing function </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ga30d129d04a387ea34515c1641b83521b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga30d129d04a387ea34515c1641b83521b">&#9670;&nbsp;</a></span>pn_transport_get_tracer()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__transport.html#gae9b49fcbf6397e6916eb4e1357c90ff3">pn_tracer_t</a> pn_transport_get_tracer </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *&#160;</td>
<td class="paramname"><em>transport</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the tracing function used by a transport. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">transport</td><td>a transport object </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the tracing function used by a transport </dd></dl>
</div>
</div>
<a id="ga000b2b9ab82139defb1a103f220ec58e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga000b2b9ab82139defb1a103f220ec58e">&#9670;&nbsp;</a></span>pn_transport_get_context()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void* pn_transport_get_context </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *&#160;</td>
<td class="paramname"><em>transport</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the application context that is associated with a transport object. </p>
<p>The application context for a transport may be set using <a class="el" href="group__transport.html#gac22041ff85d1a1f5287ac2ba826edb74" title="Set a new application context for a transport object.">pn_transport_set_context</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">transport</td><td>the transport whose context is to be returned. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the application context for the transport object </dd></dl>
</div>
</div>
<a id="gac22041ff85d1a1f5287ac2ba826edb74"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac22041ff85d1a1f5287ac2ba826edb74">&#9670;&nbsp;</a></span>pn_transport_set_context()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void pn_transport_set_context </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *&#160;</td>
<td class="paramname"><em>transport</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 transport object. </p>
<p>The application context for a transport object may be retrieved using <a class="el" href="group__transport.html#ga000b2b9ab82139defb1a103f220ec58e" title="Get the application context that is associated with a transport object.">pn_transport_get_context</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">transport</td><td>the transport object </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">context</td><td>the application context </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="gabdd6d56837a028097b1676350d65a864"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gabdd6d56837a028097b1676350d65a864">&#9670;&nbsp;</a></span>pn_transport_attachments()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">pn_record_t* pn_transport_attachments </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *&#160;</td>
<td class="paramname"><em>transport</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the attachments that are associated with a transport object. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">transport</td><td>the transport whose attachments are to be returned. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the attachments for the transport object </dd></dl>
</div>
</div>
<a id="gad603e8d72578bcedd2d9235f74f28f37"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad603e8d72578bcedd2d9235f74f28f37">&#9670;&nbsp;</a></span>pn_transport_log()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void pn_transport_log </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *&#160;</td>
<td class="paramname"><em>transport</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>message</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Log a message using a transport's logging mechanism. </p>
<p>This can be useful in a debugging context as the log message will be prefixed with the transport's identifier.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">transport</td><td>a transport object </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">message</td><td>the message to be logged </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="gac773c1b9226783f36e2f2d4770e90e3f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac773c1b9226783f36e2f2d4770e90e3f">&#9670;&nbsp;</a></span>pn_transport_vlogf()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void pn_transport_vlogf </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *&#160;</td>
<td class="paramname"><em>transport</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>fmt</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">va_list&#160;</td>
<td class="paramname"><em>ap</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Log a printf formatted message using a transport's logging mechanism. </p>
<p>This can be useful in a debugging context as the log message will be prefixed with the transport's identifier.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">transport</td><td>a transport object </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">fmt</td><td>the printf formatted message to be logged </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">ap</td><td>a vector containing the format arguments </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ga26cff9ffda93e2ffc8606e19eefe7f84"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga26cff9ffda93e2ffc8606e19eefe7f84">&#9670;&nbsp;</a></span>pn_transport_logf()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void pn_transport_logf </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *&#160;</td>
<td class="paramname"><em>transport</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>fmt</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>...</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Log a printf formatted message using a transport's logging mechanism. </p>
<p>This can be useful in a debugging context as the log message will be prefixed with the transport's identifier.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">transport</td><td>a transport object </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">fmt</td><td>the printf formatted message to be logged </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="gac14e93cc5e8bc949fe7a0800ebd6e052"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac14e93cc5e8bc949fe7a0800ebd6e052">&#9670;&nbsp;</a></span>pn_transport_get_channel_max()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint16_t pn_transport_get_channel_max </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *&#160;</td>
<td class="paramname"><em>transport</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the maximum allowed channel for a transport. </p>
<p>This will be the minimum of</p><ol type="1">
<li>limit imposed by this proton implementation</li>
<li>limit imposed by remote peer</li>
<li>limit imposed by this application, using <a class="el" href="group__transport.html#ga8f080d7fb1e7fea2c93391d0b8f59773" title="Set the maximum allowed channel number for a transport.">pn_transport_set_channel_max()</a></li>
</ol>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">transport</td><td>a transport object </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the maximum allowed channel </dd></dl>
</div>
</div>
<a id="ga8f080d7fb1e7fea2c93391d0b8f59773"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8f080d7fb1e7fea2c93391d0b8f59773">&#9670;&nbsp;</a></span>pn_transport_set_channel_max()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int pn_transport_set_channel_max </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *&#160;</td>
<td class="paramname"><em>transport</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>channel_max</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Set the maximum allowed channel number for a transport. </p>
<p>Note that this is the maximum channel number allowed, giving a valid channel number range of [0..channel_max]. Therefore the maximum number of simultaneously active channels will be channel_max plus 1. You can call this function more than once to raise and lower the limit your application imposes on max channels for this transport. However, smaller limits may be imposed by this library, or by the remote peer. After the OPEN frame has been sent to the remote peer, further calls to this function will have no effect.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">transport</td><td>a transport object </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">channel_max</td><td>the maximum allowed channel </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>PN_OK, or PN_STATE_ERR if it is too late to change channel_max </dd></dl>
</div>
</div>
<a id="gaff7c08aeb92596ad9d269468d1557647"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaff7c08aeb92596ad9d269468d1557647">&#9670;&nbsp;</a></span>pn_transport_remote_channel_max()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint16_t pn_transport_remote_channel_max </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *&#160;</td>
<td class="paramname"><em>transport</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the maximum allowed channel of a transport's remote peer. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">transport</td><td>a transport object </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the maximum allowed channel of the transport's remote peer </dd></dl>
</div>
</div>
<a id="ga46552ed46e59de6530d2eee03707a51b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga46552ed46e59de6530d2eee03707a51b">&#9670;&nbsp;</a></span>pn_transport_get_max_frame()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t pn_transport_get_max_frame </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *&#160;</td>
<td class="paramname"><em>transport</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the maximum frame size of a transport. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">transport</td><td>a transport object </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the maximum frame size of the transport object </dd></dl>
</div>
</div>
<a id="ga51573625b6940884fed214b615f42e0f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga51573625b6940884fed214b615f42e0f">&#9670;&nbsp;</a></span>pn_transport_set_max_frame()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void pn_transport_set_max_frame </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *&#160;</td>
<td class="paramname"><em>transport</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_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>Set the maximum frame size of a transport. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">transport</td><td>a transport object </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>the maximum frame size for the transport object </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ga351823e18e043576078f361d7dfe1cce"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga351823e18e043576078f361d7dfe1cce">&#9670;&nbsp;</a></span>pn_transport_get_remote_max_frame()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t pn_transport_get_remote_max_frame </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *&#160;</td>
<td class="paramname"><em>transport</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the maximum frame size of a transport's remote peer. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">transport</td><td>a transport object </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the maximum frame size of the transport's remote peer </dd></dl>
</div>
</div>
<a id="ga6980396c3d890b86656167c3a063eee7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6980396c3d890b86656167c3a063eee7">&#9670;&nbsp;</a></span>pn_transport_get_idle_timeout()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__api__types.html#ga9a701bc6dc9af9f42c3f4679172a723c">pn_millis_t</a> pn_transport_get_idle_timeout </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *&#160;</td>
<td class="paramname"><em>transport</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the idle timeout for a transport. </p>
<p>A zero idle timeout means heartbeats are disabled.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">transport</td><td>a transport object </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the transport's idle timeout </dd></dl>
</div>
</div>
<a id="gafb1c98602d17524eb40e48bf610362d7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gafb1c98602d17524eb40e48bf610362d7">&#9670;&nbsp;</a></span>pn_transport_set_idle_timeout()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void pn_transport_set_idle_timeout </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *&#160;</td>
<td class="paramname"><em>transport</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__api__types.html#ga9a701bc6dc9af9f42c3f4679172a723c">pn_millis_t</a>&#160;</td>
<td class="paramname"><em>timeout</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Set the idle timeout for a transport. </p>
<p>A zero idle timeout means heartbeats are disabled.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">transport</td><td>a transport object </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">timeout</td><td>the idle timeout for the transport object </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="gabdcbd5d08c5b5cd3603dee74421985b5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gabdcbd5d08c5b5cd3603dee74421985b5">&#9670;&nbsp;</a></span>pn_transport_get_remote_idle_timeout()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__api__types.html#ga9a701bc6dc9af9f42c3f4679172a723c">pn_millis_t</a> pn_transport_get_remote_idle_timeout </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *&#160;</td>
<td class="paramname"><em>transport</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the idle timeout for a transport's remote peer. </p>
<p>A zero idle timeout means heartbeats are disabled.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">transport</td><td>a transport object </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the idle timeout for the transport's remote peer </dd></dl>
</div>
</div>
<a id="gaa079bb5f5b9ea10734c9d8af26fba333"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa079bb5f5b9ea10734c9d8af26fba333">&#9670;&nbsp;</a></span>pn_transport_capacity()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">ssize_t pn_transport_capacity </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *&#160;</td>
<td class="paramname"><em>transport</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Deprecated</b> - Use the <a class="el" href="group__connection__driver.html">Connection driver</a> API. </p>
<p>Get the amount of free space for input following the transport's tail pointer.</p>
<p>If the engine is in an exceptional state such as encountering an error condition or reaching the end of stream state, a negative value will be returned indicating the condition. If an error is indicated, further details can be obtained from <a class="el" href="group__transport.html#gac458d9fdb684f9501e89b96fc51f5c34" title="Get additional information about the condition of the transport.">pn_transport_condition()</a>. Calls to <a class="el" href="group__transport.html#ga1f52a6f11322873e74b9daf004269a91" title="Deprecated - Use the Connection driver API.">pn_transport_process()</a> may alter the value of this pointer. See <a class="el" href="group__transport.html#ga1f52a6f11322873e74b9daf004269a91" title="Deprecated - Use the Connection driver API.">pn_transport_process</a> for details.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">transport</td><td>the transport </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the free space in the transport, PN_EOS or error code if &lt; 0 </dd></dl>
</div>
</div>
<a id="ga4a9e6c6b207c41647ff988b5ae090d85"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga4a9e6c6b207c41647ff988b5ae090d85">&#9670;&nbsp;</a></span>pn_transport_tail()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">char* pn_transport_tail </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *&#160;</td>
<td class="paramname"><em>transport</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Deprecated</b> - Use the <a class="el" href="group__connection__driver.html">Connection driver</a> API. </p>
<p>Get the transport's tail pointer.</p>
<p>The amount of free space following this pointer is reported by <a class="el" href="group__transport.html#gaa079bb5f5b9ea10734c9d8af26fba333" title="Deprecated - Use the Connection driver API.">pn_transport_capacity</a>. Calls to <a class="el" href="group__transport.html#ga1f52a6f11322873e74b9daf004269a91" title="Deprecated - Use the Connection driver API.">pn_transport_process</a> may alter the value of this pointer. See <a class="el" href="group__transport.html#ga1f52a6f11322873e74b9daf004269a91" title="Deprecated - Use the Connection driver API.">pn_transport_process</a> for details.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">transport</td><td>the transport </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a pointer to the transport's input buffer, NULL if no capacity available. </dd></dl>
</div>
</div>
<a id="ga50c63f26b8b16f45e6e7912ca54de94b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga50c63f26b8b16f45e6e7912ca54de94b">&#9670;&nbsp;</a></span>pn_transport_push()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">ssize_t pn_transport_push </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *&#160;</td>
<td class="paramname"><em>transport</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>src</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_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>Deprecated</b> - Use the <a class="el" href="group__connection__driver.html">Connection driver</a> API. </p>
<p>Pushes the supplied bytes into the tail of the transport.</p>
<p>This is equivalent to copying <code>size</code> bytes after the tail pointer and then calling <a class="el" href="group__transport.html#ga1f52a6f11322873e74b9daf004269a91" title="Deprecated - Use the Connection driver API.">pn_transport_process</a> with an argument of <code>size</code>. Only some of the bytes will be copied if there is insufficient capacity available. Use <a class="el" href="group__transport.html#gaa079bb5f5b9ea10734c9d8af26fba333" title="Deprecated - Use the Connection driver API.">pn_transport_capacity</a> to determine how much capacity the transport has.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">transport</td><td>the transport </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">src</td><td>the start of the data to push into the transport </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>the amount of data to push into the transport</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the number of bytes pushed on success, or error code if &lt; 0 </dd></dl>
</div>
</div>
<a id="ga1f52a6f11322873e74b9daf004269a91"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1f52a6f11322873e74b9daf004269a91">&#9670;&nbsp;</a></span>pn_transport_process()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int pn_transport_process </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *&#160;</td>
<td class="paramname"><em>transport</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_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>Deprecated</b> - Use the <a class="el" href="group__connection__driver.html">Connection driver</a> API. </p>
<p>Process input data following the tail pointer.</p>
<p>Calling this function will cause the transport to consume <code>size</code> bytes of input occupying the free space following the tail pointer. Calls to this function may change the value of <a class="el" href="group__transport.html#ga4a9e6c6b207c41647ff988b5ae090d85" title="Deprecated - Use the Connection driver API.">pn_transport_tail</a>, as well as the amount of free space reported by <a class="el" href="group__transport.html#gaa079bb5f5b9ea10734c9d8af26fba333" title="Deprecated - Use the Connection driver API.">pn_transport_capacity</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">transport</td><td>the transport </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>the amount of data written to the transport's input buffer </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 on success, or error code if &lt; 0 </dd></dl>
</div>
</div>
<a id="gaa8304f8719610e384aa9a3f5f3c98289"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa8304f8719610e384aa9a3f5f3c98289">&#9670;&nbsp;</a></span>pn_transport_close_tail()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int pn_transport_close_tail </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *&#160;</td>
<td class="paramname"><em>transport</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Deprecated</b> - Use the <a class="el" href="group__connection__driver.html">Connection driver</a> API. </p>
<p>Indicate that the input has reached End Of Stream (EOS).</p>
<p>This tells the transport that no more input will be forthcoming.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">transport</td><td>the transport </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 on success, or error code if &lt; 0 </dd></dl>
</div>
</div>
<a id="ga81adf1fd6fa28054f2f80c424aa98122"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga81adf1fd6fa28054f2f80c424aa98122">&#9670;&nbsp;</a></span>pn_transport_pending()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">ssize_t pn_transport_pending </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *&#160;</td>
<td class="paramname"><em>transport</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Deprecated</b> - Use the <a class="el" href="group__connection__driver.html">Connection driver</a> API. </p>
<p>Get the number of pending output bytes following the transport's head pointer.</p>
<p>If the engine is in an exceptional state such as encountering an error condition or reaching the end of stream state, a negative value will be returned indicating the condition. If an error is indicated, further details can be obtained from <a class="el" href="group__transport.html#gac458d9fdb684f9501e89b96fc51f5c34" title="Get additional information about the condition of the transport.">pn_transport_condition()</a>. Calls to <a class="el" href="group__transport.html#ga31470f0b0dbfd2c8c2929cc170858dc9" title="Deprecated - Use the Connection driver API.">pn_transport_pop()</a> may alter the value of this pointer. See <a class="el" href="group__transport.html#ga31470f0b0dbfd2c8c2929cc170858dc9" title="Deprecated - Use the Connection driver API.">pn_transport_pop()</a> for details.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">transport</td><td>the transport </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the number of pending output bytes, or an error code </dd></dl>
</div>
</div>
<a id="ga3ef8b0032b2a012c697e853e363338ea"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3ef8b0032b2a012c697e853e363338ea">&#9670;&nbsp;</a></span>pn_transport_head()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const char* pn_transport_head </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *&#160;</td>
<td class="paramname"><em>transport</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Deprecated</b> - Use the <a class="el" href="group__connection__driver.html">Connection driver</a> API. </p>
<p>Get the transport's head pointer.</p>
<p>This pointer references queued output data. The <a class="el" href="group__transport.html#ga81adf1fd6fa28054f2f80c424aa98122" title="Deprecated - Use the Connection driver API.">pn_transport_pending</a> function reports how many bytes of output data follow this pointer. Calls to <a class="el" href="group__transport.html#ga31470f0b0dbfd2c8c2929cc170858dc9" title="Deprecated - Use the Connection driver API.">pn_transport_pop</a> may alter this pointer and any data it references. See <a class="el" href="group__transport.html#ga31470f0b0dbfd2c8c2929cc170858dc9" title="Deprecated - Use the Connection driver API.">pn_transport_pop</a> for details.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">transport</td><td>the transport </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a pointer to the transport's output buffer, or NULL if no pending output. </dd></dl>
</div>
</div>
<a id="ga09a0d15514ca9a14eb40f12425a52797"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga09a0d15514ca9a14eb40f12425a52797">&#9670;&nbsp;</a></span>pn_transport_peek()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">ssize_t pn_transport_peek </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *&#160;</td>
<td class="paramname"><em>transport</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char *&#160;</td>
<td class="paramname"><em>dst</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_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>Deprecated</b> - Use the <a class="el" href="group__connection__driver.html">Connection driver</a> API. </p>
<p>Copies <code>size</code> bytes from the head of the transport to the <code>dst</code> pointer.</p>
<p>It is an error to call this with a value of <code>size</code> that is greater than the value reported by <a class="el" href="group__transport.html#ga81adf1fd6fa28054f2f80c424aa98122" title="Deprecated - Use the Connection driver API.">pn_transport_pending</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">transport</td><td>the transport </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">dst</td><td>the destination buffer </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>the capacity of the destination buffer </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>number of bytes copied on success, or error code if &lt; 0 </dd></dl>
</div>
</div>
<a id="ga31470f0b0dbfd2c8c2929cc170858dc9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga31470f0b0dbfd2c8c2929cc170858dc9">&#9670;&nbsp;</a></span>pn_transport_pop()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void pn_transport_pop </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *&#160;</td>
<td class="paramname"><em>transport</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_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>Deprecated</b> - Use the <a class="el" href="group__connection__driver.html">Connection driver</a> API. </p>
<p>Removes <code>size</code> bytes of output from the pending output queue following the transport's head pointer.</p>
<p>Calls to this function may alter the transport's head pointer as well as the number of pending bytes reported by <a class="el" href="group__transport.html#ga81adf1fd6fa28054f2f80c424aa98122" title="Deprecated - Use the Connection driver API.">pn_transport_pending</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">transport</td><td>the transport </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>the number of bytes to remove </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="gab8d0c7878d3d8ecda627678a6ec55072"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab8d0c7878d3d8ecda627678a6ec55072">&#9670;&nbsp;</a></span>pn_transport_close_head()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int pn_transport_close_head </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *&#160;</td>
<td class="paramname"><em>transport</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Deprecated</b> - Use the <a class="el" href="group__connection__driver.html">Connection driver</a> API. </p>
<p>Indicate that the output has closed.</p>
<p>This tells the transport that no more output will be popped.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">transport</td><td>the transport </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 on success, or error code if &lt; 0 </dd></dl>
</div>
</div>
<a id="gab8d9e4729b8835d3740de8d2c78831ef"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab8d9e4729b8835d3740de8d2c78831ef">&#9670;&nbsp;</a></span>pn_transport_quiesced()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool pn_transport_quiesced </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *&#160;</td>
<td class="paramname"><em>transport</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Deprecated</b> - Use the <a class="el" href="group__connection__driver.html">Connection driver</a> API. </p>
<p>Check if a transport has buffered data.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">transport</td><td>a transport object </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if the transport has buffered data, false otherwise </dd></dl>
</div>
</div>
<a id="ga3eb018b426d168de8c8d9b3441be036c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3eb018b426d168de8c8d9b3441be036c">&#9670;&nbsp;</a></span>pn_transport_head_closed()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool pn_transport_head_closed </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *&#160;</td>
<td class="paramname"><em>transport</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Deprecated</b> - Use the <a class="el" href="group__connection__driver.html">Connection driver</a> API. </p>
<p>True if <a class="el" href="group__transport.html#gab8d0c7878d3d8ecda627678a6ec55072" title="Deprecated - Use the Connection driver API.">pn_transport_close_head()</a> has been called. </p>
</div>
</div>
<a id="ga65e4c70675f7e94dfaa9d58b2a590694"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga65e4c70675f7e94dfaa9d58b2a590694">&#9670;&nbsp;</a></span>pn_transport_tail_closed()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool pn_transport_tail_closed </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *&#160;</td>
<td class="paramname"><em>transport</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Deprecated</b> - Use the <a class="el" href="group__connection__driver.html">Connection driver</a> API. </p>
<p>True if <a class="el" href="group__transport.html#gaa8304f8719610e384aa9a3f5f3c98289" title="Deprecated - Use the Connection driver API.">pn_transport_close_tail()</a> has been called. </p>
</div>
</div>
<a id="ga55c589d9b3e69057b130036c3c2173df"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga55c589d9b3e69057b130036c3c2173df">&#9670;&nbsp;</a></span>pn_transport_closed()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool pn_transport_closed </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *&#160;</td>
<td class="paramname"><em>transport</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Deprecated</b> - Use the <a class="el" href="group__connection__driver.html">Connection driver</a> API. </p>
<p>Equivalent to pn_transport_head_closed(transport) &amp;&amp; pn_transport_tail_closed(transport) </p>
</div>
</div>
<a id="ga8cb42b06900d6b52389f2e5c5289ab73"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8cb42b06900d6b52389f2e5c5289ab73">&#9670;&nbsp;</a></span>pn_transport_tick()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int64_t pn_transport_tick </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *&#160;</td>
<td class="paramname"><em>transport</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int64_t&#160;</td>
<td class="paramname"><em>now</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Process any pending transport timer events. </p>
<p>This method should be called after all pending input has been processed by the transport and before generating output. It returns the deadline for the next pending timer event, if any are present.</p>
<p>Note that this function does nothing until the first data is read from or written to the transport.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">transport</td><td>the transport to process. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">now</td><td>A monotonically-increasing time value in milliseconds. Does not need to be wall-clock time or a valid AMQP timestamp, but must increase monotonically.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>If non-zero, then the monotonic expiration time of the next pending timer event for the transport. The caller must invoke pn_transport_tick again at least once at or before this deadline occurs. If 0 there are no pending events. </dd></dl>
</div>
</div>
<a id="ga3887e8d8c60d06df9978947edaf4d461"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3887e8d8c60d06df9978947edaf4d461">&#9670;&nbsp;</a></span>pn_transport_get_frames_output()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint64_t pn_transport_get_frames_output </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *&#160;</td>
<td class="paramname"><em>transport</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Deprecated</b> - No replacement. </p>
<p>Get the number of frames output by a transport.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">transport</td><td>a transport object </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the number of frames output by the transport </dd></dl>
</div>
</div>
<a id="ga92ce0b44ab956c182d646824b4e9ed61"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga92ce0b44ab956c182d646824b4e9ed61">&#9670;&nbsp;</a></span>pn_transport_get_frames_input()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint64_t pn_transport_get_frames_input </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *&#160;</td>
<td class="paramname"><em>transport</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Deprecated</b> - No replacement. </p>
<p>Get the number of frames input by a transport.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">transport</td><td>a transport object </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the number of frames input by the transport </dd></dl>
</div>
</div>
<a id="ga2b98f594e012c24e7b17dcc91e3d4caf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2b98f594e012c24e7b17dcc91e3d4caf">&#9670;&nbsp;</a></span>pn_transport_connection()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__connection.html#ga886351d81ff3a977a284a206526c5aff">pn_connection_t</a>* pn_transport_connection </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *&#160;</td>
<td class="paramname"><em>transport</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Access the AMQP Connection associated with the transport. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">transport</td><td>a transport object </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the connection context for the transport, or NULL if none </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>