blob: 009ebe71f92b52457381ab9b9355e4131d3fe7d8 [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.20"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Qpid Proton C API: Event</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function() { init_search(); });
/* @license-end */
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Qpid Proton C API
&#160;<span id="projectnumber">0.32.0</span>
</div>
</td>
<td> <div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.svg"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.20 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('group__event.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">Event<div class="ingroups"><a class="el" href="group__core.html">Core</a></div></div> </div>
</div><!--header-->
<div class="contents">
<p>Protocol and transport events.
<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:ga87f3028b4888632bbd56fb71ac737ae8"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="group__event.html#ga87f3028b4888632bbd56fb71ac737ae8">pn_event_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__event.html#ga87f3028b4888632bbd56fb71ac737ae8">pn_event_t</a></td></tr>
<tr class="memdesc:ga87f3028b4888632bbd56fb71ac737ae8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Notification of a state change in the protocol engine. <a href="group__event.html#ga87f3028b4888632bbd56fb71ac737ae8">More...</a><br /></td></tr>
<tr class="separator:ga87f3028b4888632bbd56fb71ac737ae8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga905cdecedb8020bc28e648e43348b5d1"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="group__event.html#ga905cdecedb8020bc28e648e43348b5d1">pn_collector_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__event.html#ga905cdecedb8020bc28e648e43348b5d1">pn_collector_t</a></td></tr>
<tr class="memdesc:ga905cdecedb8020bc28e648e43348b5d1"><td class="mdescLeft">&#160;</td><td class="mdescRight">An event collector. <a href="group__event.html#ga905cdecedb8020bc28e648e43348b5d1">More...</a><br /></td></tr>
<tr class="separator:ga905cdecedb8020bc28e648e43348b5d1"><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:ga4876e2eed24a4d4e4c52b99842103cda"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__event.html#ga4876e2eed24a4d4e4c52b99842103cda">pn_event_type_t</a> { <br />
&#160;&#160;<a class="el" href="group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaa1f5eec218463ae8e4f962fcc8eb2e657">PN_EVENT_NONE</a>,
<a class="el" href="group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaa95e9355638399ee20a697f3f494ab7db">PN_REACTOR_INIT</a>,
<a class="el" href="group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaa5548649935a6aab6e6547c9036f685ff">PN_REACTOR_QUIESCED</a>,
<a class="el" href="group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaad164b6566815866ed2c1d981e02bacb0">PN_REACTOR_FINAL</a>,
<br />
&#160;&#160;<a class="el" href="group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaa13fdcb0402f982fd366e58f165f376c9">PN_TIMER_TASK</a>,
<a class="el" href="group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaa182e571a0310028514bce66a41063a6e">PN_CONNECTION_INIT</a>,
<a class="el" href="group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaaf61aa79ca82b3a8f5017dc735843fae5">PN_CONNECTION_BOUND</a>,
<a class="el" href="group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaac683ba544c12cbf36a3d3015ae818498">PN_CONNECTION_UNBOUND</a>,
<br />
&#160;&#160;<a class="el" href="group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaa5d285c46982df224c3e4733b05c3540a">PN_CONNECTION_LOCAL_OPEN</a>,
<a class="el" href="group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaad48bce685db553740fa71cc36473b5cc">PN_CONNECTION_REMOTE_OPEN</a>,
<a class="el" href="group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaac8567664d41057ae94d23776f5ecdb86">PN_CONNECTION_LOCAL_CLOSE</a>,
<a class="el" href="group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaa1252529cf9f03d214c9b4fea5cf11b2f">PN_CONNECTION_REMOTE_CLOSE</a>,
<br />
&#160;&#160;<a class="el" href="group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaa6c7d6b4e5f1e4f47fa80dae1ad686e0b">PN_CONNECTION_FINAL</a>,
<a class="el" href="group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaaf5b92fb6331bfe63786db3950073147f">PN_SESSION_INIT</a>,
<a class="el" href="group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaa0862b8e3613b7a2b5a08a779474df424">PN_SESSION_LOCAL_OPEN</a>,
<a class="el" href="group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaaf67df046bea45df34aea863d9541e806">PN_SESSION_REMOTE_OPEN</a>,
<br />
&#160;&#160;<a class="el" href="group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaa5d3fe92cc7ef0e8712b038ecfbd05029">PN_SESSION_LOCAL_CLOSE</a>,
<a class="el" href="group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaa3410075b825c59b8f4efdcddf5a5b135">PN_SESSION_REMOTE_CLOSE</a>,
<a class="el" href="group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaaf5eb59f4d99ef5a8efd48be64a2bd8f8">PN_SESSION_FINAL</a>,
<a class="el" href="group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaa2f9e46bded95d0233cc74a71fdc75a2c">PN_LINK_INIT</a>,
<br />
&#160;&#160;<a class="el" href="group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaa5ddecd4b0ea72895413fbf1b5cb41f65">PN_LINK_LOCAL_OPEN</a>,
<a class="el" href="group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaa45edb44a6cc7908b5032944e08925307">PN_LINK_REMOTE_OPEN</a>,
<a class="el" href="group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaa3b27f8d1c91cc05b47bed1905d42373a">PN_LINK_LOCAL_CLOSE</a>,
<a class="el" href="group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaa1153f0108be071c31210dd1cd3e40a1f">PN_LINK_REMOTE_CLOSE</a>,
<br />
&#160;&#160;<a class="el" href="group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaa838b909cce908f5769d043ba3e73e73e">PN_LINK_LOCAL_DETACH</a>,
<a class="el" href="group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaa5a84b68a2bd5ca705187381a785121d2">PN_LINK_REMOTE_DETACH</a>,
<a class="el" href="group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaa4eaecc54c07cdc9b0df7b1d536a7dc3f">PN_LINK_FLOW</a>,
<a class="el" href="group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaaeacdc45bfe24b2a9da2aeed7b6effac5">PN_LINK_FINAL</a>,
<br />
&#160;&#160;<a class="el" href="group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaa70bbfc163d85732b5652dc70fb3330fe">PN_DELIVERY</a>,
<a class="el" href="group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaad7329eb7a015f62ce70719ea20abab76">PN_TRANSPORT</a>,
<a class="el" href="group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaaa205271edd307e5d33bd8287a760ad28">PN_TRANSPORT_AUTHENTICATED</a>,
<a class="el" href="group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaa7c7278de5bcbf3b42b3e692ca21f6c5a">PN_TRANSPORT_ERROR</a>,
<br />
&#160;&#160;<a class="el" href="group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaa98facd13835b4a1d8e878d6f13c10a51">PN_TRANSPORT_HEAD_CLOSED</a>,
<a class="el" href="group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaa205d07df6cd3d07b37a89f046b1184db">PN_TRANSPORT_TAIL_CLOSED</a>,
<a class="el" href="group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaa1ca722ce3c0b2c13a33636cded8430ba">PN_TRANSPORT_CLOSED</a>,
<b>PN_SELECTABLE_INIT</b>,
<br />
&#160;&#160;<b>PN_SELECTABLE_UPDATED</b>,
<b>PN_SELECTABLE_READABLE</b>,
<b>PN_SELECTABLE_WRITABLE</b>,
<b>PN_SELECTABLE_ERROR</b>,
<br />
&#160;&#160;<b>PN_SELECTABLE_EXPIRED</b>,
<b>PN_SELECTABLE_FINAL</b>,
<a class="el" href="group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaa28a2bfee806bbc1fe31499c8eec39db0">PN_CONNECTION_WAKE</a>,
<a class="el" href="group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaa0602b15957883e7d00ccdff4abca992c">PN_LISTENER_ACCEPT</a>,
<br />
&#160;&#160;<a class="el" href="group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaad5920df168cd28daaf253cad789d8aca">PN_LISTENER_CLOSE</a>,
<a class="el" href="group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaaee05826a80e94b5b86c4544e4715f499">PN_PROACTOR_INTERRUPT</a>,
<a class="el" href="group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaa4afa8c2da61f4c665c669fbe37b1c5fe">PN_PROACTOR_TIMEOUT</a>,
<a class="el" href="group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaa894e93f167ef39e28a07c9cdf6b1181b">PN_PROACTOR_INACTIVE</a>,
<br />
&#160;&#160;<a class="el" href="group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaa6e25f00110ab278fd8b34fee00bd5fd7">PN_LISTENER_OPEN</a>,
<a class="el" href="group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaa878996fc147735984a2c008fbd113f8c">PN_RAW_CONNECTION_CONNECTED</a>,
<a class="el" href="group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaa835a0074faddd279c09a77c5f1441328">PN_RAW_CONNECTION_CLOSED_READ</a>,
<a class="el" href="group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaa1810fbfef141f32fc0e0a551ca05dc0a">PN_RAW_CONNECTION_CLOSED_WRITE</a>,
<br />
&#160;&#160;<a class="el" href="group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaa1278d8c62c5bf1a46f70b1cb2866ab80">PN_RAW_CONNECTION_DISCONNECTED</a>,
<a class="el" href="group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaaebc9e2d013af020e30caafc86f89a391">PN_RAW_CONNECTION_NEED_READ_BUFFERS</a>,
<a class="el" href="group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaad3fb4c7b64b68e9afd2bead0f6c24cc3">PN_RAW_CONNECTION_NEED_WRITE_BUFFERS</a>,
<a class="el" href="group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaa23e8c593d41b3ef88c3b57a98ca1e0ad">PN_RAW_CONNECTION_READ</a>,
<br />
&#160;&#160;<a class="el" href="group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaa7928b624dab81e3d51a9919954c67b27">PN_RAW_CONNECTION_WRITTEN</a>,
<a class="el" href="group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaa471e4c60d57ab77eb9bc1716fa50134d">PN_RAW_CONNECTION_WAKE</a>
<br />
}</td></tr>
<tr class="memdesc:ga4876e2eed24a4d4e4c52b99842103cda"><td class="mdescLeft">&#160;</td><td class="mdescRight">An event type. <a href="group__event.html#ga4876e2eed24a4d4e4c52b99842103cda">More...</a><br /></td></tr>
<tr class="separator:ga4876e2eed24a4d4e4c52b99842103cda"><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:ga3a85c046c11ce692c23b9566b022d54b"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__event.html#ga3a85c046c11ce692c23b9566b022d54b">pn_event_type_name</a> (<a class="el" href="group__event.html#ga4876e2eed24a4d4e4c52b99842103cda">pn_event_type_t</a> type)</td></tr>
<tr class="memdesc:ga3a85c046c11ce692c23b9566b022d54b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a human readable name for an event type. <a href="group__event.html#ga3a85c046c11ce692c23b9566b022d54b">More...</a><br /></td></tr>
<tr class="separator:ga3a85c046c11ce692c23b9566b022d54b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7c7754316e257d4ce7660730953000ac"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__event.html#ga905cdecedb8020bc28e648e43348b5d1">pn_collector_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__event.html#ga7c7754316e257d4ce7660730953000ac">pn_collector</a> (void)</td></tr>
<tr class="memdesc:ga7c7754316e257d4ce7660730953000ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Construct a collector. <a href="group__event.html#ga7c7754316e257d4ce7660730953000ac">More...</a><br /></td></tr>
<tr class="separator:ga7c7754316e257d4ce7660730953000ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2312e5cb8fc9e4bff94d7ab9d4b15c08"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__event.html#ga2312e5cb8fc9e4bff94d7ab9d4b15c08">pn_collector_free</a> (<a class="el" href="group__event.html#ga905cdecedb8020bc28e648e43348b5d1">pn_collector_t</a> *collector)</td></tr>
<tr class="memdesc:ga2312e5cb8fc9e4bff94d7ab9d4b15c08"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a collector. <a href="group__event.html#ga2312e5cb8fc9e4bff94d7ab9d4b15c08">More...</a><br /></td></tr>
<tr class="separator:ga2312e5cb8fc9e4bff94d7ab9d4b15c08"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga04e6edffd24e5c865ac1f6b3529469e4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__event.html#ga04e6edffd24e5c865ac1f6b3529469e4">pn_collector_release</a> (<a class="el" href="group__event.html#ga905cdecedb8020bc28e648e43348b5d1">pn_collector_t</a> *collector)</td></tr>
<tr class="memdesc:ga04e6edffd24e5c865ac1f6b3529469e4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Release a collector. <a href="group__event.html#ga04e6edffd24e5c865ac1f6b3529469e4">More...</a><br /></td></tr>
<tr class="separator:ga04e6edffd24e5c865ac1f6b3529469e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadab22668a28ff1af0d8ef82df516f94f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__event.html#gadab22668a28ff1af0d8ef82df516f94f">pn_collector_drain</a> (<a class="el" href="group__event.html#ga905cdecedb8020bc28e648e43348b5d1">pn_collector_t</a> *collector)</td></tr>
<tr class="memdesc:gadab22668a28ff1af0d8ef82df516f94f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Drain a collector: remove and discard all events. <a href="group__event.html#gadab22668a28ff1af0d8ef82df516f94f">More...</a><br /></td></tr>
<tr class="separator:gadab22668a28ff1af0d8ef82df516f94f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1857c64d3f8549209b0b8ec91bf81e89"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__event.html#ga87f3028b4888632bbd56fb71ac737ae8">pn_event_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__event.html#ga1857c64d3f8549209b0b8ec91bf81e89">pn_collector_put</a> (<a class="el" href="group__event.html#ga905cdecedb8020bc28e648e43348b5d1">pn_collector_t</a> *collector, const pn_class_t *clazz, void *context, <a class="el" href="group__event.html#ga4876e2eed24a4d4e4c52b99842103cda">pn_event_type_t</a> type)</td></tr>
<tr class="memdesc:ga1857c64d3f8549209b0b8ec91bf81e89"><td class="mdescLeft">&#160;</td><td class="mdescRight">Place a new event on a collector. <a href="group__event.html#ga1857c64d3f8549209b0b8ec91bf81e89">More...</a><br /></td></tr>
<tr class="separator:ga1857c64d3f8549209b0b8ec91bf81e89"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga672d5ec725787815cae9b7bc739cd6f9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__event.html#ga87f3028b4888632bbd56fb71ac737ae8">pn_event_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__event.html#ga672d5ec725787815cae9b7bc739cd6f9">pn_collector_peek</a> (<a class="el" href="group__event.html#ga905cdecedb8020bc28e648e43348b5d1">pn_collector_t</a> *collector)</td></tr>
<tr class="memdesc:ga672d5ec725787815cae9b7bc739cd6f9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Access the head event contained by a collector. <a href="group__event.html#ga672d5ec725787815cae9b7bc739cd6f9">More...</a><br /></td></tr>
<tr class="separator:ga672d5ec725787815cae9b7bc739cd6f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7a4a24eb162059737f44e7520a0c1a54"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__event.html#ga7a4a24eb162059737f44e7520a0c1a54">pn_collector_pop</a> (<a class="el" href="group__event.html#ga905cdecedb8020bc28e648e43348b5d1">pn_collector_t</a> *collector)</td></tr>
<tr class="memdesc:ga7a4a24eb162059737f44e7520a0c1a54"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove the head event on a collector. <a href="group__event.html#ga7a4a24eb162059737f44e7520a0c1a54">More...</a><br /></td></tr>
<tr class="separator:ga7a4a24eb162059737f44e7520a0c1a54"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga554801c4fb87ae7518772a4492f307e0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__event.html#ga87f3028b4888632bbd56fb71ac737ae8">pn_event_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__event.html#ga554801c4fb87ae7518772a4492f307e0">pn_collector_next</a> (<a class="el" href="group__event.html#ga905cdecedb8020bc28e648e43348b5d1">pn_collector_t</a> *collector)</td></tr>
<tr class="memdesc:ga554801c4fb87ae7518772a4492f307e0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pop and return the head event, returns NULL if the collector is empty. <a href="group__event.html#ga554801c4fb87ae7518772a4492f307e0">More...</a><br /></td></tr>
<tr class="separator:ga554801c4fb87ae7518772a4492f307e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9304e9c2e85cb5de23c81ae7cd8a9077"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__event.html#ga87f3028b4888632bbd56fb71ac737ae8">pn_event_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__event.html#ga9304e9c2e85cb5de23c81ae7cd8a9077">pn_collector_prev</a> (<a class="el" href="group__event.html#ga905cdecedb8020bc28e648e43348b5d1">pn_collector_t</a> *collector)</td></tr>
<tr class="memdesc:ga9304e9c2e85cb5de23c81ae7cd8a9077"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the same pointer as the most recent call to <a class="el" href="group__event.html#ga554801c4fb87ae7518772a4492f307e0" title="Pop and return the head event, returns NULL if the collector is empty.">pn_collector_next()</a>. <a href="group__event.html#ga9304e9c2e85cb5de23c81ae7cd8a9077">More...</a><br /></td></tr>
<tr class="separator:ga9304e9c2e85cb5de23c81ae7cd8a9077"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabf731be5b6c0d15173fd4d9a3b132121"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__event.html#gabf731be5b6c0d15173fd4d9a3b132121">pn_collector_more</a> (<a class="el" href="group__event.html#ga905cdecedb8020bc28e648e43348b5d1">pn_collector_t</a> *collector)</td></tr>
<tr class="memdesc:gabf731be5b6c0d15173fd4d9a3b132121"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if there are more events after the current head event. <a href="group__event.html#gabf731be5b6c0d15173fd4d9a3b132121">More...</a><br /></td></tr>
<tr class="separator:gabf731be5b6c0d15173fd4d9a3b132121"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacaea54ca51885933b4987c131a3d1b0d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__event.html#ga4876e2eed24a4d4e4c52b99842103cda">pn_event_type_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__event.html#gacaea54ca51885933b4987c131a3d1b0d">pn_event_type</a> (<a class="el" href="group__event.html#ga87f3028b4888632bbd56fb71ac737ae8">pn_event_t</a> *event)</td></tr>
<tr class="memdesc:gacaea54ca51885933b4987c131a3d1b0d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the type of an event. <a href="group__event.html#gacaea54ca51885933b4987c131a3d1b0d">More...</a><br /></td></tr>
<tr class="separator:gacaea54ca51885933b4987c131a3d1b0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1f3f0a01db5cce634c5d0ccd5d9b50be"><td class="memItemLeft" align="right" valign="top">const pn_class_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__event.html#ga1f3f0a01db5cce634c5d0ccd5d9b50be">pn_event_class</a> (<a class="el" href="group__event.html#ga87f3028b4888632bbd56fb71ac737ae8">pn_event_t</a> *event)</td></tr>
<tr class="memdesc:ga1f3f0a01db5cce634c5d0ccd5d9b50be"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the class associated with the event context. <a href="group__event.html#ga1f3f0a01db5cce634c5d0ccd5d9b50be">More...</a><br /></td></tr>
<tr class="separator:ga1f3f0a01db5cce634c5d0ccd5d9b50be"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaecda1dea7e3a01c4ba246043ea438b19"><td class="memItemLeft" align="right" valign="top"><a id="gaecda1dea7e3a01c4ba246043ea438b19"></a>
void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__event.html#gaecda1dea7e3a01c4ba246043ea438b19">pn_event_context</a> (<a class="el" href="group__event.html#ga87f3028b4888632bbd56fb71ac737ae8">pn_event_t</a> *event)</td></tr>
<tr class="memdesc:gaecda1dea7e3a01c4ba246043ea438b19"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the context associated with an event. <br /></td></tr>
<tr class="separator:gaecda1dea7e3a01c4ba246043ea438b19"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4f2c6a0fdf86a43e7e9874fcd2ccaf52"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__connection.html#ga886351d81ff3a977a284a206526c5aff">pn_connection_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__event.html#ga4f2c6a0fdf86a43e7e9874fcd2ccaf52">pn_event_connection</a> (<a class="el" href="group__event.html#ga87f3028b4888632bbd56fb71ac737ae8">pn_event_t</a> *event)</td></tr>
<tr class="memdesc:ga4f2c6a0fdf86a43e7e9874fcd2ccaf52"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the connection associated with an event. <a href="group__event.html#ga4f2c6a0fdf86a43e7e9874fcd2ccaf52">More...</a><br /></td></tr>
<tr class="separator:ga4f2c6a0fdf86a43e7e9874fcd2ccaf52"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf4af0bfbe0e0a8e432f0e803df14ecb5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__session.html#ga38ccb93b8f5c2892adafce5d5f0fbcd9">pn_session_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__event.html#gaf4af0bfbe0e0a8e432f0e803df14ecb5">pn_event_session</a> (<a class="el" href="group__event.html#ga87f3028b4888632bbd56fb71ac737ae8">pn_event_t</a> *event)</td></tr>
<tr class="memdesc:gaf4af0bfbe0e0a8e432f0e803df14ecb5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the session associated with an event. <a href="group__event.html#gaf4af0bfbe0e0a8e432f0e803df14ecb5">More...</a><br /></td></tr>
<tr class="separator:gaf4af0bfbe0e0a8e432f0e803df14ecb5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga75f230ef55f03a1f943df79279f8d111"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__event.html#ga75f230ef55f03a1f943df79279f8d111">pn_event_link</a> (<a class="el" href="group__event.html#ga87f3028b4888632bbd56fb71ac737ae8">pn_event_t</a> *event)</td></tr>
<tr class="memdesc:ga75f230ef55f03a1f943df79279f8d111"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the link associated with an event. <a href="group__event.html#ga75f230ef55f03a1f943df79279f8d111">More...</a><br /></td></tr>
<tr class="separator:ga75f230ef55f03a1f943df79279f8d111"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga10fa6f53bdabe0851ebb2d8a0bf6a52c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__delivery.html#gacdfce854066c0a4ff4db9f9a0478f340">pn_delivery_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__event.html#ga10fa6f53bdabe0851ebb2d8a0bf6a52c">pn_event_delivery</a> (<a class="el" href="group__event.html#ga87f3028b4888632bbd56fb71ac737ae8">pn_event_t</a> *event)</td></tr>
<tr class="memdesc:ga10fa6f53bdabe0851ebb2d8a0bf6a52c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the delivery associated with an event. <a href="group__event.html#ga10fa6f53bdabe0851ebb2d8a0bf6a52c">More...</a><br /></td></tr>
<tr class="separator:ga10fa6f53bdabe0851ebb2d8a0bf6a52c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga14525ae84870388141898bbf57f2b151"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__event.html#ga14525ae84870388141898bbf57f2b151">pn_event_transport</a> (<a class="el" href="group__event.html#ga87f3028b4888632bbd56fb71ac737ae8">pn_event_t</a> *event)</td></tr>
<tr class="memdesc:ga14525ae84870388141898bbf57f2b151"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the transport associated with an event. <a href="group__event.html#ga14525ae84870388141898bbf57f2b151">More...</a><br /></td></tr>
<tr class="separator:ga14525ae84870388141898bbf57f2b151"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5989cf0c187bd12899596fe06931476e"><td class="memItemLeft" align="right" valign="top">pn_record_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__event.html#ga5989cf0c187bd12899596fe06931476e">pn_event_attachments</a> (<a class="el" href="group__event.html#ga87f3028b4888632bbd56fb71ac737ae8">pn_event_t</a> *event)</td></tr>
<tr class="memdesc:ga5989cf0c187bd12899596fe06931476e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get any attachments associated with an event. <a href="group__event.html#ga5989cf0c187bd12899596fe06931476e">More...</a><br /></td></tr>
<tr class="separator:ga5989cf0c187bd12899596fe06931476e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae7beda7f373660b889b61412ce429028"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="group__condition.html#ga11eb7db7d2c205169fe3d47c996a95a5">pn_condition_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__event.html#gae7beda7f373660b889b61412ce429028">pn_event_condition</a> (<a class="el" href="group__event.html#ga87f3028b4888632bbd56fb71ac737ae8">pn_event_t</a> *event)</td></tr>
<tr class="memdesc:gae7beda7f373660b889b61412ce429028"><td class="mdescLeft">&#160;</td><td class="mdescRight">If the event context object has a condition and the condition is set return it, otherwise return NULL. <a href="group__event.html#gae7beda7f373660b889b61412ce429028">More...</a><br /></td></tr>
<tr class="separator:gae7beda7f373660b889b61412ce429028"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>Protocol and transport events. </p>
<h2 class="groupheader">Typedef Documentation</h2>
<a id="ga87f3028b4888632bbd56fb71ac737ae8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga87f3028b4888632bbd56fb71ac737ae8">&#9670;&nbsp;</a></span>pn_event_t</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="group__event.html#ga87f3028b4888632bbd56fb71ac737ae8">pn_event_t</a> <a class="el" href="group__event.html#ga87f3028b4888632bbd56fb71ac737ae8">pn_event_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Notification of a state change in the protocol engine. </p>
<p>The AMQP endpoint state modeled by the protocol engine is captured by the following object types: <a class="el" href="group__delivery.html#gacdfce854066c0a4ff4db9f9a0478f340">Deliveries </a>, <a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">Links </a>, <a class="el" href="group__session.html#ga38ccb93b8f5c2892adafce5d5f0fbcd9">Sessions </a>, <a class="el" href="group__connection.html#ga886351d81ff3a977a284a206526c5aff">Connections </a>, and <a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">Transports </a>. These objects are related as follows:</p>
<ul>
<li><a class="el" href="group__delivery.html#gacdfce854066c0a4ff4db9f9a0478f340">Deliveries </a> always have a single parent Link</li>
<li><a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">Links </a> always have a single parent Session</li>
<li><a class="el" href="group__session.html#ga38ccb93b8f5c2892adafce5d5f0fbcd9">Sessions </a> always have a single parent Connection</li>
<li><a class="el" href="group__connection.html#ga886351d81ff3a977a284a206526c5aff">Connections </a> optionally have at most one associated Transport</li>
<li><a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">Transports </a> optionally have at most one associated Connection</li>
</ul>
<p>Every event has a type (see <a class="el" href="group__event.html#ga4876e2eed24a4d4e4c52b99842103cda" title="An event type.">pn_event_type_t</a>) that identifies what sort of state change has occurred along with a pointer to the object whose state has changed (as well as its associated objects).</p>
<p>Events are accessed by creating a <a class="el" href="group__event.html#ga905cdecedb8020bc28e648e43348b5d1">Collector </a> with <a class="el" href="group__event.html#ga7c7754316e257d4ce7660730953000ac" title="Construct a collector.">pn_collector()</a> and registering it with the <a class="el" href="group__connection.html#ga886351d81ff3a977a284a206526c5aff">Connection </a> of interest through use of <a class="el" href="group__connection.html#ga2fd2089e8eaa2a362606498f233ada61" title="Associate a connection object with an event collector.">pn_connection_collect()</a>. Once a collector has been registered, <a class="el" href="group__event.html#ga672d5ec725787815cae9b7bc739cd6f9" title="Access the head event contained by a collector.">pn_collector_peek()</a> and <a class="el" href="group__event.html#ga7a4a24eb162059737f44e7520a0c1a54" title="Remove the head event on a collector.">pn_collector_pop()</a> are used to access and process events. </p>
</div>
</div>
<a id="ga905cdecedb8020bc28e648e43348b5d1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga905cdecedb8020bc28e648e43348b5d1">&#9670;&nbsp;</a></span>pn_collector_t</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="group__event.html#ga905cdecedb8020bc28e648e43348b5d1">pn_collector_t</a> <a class="el" href="group__event.html#ga905cdecedb8020bc28e648e43348b5d1">pn_collector_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>An event collector. </p>
<p>A pn_collector_t may be used to register interest in being notified of high level events that can occur to the various objects representing AMQP endpoint state. See <a class="el" href="group__event.html#ga87f3028b4888632bbd56fb71ac737ae8" title="Notification of a state change in the protocol engine.">pn_event_t</a> for more details. </p>
</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a id="ga4876e2eed24a4d4e4c52b99842103cda"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga4876e2eed24a4d4e4c52b99842103cda">&#9670;&nbsp;</a></span>pn_event_type_t</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__event.html#ga4876e2eed24a4d4e4c52b99842103cda">pn_event_type_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>An event type. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga4876e2eed24a4d4e4c52b99842103cdaa1f5eec218463ae8e4f962fcc8eb2e657"></a>PN_EVENT_NONE&#160;</td><td class="fielddoc"><p>Defined as a programming convenience. </p>
<p>No event of this type will ever be generated. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga4876e2eed24a4d4e4c52b99842103cdaa95e9355638399ee20a697f3f494ab7db"></a>PN_REACTOR_INIT&#160;</td><td class="fielddoc"><p>A reactor has been started. </p>
<p>Events of this type point to the reactor. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga4876e2eed24a4d4e4c52b99842103cdaa5548649935a6aab6e6547c9036f685ff"></a>PN_REACTOR_QUIESCED&#160;</td><td class="fielddoc"><p>A reactor has no more events to process. </p>
<p>Events of this type point to the reactor. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga4876e2eed24a4d4e4c52b99842103cdaad164b6566815866ed2c1d981e02bacb0"></a>PN_REACTOR_FINAL&#160;</td><td class="fielddoc"><p>A reactor has been stopped. </p>
<p>Events of this type point to the reactor. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga4876e2eed24a4d4e4c52b99842103cdaa13fdcb0402f982fd366e58f165f376c9"></a>PN_TIMER_TASK&#160;</td><td class="fielddoc"><p>A timer event has occurred. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga4876e2eed24a4d4e4c52b99842103cdaa182e571a0310028514bce66a41063a6e"></a>PN_CONNECTION_INIT&#160;</td><td class="fielddoc"><p>The connection has been created. </p>
<p>This is the first event that will ever be issued for a connection. Events of this type point to the relevant connection. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga4876e2eed24a4d4e4c52b99842103cdaaf61aa79ca82b3a8f5017dc735843fae5"></a>PN_CONNECTION_BOUND&#160;</td><td class="fielddoc"><p>The connection has been bound to a transport. </p>
<p>This event is issued when the <a class="el" href="group__transport.html#ga1a769e2e6c900c78c710407296cb4e13" title="Deprecated - Use pn_connection_driver_init().">pn_transport_bind()</a> operation is invoked. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga4876e2eed24a4d4e4c52b99842103cdaac683ba544c12cbf36a3d3015ae818498"></a>PN_CONNECTION_UNBOUND&#160;</td><td class="fielddoc"><p>The connection has been unbound from its transport. </p>
<p>This event is issued when the <a class="el" href="group__transport.html#ga2a66ff267333651eb166f3f6fa4ede50" title="Deprecated - Use pn_connection_driver_destroy().">pn_transport_unbind()</a> operation is invoked. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga4876e2eed24a4d4e4c52b99842103cdaa5d285c46982df224c3e4733b05c3540a"></a>PN_CONNECTION_LOCAL_OPEN&#160;</td><td class="fielddoc"><p>The local connection endpoint has been closed. </p>
<p>Events of this type point to the relevant connection. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga4876e2eed24a4d4e4c52b99842103cdaad48bce685db553740fa71cc36473b5cc"></a>PN_CONNECTION_REMOTE_OPEN&#160;</td><td class="fielddoc"><p>The remote endpoint has opened the connection. </p>
<p>Events of this type point to the relevant connection. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga4876e2eed24a4d4e4c52b99842103cdaac8567664d41057ae94d23776f5ecdb86"></a>PN_CONNECTION_LOCAL_CLOSE&#160;</td><td class="fielddoc"><p>The local connection endpoint has been closed. </p>
<p>Events of this type point to the relevant connection. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga4876e2eed24a4d4e4c52b99842103cdaa1252529cf9f03d214c9b4fea5cf11b2f"></a>PN_CONNECTION_REMOTE_CLOSE&#160;</td><td class="fielddoc"><p>The remote endpoint has closed the connection. </p>
<p>Events of this type point to the relevant connection. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga4876e2eed24a4d4e4c52b99842103cdaa6c7d6b4e5f1e4f47fa80dae1ad686e0b"></a>PN_CONNECTION_FINAL&#160;</td><td class="fielddoc"><p>The connection has been freed and any outstanding processing has been completed. </p>
<p>This is the final event that will ever be issued for a connection. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga4876e2eed24a4d4e4c52b99842103cdaaf5b92fb6331bfe63786db3950073147f"></a>PN_SESSION_INIT&#160;</td><td class="fielddoc"><p>The session has been created. </p>
<p>This is the first event that will ever be issued for a session. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga4876e2eed24a4d4e4c52b99842103cdaa0862b8e3613b7a2b5a08a779474df424"></a>PN_SESSION_LOCAL_OPEN&#160;</td><td class="fielddoc"><p>The local session endpoint has been opened. </p>
<p>Events of this type point to the relevant session. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga4876e2eed24a4d4e4c52b99842103cdaaf67df046bea45df34aea863d9541e806"></a>PN_SESSION_REMOTE_OPEN&#160;</td><td class="fielddoc"><p>The remote endpoint has opened the session. </p>
<p>Events of this type point to the relevant session. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga4876e2eed24a4d4e4c52b99842103cdaa5d3fe92cc7ef0e8712b038ecfbd05029"></a>PN_SESSION_LOCAL_CLOSE&#160;</td><td class="fielddoc"><p>The local session endpoint has been closed. </p>
<p>Events of this type point ot the relevant session. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga4876e2eed24a4d4e4c52b99842103cdaa3410075b825c59b8f4efdcddf5a5b135"></a>PN_SESSION_REMOTE_CLOSE&#160;</td><td class="fielddoc"><p>The remote endpoint has closed the session. </p>
<p>Events of this type point to the relevant session. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga4876e2eed24a4d4e4c52b99842103cdaaf5eb59f4d99ef5a8efd48be64a2bd8f8"></a>PN_SESSION_FINAL&#160;</td><td class="fielddoc"><p>The session has been freed and any outstanding processing has been completed. </p>
<p>This is the final event that will ever be issued for a session. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga4876e2eed24a4d4e4c52b99842103cdaa2f9e46bded95d0233cc74a71fdc75a2c"></a>PN_LINK_INIT&#160;</td><td class="fielddoc"><p>The link has been created. </p>
<p>This is the first event that will ever be issued for a link. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga4876e2eed24a4d4e4c52b99842103cdaa5ddecd4b0ea72895413fbf1b5cb41f65"></a>PN_LINK_LOCAL_OPEN&#160;</td><td class="fielddoc"><p>The local link endpoint has been opened. </p>
<p>Events of this type point ot the relevant link. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga4876e2eed24a4d4e4c52b99842103cdaa45edb44a6cc7908b5032944e08925307"></a>PN_LINK_REMOTE_OPEN&#160;</td><td class="fielddoc"><p>The remote endpoint has opened the link. </p>
<p>Events of this type point to the relevant link. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga4876e2eed24a4d4e4c52b99842103cdaa3b27f8d1c91cc05b47bed1905d42373a"></a>PN_LINK_LOCAL_CLOSE&#160;</td><td class="fielddoc"><p>The local link endpoint has been closed. </p>
<p>Events of this type point to the relevant link. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga4876e2eed24a4d4e4c52b99842103cdaa1153f0108be071c31210dd1cd3e40a1f"></a>PN_LINK_REMOTE_CLOSE&#160;</td><td class="fielddoc"><p>The remote endpoint has closed the link. </p>
<p>Events of this type point to the relevant link. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga4876e2eed24a4d4e4c52b99842103cdaa838b909cce908f5769d043ba3e73e73e"></a>PN_LINK_LOCAL_DETACH&#160;</td><td class="fielddoc"><p>The local link endpoint has been detached. </p>
<p>Events of this type point to the relevant link. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga4876e2eed24a4d4e4c52b99842103cdaa5a84b68a2bd5ca705187381a785121d2"></a>PN_LINK_REMOTE_DETACH&#160;</td><td class="fielddoc"><p>The remote endpoint has detached the link. </p>
<p>Events of this type point to the relevant link. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga4876e2eed24a4d4e4c52b99842103cdaa4eaecc54c07cdc9b0df7b1d536a7dc3f"></a>PN_LINK_FLOW&#160;</td><td class="fielddoc"><p>The flow control state for a link has changed. </p>
<p>Events of this type point to the relevant link. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga4876e2eed24a4d4e4c52b99842103cdaaeacdc45bfe24b2a9da2aeed7b6effac5"></a>PN_LINK_FINAL&#160;</td><td class="fielddoc"><p>The link has been freed and any outstanding processing has been completed. </p>
<p>This is the final event that will ever be issued for a link. Events of this type point to the relevant link. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga4876e2eed24a4d4e4c52b99842103cdaa70bbfc163d85732b5652dc70fb3330fe"></a>PN_DELIVERY&#160;</td><td class="fielddoc"><p>A delivery has been created or updated. </p>
<p>Events of this type point to the relevant delivery. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga4876e2eed24a4d4e4c52b99842103cdaad7329eb7a015f62ce70719ea20abab76"></a>PN_TRANSPORT&#160;</td><td class="fielddoc"><p>The transport has new data to read and/or write. </p>
<p>Events of this type point to the relevant transport. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga4876e2eed24a4d4e4c52b99842103cdaaa205271edd307e5d33bd8287a760ad28"></a>PN_TRANSPORT_AUTHENTICATED&#160;</td><td class="fielddoc"><p>The transport has authenticated. </p>
<p>If this is received by a server the associated transport has authenticated an incoming connection and <a class="el" href="group__transport.html#ga6b2750a2d313c65aabe5dc8a99f1de58" title="Retrieve the authenticated user.">pn_transport_get_user()</a> can be used to obtain the authenticated user. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga4876e2eed24a4d4e4c52b99842103cdaa7c7278de5bcbf3b42b3e692ca21f6c5a"></a>PN_TRANSPORT_ERROR&#160;</td><td class="fielddoc"><p>Indicates that a transport error has occurred. </p>
<p>Use <a class="el" href="group__transport.html#gac458d9fdb684f9501e89b96fc51f5c34" title="Get additional information about the condition of the transport.">pn_transport_condition()</a> to access the details of the error from the associated transport. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga4876e2eed24a4d4e4c52b99842103cdaa98facd13835b4a1d8e878d6f13c10a51"></a>PN_TRANSPORT_HEAD_CLOSED&#160;</td><td class="fielddoc"><p>Indicates that the "head" or writing end of the transport has been closed. </p>
<p>This means the transport will never produce more bytes for output to the network. Events of this type point to the relevant transport. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga4876e2eed24a4d4e4c52b99842103cdaa205d07df6cd3d07b37a89f046b1184db"></a>PN_TRANSPORT_TAIL_CLOSED&#160;</td><td class="fielddoc"><p>Indicates that the tail of the transport has been closed. </p>
<p>This means the transport will never be able to process more bytes from the network. Events of this type point to the relevant transport. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga4876e2eed24a4d4e4c52b99842103cdaa1ca722ce3c0b2c13a33636cded8430ba"></a>PN_TRANSPORT_CLOSED&#160;</td><td class="fielddoc"><p>Indicates that the both the head and tail of the transport are closed. </p>
<p>Events of this type point to the relevant transport. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga4876e2eed24a4d4e4c52b99842103cdaa28a2bfee806bbc1fe31499c8eec39db0"></a>PN_CONNECTION_WAKE&#160;</td><td class="fielddoc"><p><a class="el" href="group__proactor.html#ga0f49c771fe3bff54f58c9d583ca30560" title="Return a PN_CONNECTION_WAKE event for connection as soon as possible.">pn_connection_wake()</a> was called. </p>
<p>Events of this type point to the <a class="el" href="group__connection.html#ga886351d81ff3a977a284a206526c5aff">pn_connection_t</a>. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga4876e2eed24a4d4e4c52b99842103cdaa0602b15957883e7d00ccdff4abca992c"></a>PN_LISTENER_ACCEPT&#160;</td><td class="fielddoc"><p>Indicates the listener has an incoming connection, call <a class="el" href="group__listener.html#ga3719a4ab17b8de42fc6bfb262018d070" title="Accept an incoming connection request using transport and connection, which can be configured before ...">pn_listener_accept2()</a> to accept it. </p>
<p>Events of this type point to the <a class="el" href="group__listener.html#ga68ac7072ae60612d0bca5470014bf216">pn_listener_t</a>. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga4876e2eed24a4d4e4c52b99842103cdaad5920df168cd28daaf253cad789d8aca"></a>PN_LISTENER_CLOSE&#160;</td><td class="fielddoc"><p>Indicates the listener has closed. </p>
<p><a class="el" href="group__listener.html#gaa49d0d11a9f46a75fbbbebf6def2d4b2" title="Get the error condition for a listener.">pn_listener_condition()</a> provides error information. Events of this type point to the <a class="el" href="group__listener.html#ga68ac7072ae60612d0bca5470014bf216">pn_listener_t</a>. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga4876e2eed24a4d4e4c52b99842103cdaaee05826a80e94b5b86c4544e4715f499"></a>PN_PROACTOR_INTERRUPT&#160;</td><td class="fielddoc"><p>Indicates <a class="el" href="group__proactor.html#gaa5255cd1bcb5d7f5639b53dc30712711" title="Return a PN_PROACTOR_INTERRUPT event as soon as possible.">pn_proactor_interrupt()</a> was called to interrupt a proactor thread. </p>
<p>Events of this type point to the <a class="el" href="group__proactor.html#gabba42c7929dfceb9d296535bad0c93dc">pn_proactor_t</a>. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga4876e2eed24a4d4e4c52b99842103cdaa4afa8c2da61f4c665c669fbe37b1c5fe"></a>PN_PROACTOR_TIMEOUT&#160;</td><td class="fielddoc"><p>Timeout set by <a class="el" href="group__proactor.html#gad7cd71f06282eb290699d90c316b2d32" title="Return a PN_PROACTOR_TIMEOUT after timeout milliseconds elapse.">pn_proactor_set_timeout()</a> time limit expired. </p>
<p>Events of this type point to the <a class="el" href="group__proactor.html#gabba42c7929dfceb9d296535bad0c93dc">pn_proactor_t</a>. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga4876e2eed24a4d4e4c52b99842103cdaa894e93f167ef39e28a07c9cdf6b1181b"></a>PN_PROACTOR_INACTIVE&#160;</td><td class="fielddoc"><p>The proactor has become inactive: all listeners and connections were closed and the timeout (if set) expired or was cancelled. </p>
<p>There will be no further events unless new listeners or connections are opened, or a new timeout is set (possibly in other threads in a multi-threaded program.)</p>
<p>Events of this type point to the <a class="el" href="group__proactor.html#gabba42c7929dfceb9d296535bad0c93dc">pn_proactor_t</a>. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga4876e2eed24a4d4e4c52b99842103cdaa6e25f00110ab278fd8b34fee00bd5fd7"></a>PN_LISTENER_OPEN&#160;</td><td class="fielddoc"><p>The listener is listening. </p>
<p>Events of this type point to the <a class="el" href="group__listener.html#ga68ac7072ae60612d0bca5470014bf216">pn_listener_t</a>. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga4876e2eed24a4d4e4c52b99842103cdaa878996fc147735984a2c008fbd113f8c"></a>PN_RAW_CONNECTION_CONNECTED&#160;</td><td class="fielddoc"><p>The raw connection connected. </p>
<p>Now would be a good time to give the raw connection some buffers to read bytes from the underlying socket. If you don't do it now you will get <a class="el" href="group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaaebc9e2d013af020e30caafc86f89a391">PN_RAW_CONNECTION_NEED_READ_BUFFERS</a> (and <a class="el" href="group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaad3fb4c7b64b68e9afd2bead0f6c24cc3">PN_RAW_CONNECTION_NEED_WRITE_BUFFERS</a>) events when the socket is readable (or writable) but there are not buffers available.</p>
<p>Events of this type point to a <a class="el" href="group__raw__connection.html#ga771f248632968276665fb90245023e86">pn_raw_connection_t</a> </p>
</td></tr>
<tr><td class="fieldname"><a id="gga4876e2eed24a4d4e4c52b99842103cdaa835a0074faddd279c09a77c5f1441328"></a>PN_RAW_CONNECTION_CLOSED_READ&#160;</td><td class="fielddoc"><p>The remote end of the raw connection closed the connection so that we can no longer read. </p>
<p>When both this and <a class="el" href="group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaa1810fbfef141f32fc0e0a551ca05dc0a">PN_RAW_CONNECTION_CLOSED_WRITE</a> event have occurred then the <a class="el" href="group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaa1278d8c62c5bf1a46f70b1cb2866ab80">PN_RAW_CONNECTION_DISCONNECTED</a> event will be generated.</p>
<p>Events of this type point to a <a class="el" href="group__raw__connection.html#ga771f248632968276665fb90245023e86">pn_raw_connection_t</a> </p>
</td></tr>
<tr><td class="fieldname"><a id="gga4876e2eed24a4d4e4c52b99842103cdaa1810fbfef141f32fc0e0a551ca05dc0a"></a>PN_RAW_CONNECTION_CLOSED_WRITE&#160;</td><td class="fielddoc"><p>The remote end of the raw connection closed the connection so that we can no longer write. </p>
<p>When both this and <a class="el" href="group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaa835a0074faddd279c09a77c5f1441328">PN_RAW_CONNECTION_CLOSED_READ</a> event have occurred then the <a class="el" href="group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaa1278d8c62c5bf1a46f70b1cb2866ab80">PN_RAW_CONNECTION_DISCONNECTED</a> event will be generated.</p>
<p>Events of this type point to a <a class="el" href="group__raw__connection.html#ga771f248632968276665fb90245023e86">pn_raw_connection_t</a> </p>
</td></tr>
<tr><td class="fieldname"><a id="gga4876e2eed24a4d4e4c52b99842103cdaa1278d8c62c5bf1a46f70b1cb2866ab80"></a>PN_RAW_CONNECTION_DISCONNECTED&#160;</td><td class="fielddoc"><p>The raw connection is disconnected. </p>
<p>No more bytes will be read or written on the connection. Every buffer in use will already either have been returned using a <a class="el" href="group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaa23e8c593d41b3ef88c3b57a98ca1e0ad">PN_RAW_CONNECTION_READ</a> or <a class="el" href="group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaa7928b624dab81e3d51a9919954c67b27">PN_RAW_CONNECTION_WRITTEN</a> event. This event will always be the last for this raw connection, and so the application can clean up the raw connection at this point.</p>
<p>Events of this type point to a <a class="el" href="group__raw__connection.html#ga771f248632968276665fb90245023e86">pn_raw_connection_t</a> </p>
</td></tr>
<tr><td class="fieldname"><a id="gga4876e2eed24a4d4e4c52b99842103cdaaebc9e2d013af020e30caafc86f89a391"></a>PN_RAW_CONNECTION_NEED_READ_BUFFERS&#160;</td><td class="fielddoc"><p>The raw connection might need more read buffers. </p>
<p>The connection is readable, but the connection has no buffer to read the bytes into. If you supply some buffers now maybe you'll get a <a class="el" href="group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaa23e8c593d41b3ef88c3b57a98ca1e0ad">PN_RAW_CONNECTION_READ</a> event soon, but no guarantees.</p>
<p>This event is edge triggered and you will only get it once until you give the raw connection some more read buffers.</p>
<p>Events of this type point to a <a class="el" href="group__raw__connection.html#ga771f248632968276665fb90245023e86">pn_raw_connection_t</a> </p>
</td></tr>
<tr><td class="fieldname"><a id="gga4876e2eed24a4d4e4c52b99842103cdaad3fb4c7b64b68e9afd2bead0f6c24cc3"></a>PN_RAW_CONNECTION_NEED_WRITE_BUFFERS&#160;</td><td class="fielddoc"><p>The raw connection might need more write buffers. </p>
<p>The connection is writable but has no buffers to write. If you give the raw connection something to write using <a class="el" href="group__raw__connection.html#ga3167efa9818f821a6af1565859b9e440">pn_raw_connection_write_buffers</a> the raw connection can write them. It is not necessary to wait for this event before sending buffers to write, but it can be used to aid in flow control (maybe).</p>
<p>This event is edge triggered and you will only get it once until you give the raw connection something more to write.</p>
<p>Events of this type point to a <a class="el" href="group__raw__connection.html#ga771f248632968276665fb90245023e86">pn_raw_connection_t</a> </p>
</td></tr>
<tr><td class="fieldname"><a id="gga4876e2eed24a4d4e4c52b99842103cdaa23e8c593d41b3ef88c3b57a98ca1e0ad"></a>PN_RAW_CONNECTION_READ&#160;</td><td class="fielddoc"><p>The raw connection read bytes: The bytes that were read are in one of the read buffers given to the raw connection. </p>
<p>This event will be sent if there are bytes that have been read in a buffer owned by the raw connection and there is no <a class="el" href="group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaa23e8c593d41b3ef88c3b57a98ca1e0ad">PN_RAW_CONNECTION_READ</a> event still queued.</p>
<p>When a connection closes all read buffers are returned to the application using <a class="el" href="group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaa23e8c593d41b3ef88c3b57a98ca1e0ad">PN_RAW_CONNECTION_READ</a> events with empty buffers.</p>
<p>Events of this type point to a <a class="el" href="group__raw__connection.html#ga771f248632968276665fb90245023e86">pn_raw_connection_t</a> </p>
</td></tr>
<tr><td class="fieldname"><a id="gga4876e2eed24a4d4e4c52b99842103cdaa7928b624dab81e3d51a9919954c67b27"></a>PN_RAW_CONNECTION_WRITTEN&#160;</td><td class="fielddoc"><p>The raw connection has finished a write and the buffers that were used are no longer in use and can be recycled. </p>
<p>This event will be sent if there are buffers that have been written still owned by the raw connection and there is no <a class="el" href="group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaa7928b624dab81e3d51a9919954c67b27">PN_RAW_CONNECTION_WRITTEN</a> event currently queued.</p>
<p>When a connection closes all write buffers are returned using <a class="el" href="group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaa7928b624dab81e3d51a9919954c67b27">PN_RAW_CONNECTION_WRITTEN</a> events.</p>
<p>Events of this type point to a <a class="el" href="group__raw__connection.html#ga771f248632968276665fb90245023e86">pn_raw_connection_t</a> </p>
</td></tr>
<tr><td class="fieldname"><a id="gga4876e2eed24a4d4e4c52b99842103cdaa471e4c60d57ab77eb9bc1716fa50134d"></a>PN_RAW_CONNECTION_WAKE&#160;</td><td class="fielddoc"><p>The raw connection was woken by <a class="el" href="group__raw__connection.html#gaca978a14e487ec6a6410f031c2ac0432">pn_raw_connection_wake</a>. </p>
<p>Events of this type point to a <a class="el" href="group__raw__connection.html#ga771f248632968276665fb90245023e86">pn_raw_connection_t</a> </p>
</td></tr>
</table>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="ga3a85c046c11ce692c23b9566b022d54b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3a85c046c11ce692c23b9566b022d54b">&#9670;&nbsp;</a></span>pn_event_type_name()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const char* pn_event_type_name </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__event.html#ga4876e2eed24a4d4e4c52b99842103cda">pn_event_type_t</a>&#160;</td>
<td class="paramname"><em>type</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get a human readable name for an event type. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">type</td><td>an event type </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a human readable name </dd></dl>
<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="broker_8c-example.html#a23">broker.c</a>, <a class="el" href="direct_8c-example.html#a4">direct.c</a>, <a class="el" href="receive_8c-example.html#a2">receive.c</a>, and <a class="el" href="send_8c-example.html#a2">send.c</a>.</dd>
</dl>
</div>
</div>
<a id="ga7c7754316e257d4ce7660730953000ac"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7c7754316e257d4ce7660730953000ac">&#9670;&nbsp;</a></span>pn_collector()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__event.html#ga905cdecedb8020bc28e648e43348b5d1">pn_collector_t</a>* pn_collector </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Construct a collector. </p>
<p>A collector is used to register interest in events produced by one or more <a class="el" href="group__connection.html#ga886351d81ff3a977a284a206526c5aff" title="An AMQP Connection object.">pn_connection_t</a> objects. Collectors are not currently thread safe, so synchronization must be used if they are to be shared between multiple connection objects. </p>
</div>
</div>
<a id="ga2312e5cb8fc9e4bff94d7ab9d4b15c08"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2312e5cb8fc9e4bff94d7ab9d4b15c08">&#9670;&nbsp;</a></span>pn_collector_free()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void pn_collector_free </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__event.html#ga905cdecedb8020bc28e648e43348b5d1">pn_collector_t</a> *&#160;</td>
<td class="paramname"><em>collector</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Free a collector. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">collector</td><td>a collector to free, or NULL </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ga04e6edffd24e5c865ac1f6b3529469e4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga04e6edffd24e5c865ac1f6b3529469e4">&#9670;&nbsp;</a></span>pn_collector_release()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void pn_collector_release </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__event.html#ga905cdecedb8020bc28e648e43348b5d1">pn_collector_t</a> *&#160;</td>
<td class="paramname"><em>collector</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Release a collector. </p>
<p>Once in a released state a collector will drain any internally queued events (thereby releasing any pointers they may hold), shrink it's memory footprint to a minimum, and discard any newly created events.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">collector</td><td>a collector object </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="gadab22668a28ff1af0d8ef82df516f94f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gadab22668a28ff1af0d8ef82df516f94f">&#9670;&nbsp;</a></span>pn_collector_drain()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void pn_collector_drain </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__event.html#ga905cdecedb8020bc28e648e43348b5d1">pn_collector_t</a> *&#160;</td>
<td class="paramname"><em>collector</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Drain a collector: remove and discard all events. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">collector</td><td>a collector object </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ga1857c64d3f8549209b0b8ec91bf81e89"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1857c64d3f8549209b0b8ec91bf81e89">&#9670;&nbsp;</a></span>pn_collector_put()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__event.html#ga87f3028b4888632bbd56fb71ac737ae8">pn_event_t</a>* pn_collector_put </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__event.html#ga905cdecedb8020bc28e648e43348b5d1">pn_collector_t</a> *&#160;</td>
<td class="paramname"><em>collector</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const pn_class_t *&#160;</td>
<td class="paramname"><em>clazz</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__event.html#ga4876e2eed24a4d4e4c52b99842103cda">pn_event_type_t</a>&#160;</td>
<td class="paramname"><em>type</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Place a new event on a collector. </p>
<p>This operation will create a new event of the given type and context and return a pointer to the newly created event. In some cases an event of the given type and context can be elided. When this happens, this operation will return a NULL pointer.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">collector</td><td>a collector object </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">clazz</td><td>class of the context </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">context</td><td>the event context </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">type</td><td>the event type</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a pointer to the newly created event or NULL if the event was elided </dd></dl>
</div>
</div>
<a id="ga672d5ec725787815cae9b7bc739cd6f9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga672d5ec725787815cae9b7bc739cd6f9">&#9670;&nbsp;</a></span>pn_collector_peek()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__event.html#ga87f3028b4888632bbd56fb71ac737ae8">pn_event_t</a>* pn_collector_peek </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__event.html#ga905cdecedb8020bc28e648e43348b5d1">pn_collector_t</a> *&#160;</td>
<td class="paramname"><em>collector</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Access the head event contained by a collector. </p>
<p>This operation will continue to return the same event until it is cleared by using <a class="el" href="group__event.html#ga7a4a24eb162059737f44e7520a0c1a54" title="Remove the head event on a collector.">pn_collector_pop</a>. The pointer return by this operation will be valid until <a class="el" href="group__event.html#ga7a4a24eb162059737f44e7520a0c1a54" title="Remove the head event on a collector.">pn_collector_pop</a> is invoked or <a class="el" href="group__event.html#ga2312e5cb8fc9e4bff94d7ab9d4b15c08" title="Free a collector.">pn_collector_free</a> is called, whichever happens sooner.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">collector</td><td>a collector object </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a pointer to the head event contained in the collector </dd></dl>
</div>
</div>
<a id="ga7a4a24eb162059737f44e7520a0c1a54"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7a4a24eb162059737f44e7520a0c1a54">&#9670;&nbsp;</a></span>pn_collector_pop()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool pn_collector_pop </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__event.html#ga905cdecedb8020bc28e648e43348b5d1">pn_collector_t</a> *&#160;</td>
<td class="paramname"><em>collector</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Remove the head event on a collector. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">collector</td><td>a collector object </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if the event was popped, false if the collector is empty </dd></dl>
</div>
</div>
<a id="ga554801c4fb87ae7518772a4492f307e0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga554801c4fb87ae7518772a4492f307e0">&#9670;&nbsp;</a></span>pn_collector_next()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__event.html#ga87f3028b4888632bbd56fb71ac737ae8">pn_event_t</a>* pn_collector_next </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__event.html#ga905cdecedb8020bc28e648e43348b5d1">pn_collector_t</a> *&#160;</td>
<td class="paramname"><em>collector</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Pop and return the head event, returns NULL if the collector is empty. </p>
<p>The returned pointer is valid till the next call of <a class="el" href="group__event.html#ga554801c4fb87ae7518772a4492f307e0" title="Pop and return the head event, returns NULL if the collector is empty.">pn_collector_next()</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">collector</td><td>a collector object </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the next event. </dd></dl>
</div>
</div>
<a id="ga9304e9c2e85cb5de23c81ae7cd8a9077"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga9304e9c2e85cb5de23c81ae7cd8a9077">&#9670;&nbsp;</a></span>pn_collector_prev()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__event.html#ga87f3028b4888632bbd56fb71ac737ae8">pn_event_t</a>* pn_collector_prev </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__event.html#ga905cdecedb8020bc28e648e43348b5d1">pn_collector_t</a> *&#160;</td>
<td class="paramname"><em>collector</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Return the same pointer as the most recent call to <a class="el" href="group__event.html#ga554801c4fb87ae7518772a4492f307e0" title="Pop and return the head event, returns NULL if the collector is empty.">pn_collector_next()</a>. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">collector</td><td>a collector object </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a pointer to the event returned by previous call to <a class="el" href="group__event.html#ga554801c4fb87ae7518772a4492f307e0" title="Pop and return the head event, returns NULL if the collector is empty.">pn_collector_next()</a> </dd></dl>
</div>
</div>
<a id="gabf731be5b6c0d15173fd4d9a3b132121"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gabf731be5b6c0d15173fd4d9a3b132121">&#9670;&nbsp;</a></span>pn_collector_more()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool pn_collector_more </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__event.html#ga905cdecedb8020bc28e648e43348b5d1">pn_collector_t</a> *&#160;</td>
<td class="paramname"><em>collector</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Check if there are more events after the current head event. </p>
<p>If this returns true, then <a class="el" href="group__event.html#ga672d5ec725787815cae9b7bc739cd6f9" title="Access the head event contained by a collector.">pn_collector_peek()</a> will return an event even after <a class="el" href="group__event.html#ga7a4a24eb162059737f44e7520a0c1a54" title="Remove the head event on a collector.">pn_collector_pop()</a> is called.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">collector</td><td>a collector object </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if the collector has more than the current event </dd></dl>
</div>
</div>
<a id="gacaea54ca51885933b4987c131a3d1b0d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gacaea54ca51885933b4987c131a3d1b0d">&#9670;&nbsp;</a></span>pn_event_type()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__event.html#ga4876e2eed24a4d4e4c52b99842103cda">pn_event_type_t</a> pn_event_type </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__event.html#ga87f3028b4888632bbd56fb71ac737ae8">pn_event_t</a> *&#160;</td>
<td class="paramname"><em>event</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the type of an event. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">event</td><td>an event object </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the type of the event </dd></dl>
<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="broker_8c-example.html#a24">broker.c</a>, <a class="el" href="direct_8c-example.html#a5">direct.c</a>, <a class="el" href="receive_8c-example.html#a3">receive.c</a>, and <a class="el" href="send_8c-example.html#a3">send.c</a>.</dd>
</dl>
</div>
</div>
<a id="ga1f3f0a01db5cce634c5d0ccd5d9b50be"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1f3f0a01db5cce634c5d0ccd5d9b50be">&#9670;&nbsp;</a></span>pn_event_class()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const pn_class_t* pn_event_class </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__event.html#ga87f3028b4888632bbd56fb71ac737ae8">pn_event_t</a> *&#160;</td>
<td class="paramname"><em>event</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the class associated with the event context. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">event</td><td>an event object </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the class associated with the event context </dd></dl>
</div>
</div>
<a id="ga4f2c6a0fdf86a43e7e9874fcd2ccaf52"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga4f2c6a0fdf86a43e7e9874fcd2ccaf52">&#9670;&nbsp;</a></span>pn_event_connection()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__connection.html#ga886351d81ff3a977a284a206526c5aff">pn_connection_t</a>* pn_event_connection </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__event.html#ga87f3028b4888632bbd56fb71ac737ae8">pn_event_t</a> *&#160;</td>
<td class="paramname"><em>event</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the connection associated with an event. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">event</td><td>an event object </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the connection associated with the event (or NULL) </dd></dl>
<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="broker_8c-example.html#a27">broker.c</a>, <a class="el" href="direct_8c-example.html#a8">direct.c</a>, <a class="el" href="receive_8c-example.html#a7">receive.c</a>, and <a class="el" href="send_8c-example.html#a7">send.c</a>.</dd>
</dl>
</div>
</div>
<a id="gaf4af0bfbe0e0a8e432f0e803df14ecb5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf4af0bfbe0e0a8e432f0e803df14ecb5">&#9670;&nbsp;</a></span>pn_event_session()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__session.html#ga38ccb93b8f5c2892adafce5d5f0fbcd9">pn_session_t</a>* pn_event_session </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__event.html#ga87f3028b4888632bbd56fb71ac737ae8">pn_event_t</a> *&#160;</td>
<td class="paramname"><em>event</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the session associated with an event. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">event</td><td>an event object </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the session associated with the event (or NULL) </dd></dl>
<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="broker_8c-example.html#a51">broker.c</a>, <a class="el" href="direct_8c-example.html#a69">direct.c</a>, <a class="el" href="receive_8c-example.html#a51">receive.c</a>, and <a class="el" href="send_8c-example.html#a45">send.c</a>.</dd>
</dl>
</div>
</div>
<a id="ga75f230ef55f03a1f943df79279f8d111"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga75f230ef55f03a1f943df79279f8d111">&#9670;&nbsp;</a></span>pn_event_link()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__link.html#ga89dad3aa7934329a7ff467c636687bc0">pn_link_t</a>* pn_event_link </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__event.html#ga87f3028b4888632bbd56fb71ac737ae8">pn_event_t</a> *&#160;</td>
<td class="paramname"><em>event</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the link associated with an event. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">event</td><td>an event object </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the link associated with the event (or NULL) </dd></dl>
<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="broker_8c-example.html#a53">broker.c</a>, <a class="el" href="direct_8c-example.html#a26">direct.c</a>, <a class="el" href="receive_8c-example.html#a55">receive.c</a>, and <a class="el" href="send_8c-example.html#a30">send.c</a>.</dd>
</dl>
</div>
</div>
<a id="ga10fa6f53bdabe0851ebb2d8a0bf6a52c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga10fa6f53bdabe0851ebb2d8a0bf6a52c">&#9670;&nbsp;</a></span>pn_event_delivery()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__delivery.html#gacdfce854066c0a4ff4db9f9a0478f340">pn_delivery_t</a>* pn_event_delivery </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__event.html#ga87f3028b4888632bbd56fb71ac737ae8">pn_event_t</a> *&#160;</td>
<td class="paramname"><em>event</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the delivery associated with an event. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">event</td><td>an event object </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the delivery associated with the event (or NULL) </dd></dl>
<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="broker_8c-example.html#a63">broker.c</a>, <a class="el" href="direct_8c-example.html#a30">direct.c</a>, <a class="el" href="receive_8c-example.html#a26">receive.c</a>, and <a class="el" href="send_8c-example.html#a35">send.c</a>.</dd>
</dl>
</div>
</div>
<a id="ga14525ae84870388141898bbf57f2b151"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga14525ae84870388141898bbf57f2b151">&#9670;&nbsp;</a></span>pn_event_transport()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a>* pn_event_transport </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__event.html#ga87f3028b4888632bbd56fb71ac737ae8">pn_event_t</a> *&#160;</td>
<td class="paramname"><em>event</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the transport associated with an event. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">event</td><td>an event object </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the transport associated with the event (or NULL) </dd></dl>
<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="broker_8c-example.html#a79">broker.c</a>, <a class="el" href="direct_8c-example.html#a61">direct.c</a>, <a class="el" href="receive_8c-example.html#a46">receive.c</a>, and <a class="el" href="send_8c-example.html#a40">send.c</a>.</dd>
</dl>
</div>
</div>
<a id="ga5989cf0c187bd12899596fe06931476e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5989cf0c187bd12899596fe06931476e">&#9670;&nbsp;</a></span>pn_event_attachments()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">pn_record_t* pn_event_attachments </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__event.html#ga87f3028b4888632bbd56fb71ac737ae8">pn_event_t</a> *&#160;</td>
<td class="paramname"><em>event</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get any attachments associated with an event. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">event</td><td>an event object </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the record holding the attachments </dd></dl>
</div>
</div>
<a id="gae7beda7f373660b889b61412ce429028"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae7beda7f373660b889b61412ce429028">&#9670;&nbsp;</a></span>pn_event_condition()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct <a class="el" href="group__condition.html#ga11eb7db7d2c205169fe3d47c996a95a5">pn_condition_t</a>* pn_event_condition </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__event.html#ga87f3028b4888632bbd56fb71ac737ae8">pn_event_t</a> *&#160;</td>
<td class="paramname"><em>event</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>If the event context object has a condition and the condition is set return it, otherwise return NULL. </p>
<p>If the event context object has remote and local conditions, try the remote condition first, then the local. </p>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by <a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20 </li>
</ul>
</div>
</body>
</html>