You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by jr...@apache.org on 2017/08/30 03:12:40 UTC

[21/51] [partial] qpid-site git commit: QPID-7903: Publish a snapshot of the Proton C docs

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/36c59045/content/releases/qpid-proton-master/proton/c/api/group__transport.html
----------------------------------------------------------------------
diff --git a/content/releases/qpid-proton-master/proton/c/api/group__transport.html b/content/releases/qpid-proton-master/proton/c/api/group__transport.html
index a6fbd7b..c71f36e 100755
--- a/content/releases/qpid-proton-master/proton/c/api/group__transport.html
+++ b/content/releases/qpid-proton-master/proton/c/api/group__transport.html
@@ -3,7 +3,8 @@
 <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.11"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<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>
@@ -14,7 +15,6 @@
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="search/searchdata.js"></script>
@@ -55,7 +55,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.11 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
@@ -103,22 +103,22 @@ $(document).ready(function(){initNavTree('group__transport.html','');});
 <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 class="anchor" id="gae8f32e46e94953bab10bee530eee9044"></a>
+<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 class="anchor" id="gafde0eb3c73fb98816f4238d42d48f3d8"></a>
+<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 into/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 class="anchor" id="gab8e04b4c128379ff27e6b801c0bce494"></a>
+<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 frames into/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, e.g.  <a href="#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 class="anchor" id="ga3bde88d15fcfda400a36d8f9e5d51688"></a>
+<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>
@@ -128,7 +128,7 @@ 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="#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 class="anchor" id="gae9b49fcbf6397e6916eb4e1357c90ff3"></a>
+<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>
@@ -262,8 +262,17 @@ Functions</h2></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">Check if a transport has buffered data.  <a href="#gab8d9e4729b8835d3740de8d2c78831ef">More...</a><br /></td></tr>
 <tr class="separator:gab8d9e4729b8835d3740de8d2c78831ef"><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">Check if a transport is closed.  <a href="#ga55c589d9b3e69057b130036c3c2173df">More...</a><br /></td></tr>
+<tr class="memitem:ga3eb018b426d168de8c8d9b3441be036c"><td class="memItemLeft" align="right" valign="top"><a id="ga3eb018b426d168de8c8d9b3441be036c"></a>
+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">True if <a class="el" href="group__transport.html#gab8d0c7878d3d8ecda627678a6ec55072" title="Indicate that the output has closed. ">pn_transport_close_head()</a> has been called. <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"><a id="ga65e4c70675f7e94dfaa9d58b2a590694"></a>
+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">True if <a class="el" href="group__transport.html#gaa8304f8719610e384aa9a3f5f3c98289" title="Indicate that the input has reached End Of Stream (EOS). ">pn_transport_close_tail()</a> has been called. <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"><a id="ga55c589d9b3e69057b130036c3c2173df"></a>
+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">Equivalent to pn_transport_head_closed(transport) &amp;&amp; pn_transport_tail_closed(transport) <br /></td></tr>
 <tr class="separator:ga55c589d9b3e69057b130036c3c2173df"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ga0f2abc6827e9370c0aebb2e5dd7535a9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__amqp__types.html#gad337c365b498106064ec28e00e5fb6dd">pn_timestamp_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__transport.html#ga0f2abc6827e9370c0aebb2e5dd7535a9">pn_transport_tick</a> (<a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport, <a class="el" href="group__amqp__types.html#gad337c365b498106064ec28e00e5fb6dd">pn_timestamp_t</a> now)</td></tr>
 <tr class="memdesc:ga0f2abc6827e9370c0aebb2e5dd7535a9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Process any pending transport timer events.  <a href="#ga0f2abc6827e9370c0aebb2e5dd7535a9">More...</a><br /></td></tr>
@@ -281,7 +290,9 @@ Functions</h2></td></tr>
 <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 class="anchor" id="ga7065ad65f95c995a24e416edc95aead4"></a>
+<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">
@@ -297,7 +308,9 @@ Functions</h2></td></tr>
 </div>
 </div>
 <h2 class="groupheader">Typedef Documentation</h2>
-<a class="anchor" id="ga4695788da8491f0c7104bfe36634ff94"></a>
+<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">
@@ -319,7 +332,9 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="gac26eda05f649bbf0399f3d8d78d12fa8"></a>
+<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">
@@ -335,7 +350,9 @@ Functions</h2></td></tr>
 </div>
 </div>
 <h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="gaf9833d93faf6a6ed68039e4a909cdd77"></a>
+<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">
@@ -359,12 +376,14 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="gabdd6d56837a028097b1676350d65a864"></a>
+<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">pn_record_t* pn_transport_attachments </td>
+          <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>
@@ -373,52 +392,51 @@ Functions</h2></td></tr>
       </table>
 </div><div class="memdoc">
 
-<p>Get the attachments that are associated with a transport object. </p>
+<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>the transport whose attachments are to be returned. </td></tr>
+    <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 attachments for the transport object </dd></dl>
 
 </div>
 </div>
-<a class="anchor" id="ga1a769e2e6c900c78c710407296cb4e13"></a>
+<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">int pn_transport_bind </td>
+          <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>
-        </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 class="paramname"><em>transport</em></td><td>)</td>
           <td></td>
-          <td>)</td>
-          <td></td><td></td>
         </tr>
       </table>
 </div><div class="memdoc">
 
-<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>
+<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 class="anchor" id="gaa079bb5f5b9ea10734c9d8af26fba333"></a>
+<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">ssize_t pn_transport_capacity </td>
+          <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>
@@ -427,50 +445,71 @@ Functions</h2></td></tr>
       </table>
 </div><div class="memdoc">
 
-<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, futher details can be obtained from <a class="el" href="group__transport.html#gaede0bc2a0038ccdc7e1b193e322147fa">pn_transport_error</a>. Calls to <a class="el" href="group__transport.html#ga1f52a6f11322873e74b9daf004269a91" title="Process input data following the tail pointer. ">pn_transport_process</a> may alter the value of this pointer. See <a class="el" href="group__transport.html#ga1f52a6f11322873e74b9daf004269a91" title="Process input data following the tail pointer. ">pn_transport_process</a> for details.</p>
+<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>
+    <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>
+<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 class="anchor" id="gab8d0c7878d3d8ecda627678a6ec55072"></a>
+<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">int pn_transport_close_head </td>
+          <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><td>)</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>Indicate that the output has closed. </p>
-<p>This tells the transport that no more output will be popped.</p>
+<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 return"><dt>Returns</dt><dd>0 on success, or error code if &lt; 0 </dd></dl>
-
+<dl><dt><b>Examples: </b></dt><dd><a class="el" href="broker_8c-example.html#a35">broker.c</a>, and <a class="el" href="direct_8c-example.html#a66">direct.c</a>.</dd>
+</dl>
 </div>
 </div>
-<a class="anchor" id="gaa8304f8719610e384aa9a3f5f3c98289"></a>
+<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">int pn_transport_close_tail </td>
+          <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>
@@ -479,50 +518,68 @@ Functions</h2></td></tr>
       </table>
 </div><div class="memdoc">
 
-<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>
+<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>0 on success, or error code if &lt; 0 </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>bool representing authentication </dd></dl>
 
 </div>
 </div>
-<a class="anchor" id="ga55c589d9b3e69057b130036c3c2173df"></a>
+<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">bool pn_transport_closed </td>
+          <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><td>)</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>Check if a transport is closed. </p>
-<p>A transport is defined to be closed when both the tail and the head are closed. In other words, when both <a class="el" href="group__transport.html#gaa079bb5f5b9ea10734c9d8af26fba333" title="Get the amount of free space for input following the transport&#39;s tail pointer. ">pn_transport_capacity()</a> &lt; 0 and <a class="el" href="group__transport.html#ga81adf1fd6fa28054f2f80c424aa98122" title="Get the number of pending output bytes following the transport&#39;s head pointer. ">pn_transport_pending()</a> &lt; 0.</p>
+<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 saecurity 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>a transport object </td></tr>
+    <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 return"><dt>Returns</dt><dd>true if the transport is closed, false otherwise </dd></dl>
 
 </div>
 </div>
-<a class="anchor" id="gac458d9fdb684f9501e89b96fc51f5c34"></a>
+<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"><a class="el" href="group__condition.html#ga11eb7db7d2c205169fe3d47c996a95a5">pn_condition_t</a>* pn_transport_condition </td>
+          <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>
@@ -531,26 +588,26 @@ Functions</h2></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 condtion.</p>
-<p>The pointer returned by this operation is valid until the transport object is freed.</p>
+<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 object </td></tr>
+    <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 transport's condition object </dd></dl>
-<dl><dt><b>Examples: </b></dt><dd><a class="el" href="broker_8c-example.html#a68">broker.c</a>, <a class="el" href="receive_8c-example.html#a40">receive.c</a>, and <a class="el" href="send_8c-example.html#a55">send.c</a>.</dd>
-</dl>
+<dl class="section return"><dt>Returns</dt><dd>bool representing encryption </dd></dl>
+
 </div>
 </div>
-<a class="anchor" id="ga2b98f594e012c24e7b17dcc91e3d4caf"></a>
+<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__connection.html#ga886351d81ff3a977a284a206526c5aff">pn_connection_t</a>* pn_transport_connection </td>
+          <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>
@@ -559,18 +616,23 @@ Functions</h2></td></tr>
       </table>
 </div><div class="memdoc">
 
-<p>Access the AMQP Connection associated with the transport. </p>
+<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 condtion.</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>a transport object </td></tr>
+    <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 connection context for the transport, or NULL if none </dd></dl>
-
+<dl class="section return"><dt>Returns</dt><dd>the transport's condition object </dd></dl>
+<dl><dt><b>Examples: </b></dt><dd><a class="el" href="broker_8c-example.html#a66">broker.c</a>, <a class="el" href="direct_8c-example.html#a75">direct.c</a>, <a class="el" href="receive_8c-example.html#a39">receive.c</a>, and <a class="el" href="send_8c-example.html#a49">send.c</a>.</dd>
+</dl>
 </div>
 </div>
-<a class="anchor" id="gaede0bc2a0038ccdc7e1b193e322147fa"></a>
+<a id="gaede0bc2a0038ccdc7e1b193e322147fa"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaede0bc2a0038ccdc7e1b193e322147fa">&#9670;&nbsp;</a></span>pn_transport_error()</h2>
+
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
@@ -587,37 +649,45 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="ga6ab28051242631d9bea4814e8670ab90"></a>
+<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">void pn_transport_free </td>
+          <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><td>)</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>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>
+<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 class="anchor" id="gac14e93cc5e8bc949fe7a0800ebd6e052"></a>
+<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">uint16_t pn_transport_get_channel_max </td>
+          <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>
@@ -626,104 +696,122 @@ Functions</h2></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>
+<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 class="anchor" id="ga000b2b9ab82139defb1a103f220ec58e"></a>
+<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_get_context </td>
+          <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><td>)</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">
-<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000014">Deprecated:</a></b></dt><dd></dd></dl>
-<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">pn_transport_set_context</a>.</p>
+
+<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>the transport whose context is to be returned. </td></tr>
+    <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>
-<dl class="section return"><dt>Returns</dt><dd>the application context for the transport object </dd></dl>
 
 </div>
 </div>
-<a class="anchor" id="ga92ce0b44ab956c182d646824b4e9ed61"></a>
+<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">uint64_t pn_transport_get_frames_input </td>
+          <td class="memname">void pn_transport_set_tracer </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 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>Get the number of frames input by a transport. </p>
+<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>
-<dl class="section return"><dt>Returns</dt><dd>the number of frames input by the transport </dd></dl>
 
 </div>
 </div>
-<a class="anchor" id="ga3887e8d8c60d06df9978947edaf4d461"></a>
+<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">uint64_t pn_transport_get_frames_output </td>
+          <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">const <a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *&#160;</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 number of frames output by a transport. </p>
+<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 number of frames output by the transport </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>the tracing function used by a transport </dd></dl>
 
 </div>
 </div>
-<a class="anchor" id="ga6980396c3d890b86656167c3a063eee7"></a>
+<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"><a class="el" href="group__api__types.html#ga9a701bc6dc9af9f42c3f4679172a723c">pn_millis_t</a> pn_transport_get_idle_timeout </td>
+          <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>
@@ -731,50 +819,65 @@ Functions</h2></td></tr>
         </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="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000014">Deprecated:</a></b></dt><dd></dd></dl>
+<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">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>a transport object </td></tr>
+    <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 transport's idle timeout </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>the application context for the transport object </dd></dl>
 
 </div>
 </div>
-<a class="anchor" id="ga46552ed46e59de6530d2eee03707a51b"></a>
+<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">uint32_t pn_transport_get_max_frame </td>
+          <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><td>)</td>
-          <td></td>
+          <td class="paramname"><em>transport</em>, </td>
         </tr>
-      </table>
+        <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>Get the maximum frame size of a transport. </p>
+<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000015">Deprecated:</a></b></dt><dd></dd></dl>
+<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">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>a transport object </td></tr>
+    <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>
-<dl class="section return"><dt>Returns</dt><dd>the maximum frame size of the transport object </dd></dl>
 
 </div>
 </div>
-<a class="anchor" id="gabdcbd5d08c5b5cd3603dee74421985b5"></a>
+<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"><a class="el" href="group__api__types.html#ga9a701bc6dc9af9f42c3f4679172a723c">pn_millis_t</a> pn_transport_get_remote_idle_timeout </td>
+          <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>
@@ -783,101 +886,152 @@ Functions</h2></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>
+<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>a transport object </td></tr>
+    <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 idle timeout for the transport's remote peer </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>the attachments for the transport object </dd></dl>
 
 </div>
 </div>
-<a class="anchor" id="ga351823e18e043576078f361d7dfe1cce"></a>
+<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">uint32_t pn_transport_get_remote_max_frame </td>
+          <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><td>)</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>Get the maximum frame size of a transport's remote peer. </p>
+<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>
-<dl class="section return"><dt>Returns</dt><dd>the maximum frame size of the transport's remote peer </dd></dl>
 
 </div>
 </div>
-<a class="anchor" id="ga30d129d04a387ea34515c1641b83521b"></a>
+<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"><a class="el" href="group__transport.html#gae9b49fcbf6397e6916eb4e1357c90ff3">pn_tracer_t</a> pn_transport_get_tracer </td>
+          <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><td>)</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>Get the tracing function used by a transport. </p>
+<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>
-<dl class="section return"><dt>Returns</dt><dd>the tracing function used by a transport </dd></dl>
 
 </div>
 </div>
-<a class="anchor" id="ga6b2750a2d313c65aabe5dc8a99f1de58"></a>
+<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">const char* pn_transport_get_user </td>
+          <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><td>)</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>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>
+<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>the transport</td></tr>
+    <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>
-<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 class="anchor" id="ga3ef8b0032b2a012c697e853e363338ea"></a>
+<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">const char* pn_transport_head </td>
+          <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>
@@ -886,24 +1040,30 @@ Functions</h2></td></tr>
       </table>
 </div><div class="memdoc">
 
-<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="Get the number of pending output bytes following the transport&#39;s head pointer. ">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="Removes size bytes of output from the pending output queue following the transport&#39;s head pointer...">pn_transport_pop</a> may alter this pointer and any data it references. See <a class="el" href="group__transport.html#ga31470f0b0dbfd2c8c2929cc170858dc9" title="Removes size bytes of output from the pending output queue following the transport&#39;s head pointer...">pn_transport_pop</a> for details.</p>
+<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>the transport </td></tr>
+    <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>a pointer to the transport's output buffer, or NULL if no pending output. </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>the maximum allowed channel </dd></dl>
 
 </div>
 </div>
-<a class="anchor" id="ga93f5efd9d63ebd1b1498fdace388ec3d"></a>
+<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">ssize_t pn_transport_input </td>
+          <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>
@@ -911,14 +1071,8 @@ Functions</h2></td></tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">const char *&#160;</td>
-          <td class="paramname"><em>bytes</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">size_t&#160;</td>
-          <td class="paramname"><em>available</em>&#160;</td>
+          <td class="paramtype">uint16_t&#160;</td>
+          <td class="paramname"><em>channel_max</em>&#160;</td>
         </tr>
         <tr>
           <td></td>
@@ -927,16 +1081,28 @@ Functions</h2></td></tr>
         </tr>
       </table>
 </div><div class="memdoc">
-<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000016">Deprecated:</a></b></dt><dd></dd></dl>
+
+<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 simultaineously 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 class="anchor" id="ga8a60f6a48e4bd2d090f5bd264cf7f90d"></a>
+<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">bool pn_transport_is_authenticated </td>
+          <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>
@@ -945,24 +1111,25 @@ Functions</h2></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>
+<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>the transport </td></tr>
+    <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>bool representing authentication </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 class="anchor" id="ga737021ca419e948932071aad2ad38c5b"></a>
+<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">bool pn_transport_is_encrypted </td>
+          <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>
@@ -971,24 +1138,25 @@ Functions</h2></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>
+<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>the transport </td></tr>
+    <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>bool representing encryption </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>the maximum frame size of the transport object </dd></dl>
 
 </div>
 </div>
-<a class="anchor" id="gad603e8d72578bcedd2d9235f74f28f37"></a>
+<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_log </td>
+          <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>
@@ -996,8 +1164,8 @@ Functions</h2></td></tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">const char *&#160;</td>
-          <td class="paramname"><em>message</em>&#160;</td>
+          <td class="paramtype">uint32_t&#160;</td>
+          <td class="paramname"><em>size</em>&#160;</td>
         </tr>
         <tr>
           <td></td>
@@ -1007,99 +1175,80 @@ Functions</h2></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>
+<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">message</td><td>the message to be logged </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 class="anchor" id="ga26cff9ffda93e2ffc8606e19eefe7f84"></a>
+<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">void pn_transport_logf </td>
+          <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>
-        </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 class="paramname"><em>transport</em></td><td>)</td>
           <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>
+<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>
-    <tr><td class="paramdir">[in]</td><td class="paramname">fmt</td><td>the printf formatted message to be logged </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 class="anchor" id="gae72fdee3b8aae3cb484b0ed98c2b802e"></a>
+<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">ssize_t pn_transport_output </td>
+          <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>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">char *&#160;</td>
-          <td class="paramname"><em>bytes</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">size_t&#160;</td>
-          <td class="paramname"><em>size</em>&#160;</td>
-        </tr>
-        <tr>
+          <td class="paramname"><em>transport</em></td><td>)</td>
           <td></td>
-          <td>)</td>
-          <td></td><td></td>
         </tr>
       </table>
 </div><div class="memdoc">
-<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000017">Deprecated:</a></b></dt><dd></dd></dl>
+
+<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 class="anchor" id="ga09a0d15514ca9a14eb40f12425a52797"></a>
+<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">ssize_t pn_transport_peek </td>
+          <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>
@@ -1107,14 +1256,8 @@ Functions</h2></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>
+          <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>
@@ -1124,26 +1267,26 @@ Functions</h2></td></tr>
       </table>
 </div><div class="memdoc">
 
-<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="Get the number of pending output bytes following the transport&#39;s head pointer. ">pn_transport_pending</a>.</p>
+<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>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>
+    <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>
-<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 class="anchor" id="ga81adf1fd6fa28054f2f80c424aa98122"></a>
+<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">ssize_t pn_transport_pending </td>
+          <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>
@@ -1152,24 +1295,26 @@ Functions</h2></td></tr>
       </table>
 </div><div class="memdoc">
 
-<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#gaede0bc2a0038ccdc7e1b193e322147fa">pn_transport_error</a>. Calls to <a class="el" href="group__transport.html#ga31470f0b0dbfd2c8c2929cc170858dc9" title="Removes size bytes of output from the pending output queue following the transport&#39;s head pointer...">pn_transport_pop</a> may alter the value of this pointer. See <a class="el" href="group__transport.html#ga31470f0b0dbfd2c8c2929cc170858dc9" title="Removes size bytes of output from the pending output queue following the transport&#39;s head pointer...">pn_transport_pop</a> for details.</p>
+<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>the transport </td></tr>
+    <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 pending output bytes, or an error code </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>the idle timeout for the transport's remote peer </dd></dl>
 
 </div>
 </div>
-<a class="anchor" id="ga31470f0b0dbfd2c8c2929cc170858dc9"></a>
+<a id="ga93f5efd9d63ebd1b1498fdace388ec3d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga93f5efd9d63ebd1b1498fdace388ec3d">&#9670;&nbsp;</a></span>pn_transport_input()</h2>
+
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">void pn_transport_pop </td>
+          <td class="memname">ssize_t pn_transport_input </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>
@@ -1177,44 +1322,14 @@ Functions</h2></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>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="Get the number of pending output bytes following the transport&#39;s head pointer. ">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 class="anchor" id="ga1f52a6f11322873e74b9daf004269a91"></a>
-<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>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>bytes</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
           <td class="paramtype">size_t&#160;</td>
-          <td class="paramname"><em>size</em>&#160;</td>
+          <td class="paramname"><em>available</em>&#160;</td>
         </tr>
         <tr>
           <td></td>
@@ -1223,26 +1338,18 @@ Functions</h2></td></tr>
         </tr>
       </table>
 </div><div class="memdoc">
-
-<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="Get the transport&#39;s tail pointer. ">pn_transport_tail</a>, as well as the amount of free space reported by <a class="el" href="group__transport.html#gaa079bb5f5b9ea10734c9d8af26fba333" title="Get the amount of free space for input following the transport&#39;s tail pointer. ">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>
+<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000016">Deprecated:</a></b></dt><dd></dd></dl>
 
 </div>
 </div>
-<a class="anchor" id="ga50c63f26b8b16f45e6e7912ca54de94b"></a>
+<a id="gae72fdee3b8aae3cb484b0ed98c2b802e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gae72fdee3b8aae3cb484b0ed98c2b802e">&#9670;&nbsp;</a></span>pn_transport_output()</h2>
+
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">ssize_t pn_transport_push </td>
+          <td class="memname">ssize_t pn_transport_output </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>
@@ -1250,8 +1357,8 @@ Functions</h2></td></tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">const char *&#160;</td>
-          <td class="paramname"><em>src</em>, </td>
+          <td class="paramtype">char *&#160;</td>
+          <td class="paramname"><em>bytes</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
@@ -1266,27 +1373,18 @@ Functions</h2></td></tr>
         </tr>
       </table>
 </div><div class="memdoc">
-
-<p>Pushes the supplied bytes into the tail of the transport. </p>
-<p>This is equivalent to copying <code>size</code> bytes afther the tail pointer and then calling <a class="el" href="group__transport.html#ga1f52a6f11322873e74b9daf004269a91" title="Process input data following the tail pointer. ">pn_transport_process</a> with an argument of <code>size</code>. Only some of the bytes will be copied if there is insufficienty capacity available. Use <a class="el" href="group__transport.html#gaa079bb5f5b9ea10734c9d8af26fba333" title="Get the amount of free space for input following the transport&#39;s tail pointer. ">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>
+<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000017">Deprecated:</a></b></dt><dd></dd></dl>
 
 </div>
 </div>
-<a class="anchor" id="gab8d9e4729b8835d3740de8d2c78831ef"></a>
+<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">bool pn_transport_quiesced </td>
+          <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>
@@ -1295,23 +1393,26 @@ Functions</h2></td></tr>
       </table>
 </div><div class="memdoc">
 
-<p>Check if a transport has buffered data. </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, futher details can be obtained from <a class="el" href="group__transport.html#gaede0bc2a0038ccdc7e1b193e322147fa">pn_transport_error</a>. Calls to <a class="el" href="group__transport.html#ga1f52a6f11322873e74b9daf004269a91" title="Process input data following the tail pointer. ">pn_transport_process</a> may alter the value of this pointer. See <a class="el" href="group__transport.html#ga1f52a6f11322873e74b9daf004269a91" title="Process input data following the tail pointer. ">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>a transport object </td></tr>
+    <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>true if the transport has buffered data, false otherwise </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 class="anchor" id="gaff7c08aeb92596ad9d269468d1557647"></a>
+<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">uint16_t pn_transport_remote_channel_max </td>
+          <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>
@@ -1320,23 +1421,26 @@ Functions</h2></td></tr>
       </table>
 </div><div class="memdoc">
 
-<p>Get the maximum allowed channel of a transport's remote peer. </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="Get the amount of free space for input following the transport&#39;s tail pointer. ">pn_transport_capacity</a>. Calls to <a class="el" href="group__transport.html#ga1f52a6f11322873e74b9daf004269a91" title="Process input data following the tail pointer. ">pn_transport_process</a> may alther the value of this pointer. See <a class="el" href="group__transport.html#ga1f52a6f11322873e74b9daf004269a91" title="Process input data following the tail pointer. ">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>a transport object </td></tr>
+    <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 maximum allowed channel of the transport's remote peer </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 class="anchor" id="ga285b4cced59c665ae178adf26128d3fc"></a>
+<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">void pn_transport_require_auth </td>
+          <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>
@@ -1344,8 +1448,14 @@ Functions</h2></td></tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">bool&#160;</td>
-          <td class="paramname"><em>required</em>&#160;</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>
@@ -1355,30 +1465,28 @@ Functions</h2></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>
+<p>Pushes the supplied bytes into the tail of the transport. </p>
+<p>This is equivalent to copying <code>size</code> bytes afther the tail pointer and then calling <a class="el" href="group__transport.html#ga1f52a6f11322873e74b9daf004269a91" title="Process input data following the tail pointer. ">pn_transport_process</a> with an argument of <code>size</code>. Only some of the bytes will be copied if there is insufficienty capacity available. Use <a class="el" href="group__transport.html#gaa079bb5f5b9ea10734c9d8af26fba333" title="Get the amount of free space for input following the transport&#39;s tail pointer. ">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">required</td><td>boolean is true when authenticated connections are required </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><dt><b>Examples: </b></dt><dd><a class="el" href="broker_8c-example.html#a36">broker.c</a>.</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 class="anchor" id="gaeb7e30ead4a6ab080d0005379be20e34"></a>
+<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">void pn_transport_require_encryption </td>
+          <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>
@@ -1386,8 +1494,8 @@ Functions</h2></td></tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">bool&#160;</td>
-          <td class="paramname"><em>required</em>&#160;</td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>size</em>&#160;</td>
         </tr>
         <tr>
           <td></td>
@@ -1397,138 +1505,111 @@ Functions</h2></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 saecurity layers</li>
-</ul>
-<p>The default if this option is not set is to allow unencrypted connections.</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="Get the transport&#39;s tail pointer. ">pn_transport_tail</a>, as well as the amount of free space reported by <a class="el" href="group__transport.html#gaa079bb5f5b9ea10734c9d8af26fba333" title="Get the amount of free space for input following the transport&#39;s tail pointer.

<TRUNCATED>

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org