You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ro...@apache.org on 2016/12/13 17:52:10 UTC

[15/51] [partial] qpid-site git commit: PROTON-1374: update the website for Proton 0.16.0

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/7833dc2a/content/releases/qpid-proton-0.16.0/proton/c/api/group__messenger.js
----------------------------------------------------------------------
diff --git a/content/releases/qpid-proton-0.16.0/proton/c/api/group__messenger.js b/content/releases/qpid-proton-0.16.0/proton/c/api/group__messenger.js
new file mode 100755
index 0000000..caef443
--- /dev/null
+++ b/content/releases/qpid-proton-0.16.0/proton/c/api/group__messenger.js
@@ -0,0 +1,81 @@
+var group__messenger =
+[
+    [ "PN_CUMULATIVE", "group__messenger.html#ga6c2e8d006ec05b913fa1e6dc510d23b9", null ],
+    [ "PN_FLAGS_ALLOW_INSECURE_MECHS", "group__messenger.html#ga118fb0c2384257dff5d72eea787e4a0c", null ],
+    [ "PN_FLAGS_CHECK_ROUTES", "group__messenger.html#gad5ad0b67fef0e761dc0138b9621ffa14", null ],
+    [ "pn_messenger_t", "group__messenger.html#ga0d342bb795d48591ad6b3f867766b8b1", null ],
+    [ "pn_subscription_t", "group__messenger.html#gabd73703511b9dae193765e9e57864291", null ],
+    [ "pn_tracker_t", "group__messenger.html#gab1173cfe4bcaa0a530c8035dc75f42c7", null ],
+    [ "pn_status_t", "group__messenger.html#ga242e4ee54b9c0a416443c7da5f6e045b", [
+      [ "PN_STATUS_UNKNOWN", "group__messenger.html#gga242e4ee54b9c0a416443c7da5f6e045ba0b46b1041679460baaba2ddcdb2173f2", null ],
+      [ "PN_STATUS_PENDING", "group__messenger.html#gga242e4ee54b9c0a416443c7da5f6e045ba4b0354a77173cd75c69159e15c23f611", null ],
+      [ "PN_STATUS_ACCEPTED", "group__messenger.html#gga242e4ee54b9c0a416443c7da5f6e045ba693fd9044a50a4f02e842d04a4bf1467", null ],
+      [ "PN_STATUS_REJECTED", "group__messenger.html#gga242e4ee54b9c0a416443c7da5f6e045baf109df703952744009b3547f3b8f32bf", null ],
+      [ "PN_STATUS_RELEASED", "group__messenger.html#gga242e4ee54b9c0a416443c7da5f6e045ba67079750477effb7935df83381c47852", null ],
+      [ "PN_STATUS_MODIFIED", "group__messenger.html#gga242e4ee54b9c0a416443c7da5f6e045ba77d94a6b6b745eef9307f144b57e81e8", null ],
+      [ "PN_STATUS_ABORTED", "group__messenger.html#gga242e4ee54b9c0a416443c7da5f6e045ba1239e8ada7eabe2aeab98f2c881cd2ee", null ],
+      [ "PN_STATUS_SETTLED", "group__messenger.html#gga242e4ee54b9c0a416443c7da5f6e045ba1181bc7f51502ae11ed240866cd64583", null ]
+    ] ],
+    [ "pn_messenger", "group__messenger.html#gabe045d16ca8eb1e3cc87387e2ae82433", null ],
+    [ "pn_messenger_accept", "group__messenger.html#ga11cd0d3423482e1ddda7a8b0cbb581c7", null ],
+    [ "pn_messenger_buffered", "group__messenger.html#ga15adeb707f15b86df1e5486c34a060e6", null ],
+    [ "pn_messenger_deadline", "group__messenger.html#ga223e7c16f3e84f4e573864c3881b3b4b", null ],
+    [ "pn_messenger_delivery", "group__messenger.html#ga65f22122f08bc93de2bfe155aa12d0b0", null ],
+    [ "pn_messenger_errno", "group__messenger.html#gacfd10311abca28521fe7aa9cabfff61c", null ],
+    [ "pn_messenger_error", "group__messenger.html#ga0301664be9c54b3a573578776ad2a5d2", null ],
+    [ "pn_messenger_free", "group__messenger.html#ga530295575eda95e3c19316d41bd1baa7", null ],
+    [ "pn_messenger_get", "group__messenger.html#gaa6d85929e4b4b574690927ddde00c540", null ],
+    [ "pn_messenger_get_certificate", "group__messenger.html#ga1d0c003a1fb5e20b894e2deb8b43118b", null ],
+    [ "pn_messenger_get_flags", "group__messenger.html#ga9f4e2fbfb7eb7bfd9acd7ad758d24085", null ],
+    [ "pn_messenger_get_incoming_window", "group__messenger.html#ga45d578f39673ad59ca65d2042054abee", null ],
+    [ "pn_messenger_get_link", "group__messenger.html#ga757aeef23d47ecc2a9a461b882686417", null ],
+    [ "pn_messenger_get_outgoing_window", "group__messenger.html#gac191bdb410b7839d6306a0d8e5ac19e1", null ],
+    [ "pn_messenger_get_password", "group__messenger.html#ga3f02ad7340a59c5982e6223aaeea803a", null ],
+    [ "pn_messenger_get_private_key", "group__messenger.html#gab692f989aed2aa83bd71b7fa7196aeb1", null ],
+    [ "pn_messenger_get_remote_idle_timeout", "group__messenger.html#ga9be25d57cda5a6e1c5658b0f362c41c7", null ],
+    [ "pn_messenger_get_timeout", "group__messenger.html#ga083ba6296a1ae1dfe45c0fb82da823eb", null ],
+    [ "pn_messenger_get_trusted_certificates", "group__messenger.html#ga955b218a8f58560e9e228ca14fba21f2", null ],
+    [ "pn_messenger_incoming", "group__messenger.html#ga43cf91b5528c2729b3ff9ae1d2a7d257", null ],
+    [ "pn_messenger_incoming_subscription", "group__messenger.html#gae351d031d2ef29bdb137a59d461c4253", null ],
+    [ "pn_messenger_incoming_tracker", "group__messenger.html#gafe31e771826f8107d93fc276c9715aab", null ],
+    [ "pn_messenger_interrupt", "group__messenger.html#ga9da14c67acc17bc5fec6f34e2749534f", null ],
+    [ "pn_messenger_is_blocking", "group__messenger.html#gaf572cbf224105d08898d2906336712f7", null ],
+    [ "pn_messenger_is_passive", "group__messenger.html#ga63805c35f18ef041c69a14564dc1bce4", null ],
+    [ "pn_messenger_name", "group__messenger.html#ga71197163a69770575df74e3cee617429", null ],
+    [ "pn_messenger_outgoing", "group__messenger.html#ga06c3a066422f8a966523b43a61f62eb9", null ],
+    [ "pn_messenger_outgoing_tracker", "group__messenger.html#ga0212b5cfe07a7f758ec472d67d0f56e1", null ],
+    [ "pn_messenger_put", "group__messenger.html#gafede68af29484d50d531cc48ab0d3d4a", null ],
+    [ "pn_messenger_receiving", "group__messenger.html#gaf4e22c8cb1436891d42ca0a658fca9c5", null ],
+    [ "pn_messenger_recv", "group__messenger.html#ga16c945185e4eb5dcb9aac2be2fcab0d6", null ],
+    [ "pn_messenger_reject", "group__messenger.html#ga22d6de108fa967a43ab2473d6a915e9c", null ],
+    [ "pn_messenger_rewrite", "group__messenger.html#gac7dc5d9b82f9e015fd2c7d9743099eff", null ],
+    [ "pn_messenger_route", "group__messenger.html#ga6c85a08d72ae73a18f9fb64ccf0c470e", null ],
+    [ "pn_messenger_selectable", "group__messenger.html#ga8521b0999200c076bf12568ac10fe925", null ],
+    [ "pn_messenger_send", "group__messenger.html#gae31f9a99dcbedffe83588cf25b805325", null ],
+    [ "pn_messenger_set_blocking", "group__messenger.html#gae9d7f1aec6e2cf3ef1ee326a4ae15981", null ],
+    [ "pn_messenger_set_certificate", "group__messenger.html#gad61fff52c28501171ecbb0b21bbde954", null ],
+    [ "pn_messenger_set_flags", "group__messenger.html#gacf39b77df62750343e2f4e90dbcacc75", null ],
+    [ "pn_messenger_set_incoming_window", "group__messenger.html#gadf8a9cf14bf8d519026ea8c4eeb275c3", null ],
+    [ "pn_messenger_set_outgoing_window", "group__messenger.html#ga96487581bd8348f8bc9bacef25042cfc", null ],
+    [ "pn_messenger_set_passive", "group__messenger.html#gac7df7c92396f10f105ec74d35310a7c0", null ],
+    [ "pn_messenger_set_password", "group__messenger.html#ga6b04f7dea2ed8752b8672b4cfe0330f2", null ],
+    [ "pn_messenger_set_private_key", "group__messenger.html#ga05f059a2fe93e0acbcf76e494e6bf958", null ],
+    [ "pn_messenger_set_rcv_settle_mode", "group__messenger.html#gae9f2d3ab15602b27f1b87a4f6349a9f1", null ],
+    [ "pn_messenger_set_snd_settle_mode", "group__messenger.html#ga7b0872d6712c53e307bf2babfd91bf6e", null ],
+    [ "pn_messenger_set_ssl_peer_authentication_mode", "group__messenger.html#ga59ebaf21eaafaa4b1c359e4284564ff6", null ],
+    [ "pn_messenger_set_timeout", "group__messenger.html#ga04119bb2b16bb0f657f1dbcf73827d74", null ],
+    [ "pn_messenger_set_tracer", "group__messenger.html#ga6c2cfb88f59980bb13821a6f25cf30f6", null ],
+    [ "pn_messenger_set_trusted_certificates", "group__messenger.html#gad901e92e2bee6d5371dcd3b1c8fe2c3b", null ],
+    [ "pn_messenger_settle", "group__messenger.html#ga475ce593f6b0c6025516ae48360dee4d", null ],
+    [ "pn_messenger_start", "group__messenger.html#ga6fa594235e316cd2a04b44b283194a43", null ],
+    [ "pn_messenger_status", "group__messenger.html#gad398544ad1374f67c922115ae1cceacc", null ],
+    [ "pn_messenger_stop", "group__messenger.html#gad95ab6daf6b2a61b79d5128a7d1d9f5c", null ],
+    [ "pn_messenger_stopped", "group__messenger.html#gae2c4765839c8fd09c0e01d05a118b6d4", null ],
+    [ "pn_messenger_subscribe", "group__messenger.html#gac36589fe5dc0378cf62558e40060a26f", null ],
+    [ "pn_messenger_subscribe_ttl", "group__messenger.html#ga480a8623fab904690218c0c67493232f", null ],
+    [ "pn_messenger_tracker_link", "group__messenger.html#gae4e5e89c6ea2a820a221af61cc741c7d", null ],
+    [ "pn_messenger_work", "group__messenger.html#ga47d60cec6a55e0675b8f073067eff9c4", null ],
+    [ "pn_subscription_address", "group__messenger.html#ga8e87c040776f1941f21d2c15f24b835e", null ],
+    [ "pn_subscription_get_context", "group__messenger.html#ga8ad0f0db6d7cfe0e95d44d433843d787", null ],
+    [ "pn_subscription_set_context", "group__messenger.html#ga3a7f95a2a86f64babe692d21ffe9cd10", null ]
+];
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/7833dc2a/content/releases/qpid-proton-0.16.0/proton/c/api/group__proactor.html
----------------------------------------------------------------------
diff --git a/content/releases/qpid-proton-0.16.0/proton/c/api/group__proactor.html b/content/releases/qpid-proton-0.16.0/proton/c/api/group__proactor.html
new file mode 100755
index 0000000..175ead0
--- /dev/null
+++ b/content/releases/qpid-proton-0.16.0/proton/c/api/group__proactor.html
@@ -0,0 +1,523 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://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.3.1"/>
+<title>Qpid Proton C API: Proactor</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="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/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</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 style="padding-left: 0.5em;">
+   <div id="projectname">Qpid Proton C API
+   &#160;<span id="projectnumber">0.16.0</span>
+   </div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               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.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</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">
+$(document).ready(function(){initNavTree('group__proactor.html','');});
+</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)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:vo
 id(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#typedef-members">Typedefs</a> &#124;
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">Proactor<div class="ingroups"><a class="el" href="group__io.html">IO</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><b>Experimental</b> - Multithreaded IO  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:ga68ac7072ae60612d0bca5470014bf216"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga68ac7072ae60612d0bca5470014bf216"></a>
+typedef struct <a class="el" href="group__proactor.html#ga68ac7072ae60612d0bca5470014bf216">pn_listener_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__proactor.html#ga68ac7072ae60612d0bca5470014bf216">pn_listener_t</a></td></tr>
+<tr class="memdesc:ga68ac7072ae60612d0bca5470014bf216"><td class="mdescLeft">&#160;</td><td class="mdescRight">A listener accepts connections. <br/></td></tr>
+<tr class="separator:ga68ac7072ae60612d0bca5470014bf216"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabba42c7929dfceb9d296535bad0c93dc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gabba42c7929dfceb9d296535bad0c93dc"></a>
+typedef struct <a class="el" href="group__proactor.html#gabba42c7929dfceb9d296535bad0c93dc">pn_proactor_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__proactor.html#gabba42c7929dfceb9d296535bad0c93dc">pn_proactor_t</a></td></tr>
+<tr class="memdesc:gabba42c7929dfceb9d296535bad0c93dc"><td class="mdescLeft">&#160;</td><td class="mdescRight">The proactor, see <a class="el" href="group__proactor.html#ga9d77772be7805709c87eeb01b06d67e2" title="Create a proactor.">pn_proactor()</a> <br/></td></tr>
+<tr class="separator:gabba42c7929dfceb9d296535bad0c93dc"><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:gaaaf34821f3d29274ec41e7ce71022540"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__proactor.html#ga68ac7072ae60612d0bca5470014bf216">pn_listener_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__proactor.html#gaaaf34821f3d29274ec41e7ce71022540">pn_listener</a> (void)</td></tr>
+<tr class="memdesc:gaaaf34821f3d29274ec41e7ce71022540"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a listener.  <a href="#gaaaf34821f3d29274ec41e7ce71022540">More...</a><br/></td></tr>
+<tr class="separator:gaaaf34821f3d29274ec41e7ce71022540"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga76bcf4efdfa82fff28318e1afad083dc"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__proactor.html#ga76bcf4efdfa82fff28318e1afad083dc">pn_listener_accept</a> (<a class="el" href="group__proactor.html#ga68ac7072ae60612d0bca5470014bf216">pn_listener_t</a> *, <a class="el" href="group__connection.html#ga886351d81ff3a977a284a206526c5aff">pn_connection_t</a> *connection)</td></tr>
+<tr class="memdesc:ga76bcf4efdfa82fff28318e1afad083dc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Asynchronously accept a connection using the listener.  <a href="#ga76bcf4efdfa82fff28318e1afad083dc">More...</a><br/></td></tr>
+<tr class="separator:ga76bcf4efdfa82fff28318e1afad083dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6dba0fded7ca1718397151c62e65535b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6dba0fded7ca1718397151c62e65535b"></a>
+<a class="el" href="group__condition.html#ga11eb7db7d2c205169fe3d47c996a95a5">pn_condition_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__proactor.html#ga6dba0fded7ca1718397151c62e65535b">pn_listener_condition</a> (<a class="el" href="group__proactor.html#ga68ac7072ae60612d0bca5470014bf216">pn_listener_t</a> *l)</td></tr>
+<tr class="memdesc:ga6dba0fded7ca1718397151c62e65535b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the error condition for a listener. <br/></td></tr>
+<tr class="separator:ga6dba0fded7ca1718397151c62e65535b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga471e37ae503bf6b2635b7f5f5c2d88bf"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga471e37ae503bf6b2635b7f5f5c2d88bf"></a>
+pn_record_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__proactor.html#ga471e37ae503bf6b2635b7f5f5c2d88bf">pn_listener_attachments</a> (<a class="el" href="group__proactor.html#ga68ac7072ae60612d0bca5470014bf216">pn_listener_t</a> *listener)</td></tr>
+<tr class="memdesc:ga471e37ae503bf6b2635b7f5f5c2d88bf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the attachments that are associated with a listener object. <br/></td></tr>
+<tr class="separator:ga471e37ae503bf6b2635b7f5f5c2d88bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5690239e2a4f97e3ebbccb25fde75d81"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5690239e2a4f97e3ebbccb25fde75d81"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__proactor.html#ga5690239e2a4f97e3ebbccb25fde75d81">pn_listener_close</a> (<a class="el" href="group__proactor.html#ga68ac7072ae60612d0bca5470014bf216">pn_listener_t</a> *l)</td></tr>
+<tr class="memdesc:ga5690239e2a4f97e3ebbccb25fde75d81"><td class="mdescLeft">&#160;</td><td class="mdescRight">Close the listener (thread safe). <br/></td></tr>
+<tr class="separator:ga5690239e2a4f97e3ebbccb25fde75d81"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga491561209bfe8934141015c1dd922a4f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga491561209bfe8934141015c1dd922a4f"></a>
+<a class="el" href="group__proactor.html#gabba42c7929dfceb9d296535bad0c93dc">pn_proactor_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__proactor.html#ga491561209bfe8934141015c1dd922a4f">pn_listener_proactor</a> (<a class="el" href="group__proactor.html#ga68ac7072ae60612d0bca5470014bf216">pn_listener_t</a> *c)</td></tr>
+<tr class="memdesc:ga491561209bfe8934141015c1dd922a4f"><td class="mdescLeft">&#160;</td><td class="mdescRight">The proactor associated with a listener. <br/></td></tr>
+<tr class="separator:ga491561209bfe8934141015c1dd922a4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9d77772be7805709c87eeb01b06d67e2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__proactor.html#gabba42c7929dfceb9d296535bad0c93dc">pn_proactor_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__proactor.html#ga9d77772be7805709c87eeb01b06d67e2">pn_proactor</a> (void)</td></tr>
+<tr class="memdesc:ga9d77772be7805709c87eeb01b06d67e2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a proactor.  <a href="#ga9d77772be7805709c87eeb01b06d67e2">More...</a><br/></td></tr>
+<tr class="separator:ga9d77772be7805709c87eeb01b06d67e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga10fa443c109cee057a3c30e69f93fcef"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__proactor.html#ga10fa443c109cee057a3c30e69f93fcef">pn_proactor_free</a> (<a class="el" href="group__proactor.html#gabba42c7929dfceb9d296535bad0c93dc">pn_proactor_t</a> *proactor)</td></tr>
+<tr class="memdesc:ga10fa443c109cee057a3c30e69f93fcef"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free the proactor.  <a href="#ga10fa443c109cee057a3c30e69f93fcef">More...</a><br/></td></tr>
+<tr class="separator:ga10fa443c109cee057a3c30e69f93fcef"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga523ea983380a1566b3b1a7606d66422c"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__proactor.html#ga523ea983380a1566b3b1a7606d66422c">pn_proactor_connect</a> (<a class="el" href="group__proactor.html#gabba42c7929dfceb9d296535bad0c93dc">pn_proactor_t</a> *proactor, <a class="el" href="group__connection.html#ga886351d81ff3a977a284a206526c5aff">pn_connection_t</a> *connection, const char *host, const char *port)</td></tr>
+<tr class="memdesc:ga523ea983380a1566b3b1a7606d66422c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Connect connection to host/port.  <a href="#ga523ea983380a1566b3b1a7606d66422c">More...</a><br/></td></tr>
+<tr class="separator:ga523ea983380a1566b3b1a7606d66422c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga68300a70c58a825564d5b4ee5d147696"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__proactor.html#ga68300a70c58a825564d5b4ee5d147696">pn_proactor_listen</a> (<a class="el" href="group__proactor.html#gabba42c7929dfceb9d296535bad0c93dc">pn_proactor_t</a> *proactor, <a class="el" href="group__proactor.html#ga68ac7072ae60612d0bca5470014bf216">pn_listener_t</a> *listener, const char *host, const char *port, int backlog)</td></tr>
+<tr class="memdesc:ga68300a70c58a825564d5b4ee5d147696"><td class="mdescLeft">&#160;</td><td class="mdescRight">Start listening with listener.  <a href="#ga68300a70c58a825564d5b4ee5d147696">More...</a><br/></td></tr>
+<tr class="separator:ga68300a70c58a825564d5b4ee5d147696"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga56f5830965c20d3dbfc63e795eb243c4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__event.html#ga6bc581dfeaa8e8d46d07d37229d565c9">pn_event_batch_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__proactor.html#ga56f5830965c20d3dbfc63e795eb243c4">pn_proactor_wait</a> (<a class="el" href="group__proactor.html#gabba42c7929dfceb9d296535bad0c93dc">pn_proactor_t</a> *proactor)</td></tr>
+<tr class="memdesc:ga56f5830965c20d3dbfc63e795eb243c4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wait for events to handle.  <a href="#ga56f5830965c20d3dbfc63e795eb243c4">More...</a><br/></td></tr>
+<tr class="separator:ga56f5830965c20d3dbfc63e795eb243c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab45680de5c02690a1f1ad1a3c70e9d65"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__proactor.html#gab45680de5c02690a1f1ad1a3c70e9d65">pn_proactor_done</a> (<a class="el" href="group__proactor.html#gabba42c7929dfceb9d296535bad0c93dc">pn_proactor_t</a> *proactor, <a class="el" href="group__event.html#ga6bc581dfeaa8e8d46d07d37229d565c9">pn_event_batch_t</a> *events)</td></tr>
+<tr class="memdesc:gab45680de5c02690a1f1ad1a3c70e9d65"><td class="mdescLeft">&#160;</td><td class="mdescRight">Call when done handling a batch of events.  <a href="#gab45680de5c02690a1f1ad1a3c70e9d65">More...</a><br/></td></tr>
+<tr class="separator:gab45680de5c02690a1f1ad1a3c70e9d65"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaff37a5b9d3d822ad9a961dae5155ebdb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__proactor.html#gaff37a5b9d3d822ad9a961dae5155ebdb">pn_proactor_interrupt</a> (<a class="el" href="group__proactor.html#gabba42c7929dfceb9d296535bad0c93dc">pn_proactor_t</a> *proactor)</td></tr>
+<tr class="memdesc:gaff37a5b9d3d822ad9a961dae5155ebdb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Cause PN_PROACTOR_INTERRUPT to be returned to exactly one call of <a class="el" href="group__proactor.html#ga56f5830965c20d3dbfc63e795eb243c4" title="Wait for events to handle.">pn_proactor_wait()</a>.  <a href="#gaff37a5b9d3d822ad9a961dae5155ebdb">More...</a><br/></td></tr>
+<tr class="separator:gaff37a5b9d3d822ad9a961dae5155ebdb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8428d00193008841e529aae6a922fa5f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__proactor.html#ga8428d00193008841e529aae6a922fa5f">pn_proactor_set_timeout</a> (<a class="el" href="group__proactor.html#gabba42c7929dfceb9d296535bad0c93dc">pn_proactor_t</a> *proactor, <a class="el" href="group__api__types.html#ga9a701bc6dc9af9f42c3f4679172a723c">pn_millis_t</a> timeout)</td></tr>
+<tr class="memdesc:ga8428d00193008841e529aae6a922fa5f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Cause PN_PROACTOR_TIMEOUT to be returned to a thread calling wait() after timeout milliseconds.  <a href="#ga8428d00193008841e529aae6a922fa5f">More...</a><br/></td></tr>
+<tr class="separator:ga8428d00193008841e529aae6a922fa5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2e5c9fddae8d7aa07fc93438c5ae2d86"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__proactor.html#ga2e5c9fddae8d7aa07fc93438c5ae2d86">pn_connection_wake</a> (<a class="el" href="group__connection.html#ga886351d81ff3a977a284a206526c5aff">pn_connection_t</a> *connection)</td></tr>
+<tr class="memdesc:ga2e5c9fddae8d7aa07fc93438c5ae2d86"><td class="mdescLeft">&#160;</td><td class="mdescRight">Cause a PN_CONNECTION_WAKE event to be returned by the proactor, even if there are no IO events pending for the connection.  <a href="#ga2e5c9fddae8d7aa07fc93438c5ae2d86">More...</a><br/></td></tr>
+<tr class="separator:ga2e5c9fddae8d7aa07fc93438c5ae2d86"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0daf3895a13049783ab1dc40f3ac46b8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0daf3895a13049783ab1dc40f3ac46b8"></a>
+<a class="el" href="group__proactor.html#gabba42c7929dfceb9d296535bad0c93dc">pn_proactor_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__proactor.html#ga0daf3895a13049783ab1dc40f3ac46b8">pn_connection_proactor</a> (<a class="el" href="group__connection.html#ga886351d81ff3a977a284a206526c5aff">pn_connection_t</a> *connection)</td></tr>
+<tr class="memdesc:ga0daf3895a13049783ab1dc40f3ac46b8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the proactor associated with a connection or NULL. <br/></td></tr>
+<tr class="separator:ga0daf3895a13049783ab1dc40f3ac46b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga01e9b1cf8e0ff18cd4a2d6ed0e73a25a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga01e9b1cf8e0ff18cd4a2d6ed0e73a25a"></a>
+<a class="el" href="group__proactor.html#gabba42c7929dfceb9d296535bad0c93dc">pn_proactor_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__proactor.html#ga01e9b1cf8e0ff18cd4a2d6ed0e73a25a">pn_event_proactor</a> (<a class="el" href="group__event.html#ga87f3028b4888632bbd56fb71ac737ae8">pn_event_t</a> *event)</td></tr>
+<tr class="memdesc:ga01e9b1cf8e0ff18cd4a2d6ed0e73a25a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the proactor associated with an event or NULL. <br/></td></tr>
+<tr class="separator:ga01e9b1cf8e0ff18cd4a2d6ed0e73a25a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad9ea34f659b8bd2d0089fb43fa468300"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad9ea34f659b8bd2d0089fb43fa468300"></a>
+<a class="el" href="group__proactor.html#ga68ac7072ae60612d0bca5470014bf216">pn_listener_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__proactor.html#gad9ea34f659b8bd2d0089fb43fa468300">pn_event_listener</a> (<a class="el" href="group__event.html#ga87f3028b4888632bbd56fb71ac737ae8">pn_event_t</a> *event)</td></tr>
+<tr class="memdesc:gad9ea34f659b8bd2d0089fb43fa468300"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the listener associated with an event or NULL. <br/></td></tr>
+<tr class="separator:gad9ea34f659b8bd2d0089fb43fa468300"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p><b>Experimental</b> - Multithreaded IO </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ga2e5c9fddae8d7aa07fc93438c5ae2d86"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void pn_connection_wake </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group__connection.html#ga886351d81ff3a977a284a206526c5aff">pn_connection_t</a> *&#160;</td>
+          <td class="paramname"><em>connection</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Cause a PN_CONNECTION_WAKE event to be returned by the proactor, even if there are no IO events pending for the connection. </p>
+<dl class="section note"><dt>Note</dt><dd>Thread-safe: this is the only pn_connection_ function that can be called concurrently.</dd></dl>
+<p>Wakes can be "coalesced" - if several <a class="el" href="group__proactor.html#ga2e5c9fddae8d7aa07fc93438c5ae2d86" title="Cause a PN_CONNECTION_WAKE event to be returned by the proactor, even if there are no IO events pendi...">pn_connection_wake()</a> calls happen concurrently, there may be only one PN_CONNECTION_WAKE event. </p>
+<dl><dt><b>Examples: </b></dt><dd><a class="el" href="broker_8c-example.html#a13">broker.c</a>, and <a class="el" href="send_8c-example.html#a45">send.c</a>.</dd>
+</dl>
+</div>
+</div>
+<a class="anchor" id="gaaaf34821f3d29274ec41e7ce71022540"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="group__proactor.html#ga68ac7072ae60612d0bca5470014bf216">pn_listener_t</a>* pn_listener </td>
+          <td>(</td>
+          <td class="paramtype">void&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Create a listener. </p>
+<p>You can use pn_listener_set_context() or <a class="el" href="group__proactor.html#ga471e37ae503bf6b2635b7f5f5c2d88bf" title="Get the attachments that are associated with a listener object.">pn_listener_attachments()</a> to set application data that can be accessed when accepting connections.</p>
+<p>You must pass the returned listener to <a class="el" href="group__proactor.html#ga68300a70c58a825564d5b4ee5d147696" title="Start listening with listener.">pn_proactor_listen()</a>, the proactor will free the listener when it is no longer active. </p>
+<dl><dt><b>Examples: </b></dt><dd><a class="el" href="broker_8c-example.html#a90">broker.c</a>.</dd>
+</dl>
+</div>
+</div>
+<a class="anchor" id="ga76bcf4efdfa82fff28318e1afad083dc"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int pn_listener_accept </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group__proactor.html#ga68ac7072ae60612d0bca5470014bf216">pn_listener_t</a> *&#160;</td>
+          <td class="paramname">, </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>Asynchronously accept a connection using the listener. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramdir">[in]</td><td class="paramname">connection</td><td>the listener takes ownership, do not free. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl><dt><b>Examples: </b></dt><dd><a class="el" href="broker_8c-example.html#a29">broker.c</a>.</dd>
+</dl>
+</div>
+</div>
+<a class="anchor" id="ga9d77772be7805709c87eeb01b06d67e2"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="group__proactor.html#gabba42c7929dfceb9d296535bad0c93dc">pn_proactor_t</a>* pn_proactor </td>
+          <td>(</td>
+          <td class="paramtype">void&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Create a proactor. </p>
+<p>Must be freed with <a class="el" href="group__proactor.html#ga10fa443c109cee057a3c30e69f93fcef" title="Free the proactor.">pn_proactor_free()</a> </p>
+<dl><dt><b>Examples: </b></dt><dd><a class="el" href="broker_8c-example.html#a14">broker.c</a>, <a class="el" href="receive_8c-example.html#a53">receive.c</a>, and <a class="el" href="send_8c-example.html#a67">send.c</a>.</dd>
+</dl>
+</div>
+</div>
+<a class="anchor" id="ga523ea983380a1566b3b1a7606d66422c"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int pn_proactor_connect </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group__proactor.html#gabba42c7929dfceb9d296535bad0c93dc">pn_proactor_t</a> *&#160;</td>
+          <td class="paramname"><em>proactor</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>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>host</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>port</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Connect connection to host/port. </p>
+<p>Connection and transport events will be returned by <a class="el" href="group__proactor.html#ga56f5830965c20d3dbfc63e795eb243c4" title="Wait for events to handle.">pn_proactor_wait()</a></p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramdir">[in]</td><td class="paramname">proactor</td><td>the proactor object </td></tr>
+    <tr><td class="paramdir">[in]</td><td class="paramname">connection</td><td>the proactor takes ownership, do not free </td></tr>
+    <tr><td class="paramdir">[in]</td><td class="paramname">host</td><td>address to connect on </td></tr>
+    <tr><td class="paramdir">[in]</td><td class="paramname">port</td><td>port to connect to</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>error on immediate error, e.g. an allocation failure. Other errors are indicated by connection or transport events via <a class="el" href="group__proactor.html#ga56f5830965c20d3dbfc63e795eb243c4" title="Wait for events to handle.">pn_proactor_wait()</a> </dd></dl>
+<dl><dt><b>Examples: </b></dt><dd><a class="el" href="receive_8c-example.html#a54">receive.c</a>, and <a class="el" href="send_8c-example.html#a68">send.c</a>.</dd>
+</dl>
+</div>
+</div>
+<a class="anchor" id="gab45680de5c02690a1f1ad1a3c70e9d65"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void pn_proactor_done </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group__proactor.html#gabba42c7929dfceb9d296535bad0c93dc">pn_proactor_t</a> *&#160;</td>
+          <td class="paramname"><em>proactor</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="group__event.html#ga6bc581dfeaa8e8d46d07d37229d565c9">pn_event_batch_t</a> *&#160;</td>
+          <td class="paramname"><em>events</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Call when done handling a batch of events. </p>
+<p>Must be called exactly once to match each call to <a class="el" href="group__proactor.html#ga56f5830965c20d3dbfc63e795eb243c4" title="Wait for events to handle.">pn_proactor_wait()</a>.</p>
+<dl class="section note"><dt>Note</dt><dd>Thread-safe: may be called from any thread provided the exactly once rule is respected. </dd></dl>
+<dl><dt><b>Examples: </b></dt><dd><a class="el" href="broker_8c-example.html#a87">broker.c</a>, <a class="el" href="receive_8c-example.html#a59">receive.c</a>, and <a class="el" href="send_8c-example.html#a73">send.c</a>.</dd>
+</dl>
+</div>
+</div>
+<a class="anchor" id="ga10fa443c109cee057a3c30e69f93fcef"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void pn_proactor_free </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group__proactor.html#gabba42c7929dfceb9d296535bad0c93dc">pn_proactor_t</a> *&#160;</td>
+          <td class="paramname"><em>proactor</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free the proactor. </p>
+<p>Abort any open network connections and clean up all associated resources. </p>
+<dl><dt><b>Examples: </b></dt><dd><a class="el" href="broker_8c-example.html#a92">broker.c</a>, <a class="el" href="receive_8c-example.html#a60">receive.c</a>, and <a class="el" href="send_8c-example.html#a74">send.c</a>.</dd>
+</dl>
+</div>
+</div>
+<a class="anchor" id="gaff37a5b9d3d822ad9a961dae5155ebdb"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void pn_proactor_interrupt </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group__proactor.html#gabba42c7929dfceb9d296535bad0c93dc">pn_proactor_t</a> *&#160;</td>
+          <td class="paramname"><em>proactor</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Cause PN_PROACTOR_INTERRUPT to be returned to exactly one call of <a class="el" href="group__proactor.html#ga56f5830965c20d3dbfc63e795eb243c4" title="Wait for events to handle.">pn_proactor_wait()</a>. </p>
+<p>If threads are blocked in <a class="el" href="group__proactor.html#ga56f5830965c20d3dbfc63e795eb243c4" title="Wait for events to handle.">pn_proactor_wait()</a>, one of them will be interrupted, otherwise the interrupt will be returned by a future call to <a class="el" href="group__proactor.html#ga56f5830965c20d3dbfc63e795eb243c4" title="Wait for events to handle.">pn_proactor_wait()</a>. Calling <a class="el" href="group__proactor.html#gaff37a5b9d3d822ad9a961dae5155ebdb" title="Cause PN_PROACTOR_INTERRUPT to be returned to exactly one call of pn_proactor_wait().">pn_proactor_interrupt()</a> N times will return PN_PROACTOR_INTERRUPT to N current or future calls of <a class="el" href="group__proactor.html#ga56f5830965c20d3dbfc63e795eb243c4" title="Wait for events to handle.">pn_proactor_wait()</a></p>
+<dl class="section note"><dt>Note</dt><dd>Thread-safe. </dd></dl>
+<dl><dt><b>Examples: </b></dt><dd><a class="el" href="broker_8c-example.html#a15">broker.c</a>.</dd>
+</dl>
+</div>
+</div>
+<a class="anchor" id="ga68300a70c58a825564d5b4ee5d147696"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int pn_proactor_listen </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group__proactor.html#gabba42c7929dfceb9d296535bad0c93dc">pn_proactor_t</a> *&#160;</td>
+          <td class="paramname"><em>proactor</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="group__proactor.html#ga68ac7072ae60612d0bca5470014bf216">pn_listener_t</a> *&#160;</td>
+          <td class="paramname"><em>listener</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>host</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>port</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>backlog</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Start listening with listener. </p>
+<p><a class="el" href="group__proactor.html#ga56f5830965c20d3dbfc63e795eb243c4" title="Wait for events to handle.">pn_proactor_wait()</a> will return a PN_LISTENER_ACCEPT event when a connection can be accepted.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramdir">[in]</td><td class="paramname">proactor</td><td>the proactor object </td></tr>
+    <tr><td class="paramdir">[in]</td><td class="paramname">listener</td><td>proactor takes ownership of listener, do not free </td></tr>
+    <tr><td class="paramdir">[in]</td><td class="paramname">host</td><td>address to listen on </td></tr>
+    <tr><td class="paramdir">[in]</td><td class="paramname">port</td><td>port to listen on </td></tr>
+    <tr><td class="paramdir">[in]</td><td class="paramname">backlog</td><td>number of connection requests to queue</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>error on immediate error, e.g. an allocation failure. Other errors are indicated by <a class="el" href="group__proactor.html#ga6dba0fded7ca1718397151c62e65535b" title="Get the error condition for a listener.">pn_listener_condition()</a> on the PN_LISTENER_CLOSE event. </dd></dl>
+<dl><dt><b>Examples: </b></dt><dd><a class="el" href="broker_8c-example.html#a89">broker.c</a>.</dd>
+</dl>
+</div>
+</div>
+<a class="anchor" id="ga8428d00193008841e529aae6a922fa5f"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void pn_proactor_set_timeout </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group__proactor.html#gabba42c7929dfceb9d296535bad0c93dc">pn_proactor_t</a> *&#160;</td>
+          <td class="paramname"><em>proactor</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>Cause PN_PROACTOR_TIMEOUT to be returned to a thread calling wait() after timeout milliseconds. </p>
+<p>Thread-safe.</p>
+<p>Note that calling <a class="el" href="group__proactor.html#ga8428d00193008841e529aae6a922fa5f" title="Cause PN_PROACTOR_TIMEOUT to be returned to a thread calling wait() after timeout milliseconds...">pn_proactor_set_timeout()</a> again before the PN_PROACTOR_TIMEOUT is delivered will cancel the previous timeout and deliver an event only after the new timeout. <code>pn_proactor_set_timeout(0)</code> will cancel the timeout without setting a new one. </p>
+<dl><dt><b>Examples: </b></dt><dd><a class="el" href="send_8c-example.html#a31">send.c</a>.</dd>
+</dl>
+</div>
+</div>
+<a class="anchor" id="ga56f5830965c20d3dbfc63e795eb243c4"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="group__event.html#ga6bc581dfeaa8e8d46d07d37229d565c9">pn_event_batch_t</a>* pn_proactor_wait </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group__proactor.html#gabba42c7929dfceb9d296535bad0c93dc">pn_proactor_t</a> *&#160;</td>
+          <td class="paramname"><em>proactor</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Wait for events to handle. </p>
+<p>Handle events in the returned batch by calling <a class="el" href="group__event.html#gac3fbf151357d3101ac294cb675348c76" title="Experimental - Remove the next event from the batch and return it.">pn_event_batch_next()</a> until it returns NULL. You must call <a class="el" href="group__proactor.html#gab45680de5c02690a1f1ad1a3c70e9d65" title="Call when done handling a batch of events.">pn_proactor_done()</a> when you are finished with the batch.</p>
+<p>If you call <a class="el" href="group__proactor.html#gab45680de5c02690a1f1ad1a3c70e9d65" title="Call when done handling a batch of events.">pn_proactor_done()</a> before finishing the batch, the remaining events will be returned again by another call <a class="el" href="group__proactor.html#ga56f5830965c20d3dbfc63e795eb243c4" title="Wait for events to handle.">pn_proactor_wait()</a>. This is less efficient, but allows you to handle part of a batch and then hand off the rest to another thread.</p>
+<dl class="section note"><dt>Note</dt><dd>Thread-safe: can be called concurrently. Events in a single batch must be handled in sequence, but batches returned by separate calls to <a class="el" href="group__proactor.html#ga56f5830965c20d3dbfc63e795eb243c4" title="Wait for events to handle.">pn_proactor_wait()</a> can be handled concurrently. </dd></dl>
+<dl><dt><b>Examples: </b></dt><dd><a class="el" href="broker_8c-example.html#a85">broker.c</a>, <a class="el" href="receive_8c-example.html#a57">receive.c</a>, and <a class="el" href="send_8c-example.html#a71">send.c</a>.</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.png" alt="doxygen"/></a> 1.8.3.1 </li>
+  </ul>
+</div>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/7833dc2a/content/releases/qpid-proton-0.16.0/proton/c/api/group__proactor.js
----------------------------------------------------------------------
diff --git a/content/releases/qpid-proton-0.16.0/proton/c/api/group__proactor.js b/content/releases/qpid-proton-0.16.0/proton/c/api/group__proactor.js
new file mode 100755
index 0000000..bef8b32
--- /dev/null
+++ b/content/releases/qpid-proton-0.16.0/proton/c/api/group__proactor.js
@@ -0,0 +1,23 @@
+var group__proactor =
+[
+    [ "pn_listener_t", "group__proactor.html#ga68ac7072ae60612d0bca5470014bf216", null ],
+    [ "pn_proactor_t", "group__proactor.html#gabba42c7929dfceb9d296535bad0c93dc", null ],
+    [ "pn_connection_proactor", "group__proactor.html#ga0daf3895a13049783ab1dc40f3ac46b8", null ],
+    [ "pn_connection_wake", "group__proactor.html#ga2e5c9fddae8d7aa07fc93438c5ae2d86", null ],
+    [ "pn_event_listener", "group__proactor.html#gad9ea34f659b8bd2d0089fb43fa468300", null ],
+    [ "pn_event_proactor", "group__proactor.html#ga01e9b1cf8e0ff18cd4a2d6ed0e73a25a", null ],
+    [ "pn_listener", "group__proactor.html#gaaaf34821f3d29274ec41e7ce71022540", null ],
+    [ "pn_listener_accept", "group__proactor.html#ga76bcf4efdfa82fff28318e1afad083dc", null ],
+    [ "pn_listener_attachments", "group__proactor.html#ga471e37ae503bf6b2635b7f5f5c2d88bf", null ],
+    [ "pn_listener_close", "group__proactor.html#ga5690239e2a4f97e3ebbccb25fde75d81", null ],
+    [ "pn_listener_condition", "group__proactor.html#ga6dba0fded7ca1718397151c62e65535b", null ],
+    [ "pn_listener_proactor", "group__proactor.html#ga491561209bfe8934141015c1dd922a4f", null ],
+    [ "pn_proactor", "group__proactor.html#ga9d77772be7805709c87eeb01b06d67e2", null ],
+    [ "pn_proactor_connect", "group__proactor.html#ga523ea983380a1566b3b1a7606d66422c", null ],
+    [ "pn_proactor_done", "group__proactor.html#gab45680de5c02690a1f1ad1a3c70e9d65", null ],
+    [ "pn_proactor_free", "group__proactor.html#ga10fa443c109cee057a3c30e69f93fcef", null ],
+    [ "pn_proactor_interrupt", "group__proactor.html#gaff37a5b9d3d822ad9a961dae5155ebdb", null ],
+    [ "pn_proactor_listen", "group__proactor.html#ga68300a70c58a825564d5b4ee5d147696", null ],
+    [ "pn_proactor_set_timeout", "group__proactor.html#ga8428d00193008841e529aae6a922fa5f", null ],
+    [ "pn_proactor_wait", "group__proactor.html#ga56f5830965c20d3dbfc63e795eb243c4", null ]
+];
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/7833dc2a/content/releases/qpid-proton-0.16.0/proton/c/api/group__sasl.html
----------------------------------------------------------------------
diff --git a/content/releases/qpid-proton-0.16.0/proton/c/api/group__sasl.html b/content/releases/qpid-proton-0.16.0/proton/c/api/group__sasl.html
new file mode 100755
index 0000000..4bb94b3
--- /dev/null
+++ b/content/releases/qpid-proton-0.16.0/proton/c/api/group__sasl.html
@@ -0,0 +1,538 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://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.3.1"/>
+<title>Qpid Proton C API: SASL</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="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/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</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 style="padding-left: 0.5em;">
+   <div id="projectname">Qpid Proton C API
+   &#160;<span id="projectnumber">0.16.0</span>
+   </div>
+  </td>
+   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               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.png" alt=""/></a>
+          </span>
+        </div>
+</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</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">
+$(document).ready(function(){initNavTree('group__sasl.html','');});
+</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)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:vo
 id(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#typedef-members">Typedefs</a> &#124;
+<a href="#enum-members">Enumerations</a> &#124;
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">SASL<div class="ingroups"><a class="el" href="group__core.html">Core</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>SASL secure transport layer.  
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:ga4d21fddba80d3f88d0529aafe12328b0"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="group__sasl.html#ga4d21fddba80d3f88d0529aafe12328b0">pn_sasl_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sasl.html#ga4d21fddba80d3f88d0529aafe12328b0">pn_sasl_t</a></td></tr>
+<tr class="memdesc:ga4d21fddba80d3f88d0529aafe12328b0"><td class="mdescLeft">&#160;</td><td class="mdescRight">The SASL layer is responsible for establishing an authenticated and/or encrypted tunnel over which AMQP frames are passed between peers.  <a href="#ga4d21fddba80d3f88d0529aafe12328b0">More...</a><br/></td></tr>
+<tr class="separator:ga4d21fddba80d3f88d0529aafe12328b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:gad44e79f52e0669b1930689b56dfa9c3b"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sasl.html#gad44e79f52e0669b1930689b56dfa9c3b">pn_sasl_outcome_t</a> { <br/>
+&#160;&#160;<b>PN_SASL_NONE</b>, 
+<a class="el" href="group__sasl.html#ggad44e79f52e0669b1930689b56dfa9c3ba0050b91650a3826a090e13f57b3b941e">PN_SASL_OK</a>, 
+<a class="el" href="group__sasl.html#ggad44e79f52e0669b1930689b56dfa9c3bac63734ecde7c8170554f6bf04f6ce64a">PN_SASL_AUTH</a>, 
+<a class="el" href="group__sasl.html#ggad44e79f52e0669b1930689b56dfa9c3bacd46a2fda23f674c23ed81e6076c1939">PN_SASL_SYS</a>, 
+<br/>
+&#160;&#160;<a class="el" href="group__sasl.html#ggad44e79f52e0669b1930689b56dfa9c3ba03019f909ba1d98aae94437ca4bd0191">PN_SASL_PERM</a>, 
+<a class="el" href="group__sasl.html#ggad44e79f52e0669b1930689b56dfa9c3baee28d2c03fa80dccf771e37aae1bcdf3">PN_SASL_TEMP</a>
+<br/>
+ }</td></tr>
+<tr class="memdesc:gad44e79f52e0669b1930689b56dfa9c3b"><td class="mdescLeft">&#160;</td><td class="mdescRight">The result of the SASL negotiation.  <a href="group__sasl.html#gad44e79f52e0669b1930689b56dfa9c3b">More...</a><br/></td></tr>
+<tr class="separator:gad44e79f52e0669b1930689b56dfa9c3b"><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:ga7968e80e2fe9360fc14cf865dd1ac21c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__sasl.html#ga4d21fddba80d3f88d0529aafe12328b0">pn_sasl_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sasl.html#ga7968e80e2fe9360fc14cf865dd1ac21c">pn_sasl</a> (<a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport)</td></tr>
+<tr class="memdesc:ga7968e80e2fe9360fc14cf865dd1ac21c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Construct an Authentication and Security Layer object.  <a href="#ga7968e80e2fe9360fc14cf865dd1ac21c">More...</a><br/></td></tr>
+<tr class="separator:ga7968e80e2fe9360fc14cf865dd1ac21c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1737191972d5dded0993bf1431e71df0"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sasl.html#ga1737191972d5dded0993bf1431e71df0">pn_sasl_extended</a> (void)</td></tr>
+<tr class="memdesc:ga1737191972d5dded0993bf1431e71df0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Do we support extended SASL negotiation.  <a href="#ga1737191972d5dded0993bf1431e71df0">More...</a><br/></td></tr>
+<tr class="separator:ga1737191972d5dded0993bf1431e71df0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0199871440c4ff89a204cc1d8a09f283"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sasl.html#ga0199871440c4ff89a204cc1d8a09f283">pn_sasl_done</a> (<a class="el" href="group__sasl.html#ga4d21fddba80d3f88d0529aafe12328b0">pn_sasl_t</a> *sasl, <a class="el" href="group__sasl.html#gad44e79f52e0669b1930689b56dfa9c3b">pn_sasl_outcome_t</a> outcome)</td></tr>
+<tr class="memdesc:ga0199871440c4ff89a204cc1d8a09f283"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the outcome of SASL negotiation.  <a href="#ga0199871440c4ff89a204cc1d8a09f283">More...</a><br/></td></tr>
+<tr class="separator:ga0199871440c4ff89a204cc1d8a09f283"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga03b6daf742db6a07bd7d03cb197aedb6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__sasl.html#gad44e79f52e0669b1930689b56dfa9c3b">pn_sasl_outcome_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sasl.html#ga03b6daf742db6a07bd7d03cb197aedb6">pn_sasl_outcome</a> (<a class="el" href="group__sasl.html#ga4d21fddba80d3f88d0529aafe12328b0">pn_sasl_t</a> *sasl)</td></tr>
+<tr class="memdesc:ga03b6daf742db6a07bd7d03cb197aedb6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve the outcome of SASL negotiation.  <a href="#ga03b6daf742db6a07bd7d03cb197aedb6">More...</a><br/></td></tr>
+<tr class="separator:ga03b6daf742db6a07bd7d03cb197aedb6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga700e1d505068f895383dd932af55987e"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sasl.html#ga700e1d505068f895383dd932af55987e">pn_sasl_get_user</a> (<a class="el" href="group__sasl.html#ga4d21fddba80d3f88d0529aafe12328b0">pn_sasl_t</a> *sasl)</td></tr>
+<tr class="memdesc:ga700e1d505068f895383dd932af55987e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve the authenticated user.  <a href="#ga700e1d505068f895383dd932af55987e">More...</a><br/></td></tr>
+<tr class="separator:ga700e1d505068f895383dd932af55987e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga895b6a957bf0c0204aaddb3ec5b9d863"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sasl.html#ga895b6a957bf0c0204aaddb3ec5b9d863">pn_sasl_get_mech</a> (<a class="el" href="group__sasl.html#ga4d21fddba80d3f88d0529aafe12328b0">pn_sasl_t</a> *sasl)</td></tr>
+<tr class="memdesc:ga895b6a957bf0c0204aaddb3ec5b9d863"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the selected SASL mechanism.  <a href="#ga895b6a957bf0c0204aaddb3ec5b9d863">More...</a><br/></td></tr>
+<tr class="separator:ga895b6a957bf0c0204aaddb3ec5b9d863"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga73299a6a22e141e7911a739590032625"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sasl.html#ga73299a6a22e141e7911a739590032625">pn_sasl_allowed_mechs</a> (<a class="el" href="group__sasl.html#ga4d21fddba80d3f88d0529aafe12328b0">pn_sasl_t</a> *sasl, const char *mechs)</td></tr>
+<tr class="memdesc:ga73299a6a22e141e7911a739590032625"><td class="mdescLeft">&#160;</td><td class="mdescRight">SASL mechanisms that are to be considered for authentication.  <a href="#ga73299a6a22e141e7911a739590032625">More...</a><br/></td></tr>
+<tr class="separator:ga73299a6a22e141e7911a739590032625"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf472325bc055bb18a5a6f5ca03eda315"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sasl.html#gaf472325bc055bb18a5a6f5ca03eda315">pn_sasl_set_allow_insecure_mechs</a> (<a class="el" href="group__sasl.html#ga4d21fddba80d3f88d0529aafe12328b0">pn_sasl_t</a> *sasl, bool insecure)</td></tr>
+<tr class="memdesc:gaf472325bc055bb18a5a6f5ca03eda315"><td class="mdescLeft">&#160;</td><td class="mdescRight">Boolean to allow use of clear text authentication mechanisms.  <a href="#gaf472325bc055bb18a5a6f5ca03eda315">More...</a><br/></td></tr>
+<tr class="separator:gaf472325bc055bb18a5a6f5ca03eda315"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac53ad15ee429b7ce9d0c598d1e347243"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sasl.html#gac53ad15ee429b7ce9d0c598d1e347243">pn_sasl_get_allow_insecure_mechs</a> (<a class="el" href="group__sasl.html#ga4d21fddba80d3f88d0529aafe12328b0">pn_sasl_t</a> *sasl)</td></tr>
+<tr class="memdesc:gac53ad15ee429b7ce9d0c598d1e347243"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the current value for allow_insecure_mechs.  <a href="#gac53ad15ee429b7ce9d0c598d1e347243">More...</a><br/></td></tr>
+<tr class="separator:gac53ad15ee429b7ce9d0c598d1e347243"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad1a6932135165f0e5b7639b79ac71c56"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sasl.html#gad1a6932135165f0e5b7639b79ac71c56">pn_sasl_config_name</a> (<a class="el" href="group__sasl.html#ga4d21fddba80d3f88d0529aafe12328b0">pn_sasl_t</a> *sasl, const char *name)</td></tr>
+<tr class="memdesc:gad1a6932135165f0e5b7639b79ac71c56"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the sasl configuration name.  <a href="#gad1a6932135165f0e5b7639b79ac71c56">More...</a><br/></td></tr>
+<tr class="separator:gad1a6932135165f0e5b7639b79ac71c56"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabf4176414424ce02a4e03b4338d30521"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sasl.html#gabf4176414424ce02a4e03b4338d30521">pn_sasl_config_path</a> (<a class="el" href="group__sasl.html#ga4d21fddba80d3f88d0529aafe12328b0">pn_sasl_t</a> *sasl, const char *path)</td></tr>
+<tr class="memdesc:gabf4176414424ce02a4e03b4338d30521"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the sasl configuration path.  <a href="#gabf4176414424ce02a4e03b4338d30521">More...</a><br/></td></tr>
+<tr class="separator:gabf4176414424ce02a4e03b4338d30521"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>SASL secure transport layer. </p>
+<h2 class="groupheader">Typedef Documentation</h2>
+<a class="anchor" id="ga4d21fddba80d3f88d0529aafe12328b0"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="group__sasl.html#ga4d21fddba80d3f88d0529aafe12328b0">pn_sasl_t</a> <a class="el" href="group__sasl.html#ga4d21fddba80d3f88d0529aafe12328b0">pn_sasl_t</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>The SASL layer is responsible for establishing an authenticated and/or encrypted tunnel over which AMQP frames are passed between peers. </p>
+<p>The peer acting as the SASL Client must provide authentication credentials. The peer acting as the SASL Server must provide authentication against the received credentials. </p>
+
+</div>
+</div>
+<h2 class="groupheader">Enumeration Type Documentation</h2>
+<a class="anchor" id="gad44e79f52e0669b1930689b56dfa9c3b"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="group__sasl.html#gad44e79f52e0669b1930689b56dfa9c3b">pn_sasl_outcome_t</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>The result of the SASL negotiation. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="ggad44e79f52e0669b1930689b56dfa9c3ba0050b91650a3826a090e13f57b3b941e"></a>PN_SASL_OK</em>&nbsp;</td><td class="fielddoc">
+<p>negotiation not completed </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggad44e79f52e0669b1930689b56dfa9c3bac63734ecde7c8170554f6bf04f6ce64a"></a>PN_SASL_AUTH</em>&nbsp;</td><td class="fielddoc">
+<p>authentication succeeded </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggad44e79f52e0669b1930689b56dfa9c3bacd46a2fda23f674c23ed81e6076c1939"></a>PN_SASL_SYS</em>&nbsp;</td><td class="fielddoc">
+<p>failed due to bad credentials </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggad44e79f52e0669b1930689b56dfa9c3ba03019f909ba1d98aae94437ca4bd0191"></a>PN_SASL_PERM</em>&nbsp;</td><td class="fielddoc">
+<p>failed due to a system error </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggad44e79f52e0669b1930689b56dfa9c3baee28d2c03fa80dccf771e37aae1bcdf3"></a>PN_SASL_TEMP</em>&nbsp;</td><td class="fielddoc">
+<p>failed due to unrecoverable error </p>
+</td></tr>
+</table>
+
+</div>
+</div>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ga7968e80e2fe9360fc14cf865dd1ac21c"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="group__sasl.html#ga4d21fddba80d3f88d0529aafe12328b0">pn_sasl_t</a>* pn_sasl </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>Construct an Authentication and Security Layer object. </p>
+<p>This will return the SASL layer object for the supplied transport object. If there is currently no SASL layer one will be created.</p>
+<p>On the client side of an AMQP connection this will have the effect of ensuring that the AMQP SASL layer is used for that connection.</p>
+<dl class="section return"><dt>Returns</dt><dd>an object representing the SASL layer. </dd></dl>
+<dl><dt><b>Examples: </b></dt><dd><a class="el" href="broker_8c-example.html#a38">broker.c</a>.</dd>
+</dl>
+</div>
+</div>
+<a class="anchor" id="ga73299a6a22e141e7911a739590032625"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void pn_sasl_allowed_mechs </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group__sasl.html#ga4d21fddba80d3f88d0529aafe12328b0">pn_sasl_t</a> *&#160;</td>
+          <td class="paramname"><em>sasl</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>mechs</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>SASL mechanisms that are to be considered for authentication. </p>
+<p>This can be used on either the client or the server to restrict the SASL mechanisms that may be used to the mechanisms on the list.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramdir">[in]</td><td class="paramname">sasl</td><td>the SASL layer </td></tr>
+    <tr><td class="paramdir">[in]</td><td class="paramname">mechs</td><td>space separated list of mechanisms that are allowed for authentication </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl><dt><b>Examples: </b></dt><dd><a class="el" href="broker_8c-example.html#a37">broker.c</a>.</dd>
+</dl>
+</div>
+</div>
+<a class="anchor" id="gad1a6932135165f0e5b7639b79ac71c56"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void pn_sasl_config_name </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group__sasl.html#ga4d21fddba80d3f88d0529aafe12328b0">pn_sasl_t</a> *&#160;</td>
+          <td class="paramname"><em>sasl</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>name</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Set the sasl configuration name. </p>
+<p>This is used to construct the SASL configuration filename. In the current implementation it ".conf" is added to the name and the file is looked for in the configuration directory.</p>
+<p>If not set it will default to "proton-server" for a sasl server and "proton-client" for a client.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramdir">[in]</td><td class="paramname">sasl</td><td>the SASL layer </td></tr>
+    <tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>the configuration name </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="gabf4176414424ce02a4e03b4338d30521"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void pn_sasl_config_path </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group__sasl.html#ga4d21fddba80d3f88d0529aafe12328b0">pn_sasl_t</a> *&#160;</td>
+          <td class="paramname"><em>sasl</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>path</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Set the sasl configuration path. </p>
+<p>This is used to tell SASL where to look for the configuration file. In the current implementation it can be a colon separated list of directories.</p>
+<p>The environment variable PN_SASL_CONFIG_PATH can also be used to set this path, but if both methods are used then this <a class="el" href="group__sasl.html#gabf4176414424ce02a4e03b4338d30521" title="Set the sasl configuration path.">pn_sasl_config_path()</a> will take precedence.</p>
+<p>If not set the underlying implementation default will be used. for a client.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramdir">[in]</td><td class="paramname">sasl</td><td>the SASL layer </td></tr>
+    <tr><td class="paramdir">[in]</td><td class="paramname">path</td><td>the configuration path </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="ga0199871440c4ff89a204cc1d8a09f283"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void pn_sasl_done </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group__sasl.html#ga4d21fddba80d3f88d0529aafe12328b0">pn_sasl_t</a> *&#160;</td>
+          <td class="paramname"><em>sasl</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="group__sasl.html#gad44e79f52e0669b1930689b56dfa9c3b">pn_sasl_outcome_t</a>&#160;</td>
+          <td class="paramname"><em>outcome</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Set the outcome of SASL negotiation. </p>
+<p>Used by the server to set the result of the negotiation process.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga1737191972d5dded0993bf1431e71df0"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool pn_sasl_extended </td>
+          <td>(</td>
+          <td class="paramtype">void&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Do we support extended SASL negotiation. </p>
+<p>Do we support extended SASL negotiation? All implementations of Proton support ANONYMOUS and EXTERNAL on both client and server sides and PLAIN on the client side.</p>
+<p>Extended SASL implememtations use an external library (Cyrus SASL) to support other mechanisms beyond these basic ones.</p>
+<dl class="section return"><dt>Returns</dt><dd>true if we support extended SASL negotiation, false if we only support basic negotiation. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gac53ad15ee429b7ce9d0c598d1e347243"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool pn_sasl_get_allow_insecure_mechs </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group__sasl.html#ga4d21fddba80d3f88d0529aafe12328b0">pn_sasl_t</a> *&#160;</td>
+          <td class="paramname"><em>sasl</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Return the current value for allow_insecure_mechs. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramdir">[in]</td><td class="paramname">sasl</td><td>the SASL layer </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="ga895b6a957bf0c0204aaddb3ec5b9d863"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const char* pn_sasl_get_mech </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group__sasl.html#ga4d21fddba80d3f88d0529aafe12328b0">pn_sasl_t</a> *&#160;</td>
+          <td class="paramname"><em>sasl</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Return the selected SASL mechanism. </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">sasl</td><td>the SASL layer</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The authentication mechanism selected by the SASL layer </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga700e1d505068f895383dd932af55987e"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const char* pn_sasl_get_user </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group__sasl.html#ga4d21fddba80d3f88d0529aafe12328b0">pn_sasl_t</a> *&#160;</td>
+          <td class="paramname"><em>sasl</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 pn_transport_set_user_password() API.</p>
+<p>If <a class="el" href="group__sasl.html#ga03b6daf742db6a07bd7d03cb197aedb6" title="Retrieve the outcome of SASL negotiation.">pn_sasl_outcome()</a> returns a value other than PN_SASL_OK, then there will be no user to return. 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">sasl</td><td>the sasl layer</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>If the SASL layer was not negotiated then 0 is returned If the 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="ga03b6daf742db6a07bd7d03cb197aedb6"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="group__sasl.html#gad44e79f52e0669b1930689b56dfa9c3b">pn_sasl_outcome_t</a> pn_sasl_outcome </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group__sasl.html#ga4d21fddba80d3f88d0529aafe12328b0">pn_sasl_t</a> *&#160;</td>
+          <td class="paramname"><em>sasl</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Retrieve the outcome of SASL negotiation. </p>
+
+</div>
+</div>
+<a class="anchor" id="gaf472325bc055bb18a5a6f5ca03eda315"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void pn_sasl_set_allow_insecure_mechs </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group__sasl.html#ga4d21fddba80d3f88d0529aafe12328b0">pn_sasl_t</a> *&#160;</td>
+          <td class="paramname"><em>sasl</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">bool&#160;</td>
+          <td class="paramname"><em>insecure</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Boolean to allow use of clear text authentication mechanisms. </p>
+<p>By default the SASL layer is configured not to allow mechanisms that disclose the clear text of the password over an unencrypted AMQP connection. This specifically will disallow the use of the PLAIN mechanism without using SSL encryption.</p>
+<p>This default is to avoid disclosing password information accidentally over an insecure network.</p>
+<p>If you actually wish to use a clear text password unencrypted then you can use this API to set allow_insecure_mechs to true.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramdir">[in]</td><td class="paramname">sasl</td><td>the SASL layer </td></tr>
+    <tr><td class="paramdir">[in]</td><td class="paramname">insecure</td><td>set this to true to allow unencrypted PLAIN authentication. </td></tr>
+  </table>
+  </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.png" alt="doxygen"/></a> 1.8.3.1 </li>
+  </ul>
+</div>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/7833dc2a/content/releases/qpid-proton-0.16.0/proton/c/api/group__sasl.js
----------------------------------------------------------------------
diff --git a/content/releases/qpid-proton-0.16.0/proton/c/api/group__sasl.js b/content/releases/qpid-proton-0.16.0/proton/c/api/group__sasl.js
new file mode 100755
index 0000000..ac06fa9
--- /dev/null
+++ b/content/releases/qpid-proton-0.16.0/proton/c/api/group__sasl.js
@@ -0,0 +1,22 @@
+var group__sasl =
+[
+    [ "pn_sasl_t", "group__sasl.html#ga4d21fddba80d3f88d0529aafe12328b0", null ],
+    [ "pn_sasl_outcome_t", "group__sasl.html#gad44e79f52e0669b1930689b56dfa9c3b", [
+      [ "PN_SASL_OK", "group__sasl.html#ggad44e79f52e0669b1930689b56dfa9c3ba0050b91650a3826a090e13f57b3b941e", null ],
+      [ "PN_SASL_AUTH", "group__sasl.html#ggad44e79f52e0669b1930689b56dfa9c3bac63734ecde7c8170554f6bf04f6ce64a", null ],
+      [ "PN_SASL_SYS", "group__sasl.html#ggad44e79f52e0669b1930689b56dfa9c3bacd46a2fda23f674c23ed81e6076c1939", null ],
+      [ "PN_SASL_PERM", "group__sasl.html#ggad44e79f52e0669b1930689b56dfa9c3ba03019f909ba1d98aae94437ca4bd0191", null ],
+      [ "PN_SASL_TEMP", "group__sasl.html#ggad44e79f52e0669b1930689b56dfa9c3baee28d2c03fa80dccf771e37aae1bcdf3", null ]
+    ] ],
+    [ "pn_sasl", "group__sasl.html#ga7968e80e2fe9360fc14cf865dd1ac21c", null ],
+    [ "pn_sasl_allowed_mechs", "group__sasl.html#ga73299a6a22e141e7911a739590032625", null ],
+    [ "pn_sasl_config_name", "group__sasl.html#gad1a6932135165f0e5b7639b79ac71c56", null ],
+    [ "pn_sasl_config_path", "group__sasl.html#gabf4176414424ce02a4e03b4338d30521", null ],
+    [ "pn_sasl_done", "group__sasl.html#ga0199871440c4ff89a204cc1d8a09f283", null ],
+    [ "pn_sasl_extended", "group__sasl.html#ga1737191972d5dded0993bf1431e71df0", null ],
+    [ "pn_sasl_get_allow_insecure_mechs", "group__sasl.html#gac53ad15ee429b7ce9d0c598d1e347243", null ],
+    [ "pn_sasl_get_mech", "group__sasl.html#ga895b6a957bf0c0204aaddb3ec5b9d863", null ],
+    [ "pn_sasl_get_user", "group__sasl.html#ga700e1d505068f895383dd932af55987e", null ],
+    [ "pn_sasl_outcome", "group__sasl.html#ga03b6daf742db6a07bd7d03cb197aedb6", null ],
+    [ "pn_sasl_set_allow_insecure_mechs", "group__sasl.html#gaf472325bc055bb18a5a6f5ca03eda315", null ]
+];
\ No newline at end of file


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