http://git-wip-us.apache.org/repos/asf/qpid-site/blob/ba8436ae/content/releases/qpid-proton-0.24.0/proton/c/api/group__event.html ---------------------------------------------------------------------- diff --git a/content/releases/qpid-proton-0.24.0/proton/c/api/group__event.html b/content/releases/qpid-proton-0.24.0/proton/c/api/group__event.html new file mode 100755 index 0000000..cf3c1a6 --- /dev/null +++ b/content/releases/qpid-proton-0.24.0/proton/c/api/group__event.html @@ -0,0 +1,1051 @@ +<!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.13"/> +<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> +<script type="text/javascript"> + $(document).ready(initResizable); +</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"> + $(document).ready(function() { init_search(); }); +</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 +  <span id="projectnumber">0.24.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.13 --> +<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__event.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)"> +</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> | +<a href="#enum-members">Enumerations</a> | +<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> </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"> </td><td class="mdescRight">Notification of a state change in the protocol engine. <a href="#ga87f3028b4888632bbd56fb71ac737ae8">More...</a><br /></td></tr> +<tr class="separator:ga87f3028b4888632bbd56fb71ac737ae8"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ga6bc581dfeaa8e8d46d07d37229d565c9"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="group__event.html#ga6bc581dfeaa8e8d46d07d37229d565c9">pn_event_batch_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__event.html#ga6bc581dfeaa8e8d46d07d37229d565c9">pn_event_batch_t</a></td></tr> +<tr class="memdesc:ga6bc581dfeaa8e8d46d07d37229d565c9"><td class="mdescLeft"> </td><td class="mdescRight"><b>Unsettled API</b> - A batch of events that must be handled in sequence. <a href="#ga6bc581dfeaa8e8d46d07d37229d565c9">More...</a><br /></td></tr> +<tr class="separator:ga6bc581dfeaa8e8d46d07d37229d565c9"><td class="memSeparator" colspan="2"> </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> </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"> </td><td class="mdescRight">An event collector. <a href="#ga905cdecedb8020bc28e648e43348b5d1">More...</a><br /></td></tr> +<tr class="separator:ga905cdecedb8020bc28e648e43348b5d1"><td class="memSeparator" colspan="2"> </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  </td><td class="memItemRight" valign="bottom"><a class="el" href="group__event.html#ga4876e2eed24a4d4e4c52b99842103cda">pn_event_type_t</a> { <br /> +  <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 /> +  <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 /> +  <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 /> +  <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 /> +  <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 /> +  <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 /> +  <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 /> +  <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 /> +  <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 /> +  <b>PN_SELECTABLE_UPDATED</b>, +<b>PN_SELECTABLE_READABLE</b>, +<b>PN_SELECTABLE_WRITABLE</b>, +<b>PN_SELECTABLE_ERROR</b>, +<br /> +  <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 /> +  <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 /> +  <a class="el" href="group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaa6e25f00110ab278fd8b34fee00bd5fd7">PN_LISTENER_OPEN</a> +<br /> + }<tr class="memdesc:ga4876e2eed24a4d4e4c52b99842103cda"><td class="mdescLeft"> </td><td class="mdescRight">An event type. <a href="group__event.html#ga4876e2eed24a4d4e4c52b99842103cda">More...</a><br /></td></tr> +</td></tr> +<tr class="separator:ga4876e2eed24a4d4e4c52b99842103cda"><td class="memSeparator" colspan="2"> </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 * </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"> </td><td class="mdescRight">Get a human readable name for an event type. <a href="#ga3a85c046c11ce692c23b9566b022d54b">More...</a><br /></td></tr> +<tr class="separator:ga3a85c046c11ce692c23b9566b022d54b"><td class="memSeparator" colspan="2"> </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> * </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"> </td><td class="mdescRight">Construct a collector. <a href="#ga7c7754316e257d4ce7660730953000ac">More...</a><br /></td></tr> +<tr class="separator:ga7c7754316e257d4ce7660730953000ac"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ga2312e5cb8fc9e4bff94d7ab9d4b15c08"><td class="memItemLeft" align="right" valign="top">void </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"> </td><td class="mdescRight">Free a collector. <a href="#ga2312e5cb8fc9e4bff94d7ab9d4b15c08">More...</a><br /></td></tr> +<tr class="separator:ga2312e5cb8fc9e4bff94d7ab9d4b15c08"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ga04e6edffd24e5c865ac1f6b3529469e4"><td class="memItemLeft" align="right" valign="top">void </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"> </td><td class="mdescRight">Release a collector. <a href="#ga04e6edffd24e5c865ac1f6b3529469e4">More...</a><br /></td></tr> +<tr class="separator:ga04e6edffd24e5c865ac1f6b3529469e4"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:gadab22668a28ff1af0d8ef82df516f94f"><td class="memItemLeft" align="right" valign="top">void </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"> </td><td class="mdescRight">Drain a collector: remove and discard all events. <a href="#gadab22668a28ff1af0d8ef82df516f94f">More...</a><br /></td></tr> +<tr class="separator:gadab22668a28ff1af0d8ef82df516f94f"><td class="memSeparator" colspan="2"> </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> * </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"> </td><td class="mdescRight">Place a new event on a collector. <a href="#ga1857c64d3f8549209b0b8ec91bf81e89">More...</a><br /></td></tr> +<tr class="separator:ga1857c64d3f8549209b0b8ec91bf81e89"><td class="memSeparator" colspan="2"> </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> * </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"> </td><td class="mdescRight">Access the head event contained by a collector. <a href="#ga672d5ec725787815cae9b7bc739cd6f9">More...</a><br /></td></tr> +<tr class="separator:ga672d5ec725787815cae9b7bc739cd6f9"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ga7a4a24eb162059737f44e7520a0c1a54"><td class="memItemLeft" align="right" valign="top">bool </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"> </td><td class="mdescRight">Remove the head event on a collector. <a href="#ga7a4a24eb162059737f44e7520a0c1a54">More...</a><br /></td></tr> +<tr class="separator:ga7a4a24eb162059737f44e7520a0c1a54"><td class="memSeparator" colspan="2"> </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> * </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"> </td><td class="mdescRight">Pop and return the head event, returns NULL if the collector is empty. <a href="#ga554801c4fb87ae7518772a4492f307e0">More...</a><br /></td></tr> +<tr class="separator:ga554801c4fb87ae7518772a4492f307e0"><td class="memSeparator" colspan="2"> </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> * </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"> </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="#ga9304e9c2e85cb5de23c81ae7cd8a9077">More...</a><br /></td></tr> +<tr class="separator:ga9304e9c2e85cb5de23c81ae7cd8a9077"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:gabf731be5b6c0d15173fd4d9a3b132121"><td class="memItemLeft" align="right" valign="top">bool </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"> </td><td class="mdescRight">Check if there are more events after the current head event. <a href="#gabf731be5b6c0d15173fd4d9a3b132121">More...</a><br /></td></tr> +<tr class="separator:gabf731be5b6c0d15173fd4d9a3b132121"><td class="memSeparator" colspan="2"> </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> </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"> </td><td class="mdescRight">Get the type of an event. <a href="#gacaea54ca51885933b4987c131a3d1b0d">More...</a><br /></td></tr> +<tr class="separator:gacaea54ca51885933b4987c131a3d1b0d"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ga1f3f0a01db5cce634c5d0ccd5d9b50be"><td class="memItemLeft" align="right" valign="top">const pn_class_t * </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"> </td><td class="mdescRight">Get the class associated with the event context. <a href="#ga1f3f0a01db5cce634c5d0ccd5d9b50be">More...</a><br /></td></tr> +<tr class="separator:ga1f3f0a01db5cce634c5d0ccd5d9b50be"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:gaecda1dea7e3a01c4ba246043ea438b19"><td class="memItemLeft" align="right" valign="top"><a id="gaecda1dea7e3a01c4ba246043ea438b19"></a> +void * </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"> </td><td class="mdescRight">Get the context associated with an event. <br /></td></tr> +<tr class="separator:gaecda1dea7e3a01c4ba246043ea438b19"><td class="memSeparator" colspan="2"> </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> * </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"> </td><td class="mdescRight">Get the connection associated with an event. <a href="#ga4f2c6a0fdf86a43e7e9874fcd2ccaf52">More...</a><br /></td></tr> +<tr class="separator:ga4f2c6a0fdf86a43e7e9874fcd2ccaf52"><td class="memSeparator" colspan="2"> </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> * </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"> </td><td class="mdescRight">Get the session associated with an event. <a href="#gaf4af0bfbe0e0a8e432f0e803df14ecb5">More...</a><br /></td></tr> +<tr class="separator:gaf4af0bfbe0e0a8e432f0e803df14ecb5"><td class="memSeparator" colspan="2"> </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> * </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"> </td><td class="mdescRight">Get the link associated with an event. <a href="#ga75f230ef55f03a1f943df79279f8d111">More...</a><br /></td></tr> +<tr class="separator:ga75f230ef55f03a1f943df79279f8d111"><td class="memSeparator" colspan="2"> </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> * </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"> </td><td class="mdescRight">Get the delivery associated with an event. <a href="#ga10fa6f53bdabe0851ebb2d8a0bf6a52c">More...</a><br /></td></tr> +<tr class="separator:ga10fa6f53bdabe0851ebb2d8a0bf6a52c"><td class="memSeparator" colspan="2"> </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> * </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"> </td><td class="mdescRight">Get the transport associated with an event. <a href="#ga14525ae84870388141898bbf57f2b151">More...</a><br /></td></tr> +<tr class="separator:ga14525ae84870388141898bbf57f2b151"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ga5989cf0c187bd12899596fe06931476e"><td class="memItemLeft" align="right" valign="top">pn_record_t * </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"> </td><td class="mdescRight">Get any attachments associated with an event. <a href="#ga5989cf0c187bd12899596fe06931476e">More...</a><br /></td></tr> +<tr class="separator:ga5989cf0c187bd12899596fe06931476e"><td class="memSeparator" colspan="2"> </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> * </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"> </td><td class="mdescRight">If the event context object has a condition and the condition is set return it, otherwise return NULL. <a href="#gae7beda7f373660b889b61412ce429028">More...</a><br /></td></tr> +<tr class="separator:gae7beda7f373660b889b61412ce429028"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:gac3fbf151357d3101ac294cb675348c76"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__event.html#ga87f3028b4888632bbd56fb71ac737ae8">pn_event_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__event.html#gac3fbf151357d3101ac294cb675348c76">pn_event_batch_next</a> (<a class="el" href="group__event.html#ga6bc581dfeaa8e8d46d07d37229d565c9">pn_event_batch_t</a> *batch)</td></tr> +<tr class="memdesc:gac3fbf151357d3101ac294cb675348c76"><td class="mdescLeft"> </td><td class="mdescRight"><b>Unsettled API</b> - Remove the next event from the batch and return it. <a href="#gac3fbf151357d3101ac294cb675348c76">More...</a><br /></td></tr> +<tr class="separator:gac3fbf151357d3101ac294cb675348c76"><td class="memSeparator" colspan="2"> </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">◆ </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="ga6bc581dfeaa8e8d46d07d37229d565c9"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ga6bc581dfeaa8e8d46d07d37229d565c9">◆ </a></span>pn_event_batch_t</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">typedef struct <a class="el" href="group__event.html#ga6bc581dfeaa8e8d46d07d37229d565c9">pn_event_batch_t</a> <a class="el" href="group__event.html#ga6bc581dfeaa8e8d46d07d37229d565c9">pn_event_batch_t</a></td> + </tr> + </table> +</div><div class="memdoc"> + +<p><b>Unsettled API</b> - A batch of events that must be handled in sequence. </p> +<p>Call <a class="el" href="group__event.html#gac3fbf151357d3101ac294cb675348c76" title="Unsettled API - Remove the next event from the batch and return it. ">pn_event_batch_next()</a> in a loop until it returns NULL to extract the events. </p> + +</div> +</div> +<a id="ga905cdecedb8020bc28e648e43348b5d1"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ga905cdecedb8020bc28e648e43348b5d1">◆ </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">◆ </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 </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 </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 </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 </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 </td><td class="fielddoc"><p>A timer event has occurred. </p> +</td></tr> +<tr><td class="fieldname"><a id="gga4876e2eed24a4d4e4c52b99842103cdaa182e571a0310028514bce66a41063a6e"></a>PN_CONNECTION_INIT </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 </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="Binds the transport to an AMQP connection. ">pn_transport_bind()</a> operation is invoked. </p> +</td></tr> +<tr><td class="fieldname"><a id="gga4876e2eed24a4d4e4c52b99842103cdaac683ba544c12cbf36a3d3015ae818498"></a>PN_CONNECTION_UNBOUND </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="Unbinds a transport from its AMQP connection. ">pn_transport_unbind()</a> operation is invoked. </p> +</td></tr> +<tr><td class="fieldname"><a id="gga4876e2eed24a4d4e4c52b99842103cdaa5d285c46982df224c3e4733b05c3540a"></a>PN_CONNECTION_LOCAL_OPEN </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 </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 </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 </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 </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 </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 </td><td class="fielddoc"><p>The local session endpoint has been opened. </p> +<p>Events of this type point ot the relevant session. </p> +</td></tr> +<tr><td class="fieldname"><a id="gga4876e2eed24a4d4e4c52b99842103cdaaf67df046bea45df34aea863d9541e806"></a>PN_SESSION_REMOTE_OPEN </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 </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 </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 </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 </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 </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 </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 </td><td class="fielddoc"><p>The local link endpoint has been closed. </p> +<p>Events of this type point ot the relevant link. </p> +</td></tr> +<tr><td class="fieldname"><a id="gga4876e2eed24a4d4e4c52b99842103cdaa1153f0108be071c31210dd1cd3e40a1f"></a>PN_LINK_REMOTE_CLOSE </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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> +</table> + +</div> +</div> +<h2 class="groupheader">Function Documentation</h2> +<a id="ga3a85c046c11ce692c23b9566b022d54b"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ga3a85c046c11ce692c23b9566b022d54b">◆ </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> </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> + +</div> +</div> +<a id="ga7c7754316e257d4ce7660730953000ac"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ga7c7754316e257d4ce7660730953000ac">◆ </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 </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">◆ </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> * </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">◆ </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> * </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">◆ </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> * </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">◆ </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> * </td> + <td class="paramname"><em>collector</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">const pn_class_t * </td> + <td class="paramname"><em>clazz</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">void * </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> </td> + <td class="paramname"><em>type</em> </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">◆ </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> * </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">◆ </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> * </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">◆ </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> * </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">◆ </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> * </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">◆ </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> * </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">◆ </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> * </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> + +</div> +</div> +<a id="ga1f3f0a01db5cce634c5d0ccd5d9b50be"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ga1f3f0a01db5cce634c5d0ccd5d9b50be">◆ </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> * </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">◆ </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> * </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> + +</div> +</div> +<a id="gaf4af0bfbe0e0a8e432f0e803df14ecb5"></a> +<h2 class="memtitle"><span class="permalink"><a href="#gaf4af0bfbe0e0a8e432f0e803df14ecb5">◆ </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> * </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> + +</div> +</div> +<a id="ga75f230ef55f03a1f943df79279f8d111"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ga75f230ef55f03a1f943df79279f8d111">◆ </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> * </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> + +</div> +</div> +<a id="ga10fa6f53bdabe0851ebb2d8a0bf6a52c"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ga10fa6f53bdabe0851ebb2d8a0bf6a52c">◆ </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> * </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> + +</div> +</div> +<a id="ga14525ae84870388141898bbf57f2b151"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ga14525ae84870388141898bbf57f2b151">◆ </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> * </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> + +</div> +</div> +<a id="ga5989cf0c187bd12899596fe06931476e"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ga5989cf0c187bd12899596fe06931476e">◆ </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> * </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">◆ </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> * </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> +<a id="gac3fbf151357d3101ac294cb675348c76"></a> +<h2 class="memtitle"><span class="permalink"><a href="#gac3fbf151357d3101ac294cb675348c76">◆ </a></span>pn_event_batch_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_event_batch_next </td> + <td>(</td> + <td class="paramtype"><a class="el" href="group__event.html#ga6bc581dfeaa8e8d46d07d37229d565c9">pn_event_batch_t</a> * </td> + <td class="paramname"><em>batch</em></td><td>)</td> + <td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p><b>Unsettled API</b> - Remove the next event from the batch and return it. </p> +<p>NULL means the batch is empty. The returned event pointer is valid until <a class="el" href="group__event.html#gac3fbf151357d3101ac294cb675348c76" title="Unsettled API - Remove the next event from the batch and return it. ">pn_event_batch_next()</a> is called again on the same batch. </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.png" alt="doxygen"/></a> 1.8.13 </li> + </ul> +</div> +</body> +</html>
http://git-wip-us.apache.org/repos/asf/qpid-site/blob/ba8436ae/content/releases/qpid-proton-0.24.0/proton/c/api/group__event.js ---------------------------------------------------------------------- diff --git a/content/releases/qpid-proton-0.24.0/proton/c/api/group__event.js b/content/releases/qpid-proton-0.24.0/proton/c/api/group__event.js new file mode 100755 index 0000000..dc30664 --- /dev/null +++ b/content/releases/qpid-proton-0.24.0/proton/c/api/group__event.js @@ -0,0 +1,72 @@ +var group__event = +[ + [ "pn_event_t", "group__event.html#ga87f3028b4888632bbd56fb71ac737ae8", null ], + [ "pn_event_batch_t", "group__event.html#ga6bc581dfeaa8e8d46d07d37229d565c9", null ], + [ "pn_collector_t", "group__event.html#ga905cdecedb8020bc28e648e43348b5d1", null ], + [ "pn_event_type_t", "group__event.html#ga4876e2eed24a4d4e4c52b99842103cda", [ + [ "PN_EVENT_NONE", "group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaa1f5eec218463ae8e4f962fcc8eb2e657", null ], + [ "PN_REACTOR_INIT", "group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaa95e9355638399ee20a697f3f494ab7db", null ], + [ "PN_REACTOR_QUIESCED", "group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaa5548649935a6aab6e6547c9036f685ff", null ], + [ "PN_REACTOR_FINAL", "group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaad164b6566815866ed2c1d981e02bacb0", null ], + [ "PN_TIMER_TASK", "group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaa13fdcb0402f982fd366e58f165f376c9", null ], + [ "PN_CONNECTION_INIT", "group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaa182e571a0310028514bce66a41063a6e", null ], + [ "PN_CONNECTION_BOUND", "group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaaf61aa79ca82b3a8f5017dc735843fae5", null ], + [ "PN_CONNECTION_UNBOUND", "group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaac683ba544c12cbf36a3d3015ae818498", null ], + [ "PN_CONNECTION_LOCAL_OPEN", "group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaa5d285c46982df224c3e4733b05c3540a", null ], + [ "PN_CONNECTION_REMOTE_OPEN", "group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaad48bce685db553740fa71cc36473b5cc", null ], + [ "PN_CONNECTION_LOCAL_CLOSE", "group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaac8567664d41057ae94d23776f5ecdb86", null ], + [ "PN_CONNECTION_REMOTE_CLOSE", "group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaa1252529cf9f03d214c9b4fea5cf11b2f", null ], + [ "PN_CONNECTION_FINAL", "group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaa6c7d6b4e5f1e4f47fa80dae1ad686e0b", null ], + [ "PN_SESSION_INIT", "group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaaf5b92fb6331bfe63786db3950073147f", null ], + [ "PN_SESSION_LOCAL_OPEN", "group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaa0862b8e3613b7a2b5a08a779474df424", null ], + [ "PN_SESSION_REMOTE_OPEN", "group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaaf67df046bea45df34aea863d9541e806", null ], + [ "PN_SESSION_LOCAL_CLOSE", "group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaa5d3fe92cc7ef0e8712b038ecfbd05029", null ], + [ "PN_SESSION_REMOTE_CLOSE", "group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaa3410075b825c59b8f4efdcddf5a5b135", null ], + [ "PN_SESSION_FINAL", "group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaaf5eb59f4d99ef5a8efd48be64a2bd8f8", null ], + [ "PN_LINK_INIT", "group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaa2f9e46bded95d0233cc74a71fdc75a2c", null ], + [ "PN_LINK_LOCAL_OPEN", "group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaa5ddecd4b0ea72895413fbf1b5cb41f65", null ], + [ "PN_LINK_REMOTE_OPEN", "group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaa45edb44a6cc7908b5032944e08925307", null ], + [ "PN_LINK_LOCAL_CLOSE", "group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaa3b27f8d1c91cc05b47bed1905d42373a", null ], + [ "PN_LINK_REMOTE_CLOSE", "group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaa1153f0108be071c31210dd1cd3e40a1f", null ], + [ "PN_LINK_LOCAL_DETACH", "group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaa838b909cce908f5769d043ba3e73e73e", null ], + [ "PN_LINK_REMOTE_DETACH", "group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaa5a84b68a2bd5ca705187381a785121d2", null ], + [ "PN_LINK_FLOW", "group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaa4eaecc54c07cdc9b0df7b1d536a7dc3f", null ], + [ "PN_LINK_FINAL", "group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaaeacdc45bfe24b2a9da2aeed7b6effac5", null ], + [ "PN_DELIVERY", "group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaa70bbfc163d85732b5652dc70fb3330fe", null ], + [ "PN_TRANSPORT", "group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaad7329eb7a015f62ce70719ea20abab76", null ], + [ "PN_TRANSPORT_AUTHENTICATED", "group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaaa205271edd307e5d33bd8287a760ad28", null ], + [ "PN_TRANSPORT_ERROR", "group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaa7c7278de5bcbf3b42b3e692ca21f6c5a", null ], + [ "PN_TRANSPORT_HEAD_CLOSED", "group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaa98facd13835b4a1d8e878d6f13c10a51", null ], + [ "PN_TRANSPORT_TAIL_CLOSED", "group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaa205d07df6cd3d07b37a89f046b1184db", null ], + [ "PN_TRANSPORT_CLOSED", "group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaa1ca722ce3c0b2c13a33636cded8430ba", null ], + [ "PN_CONNECTION_WAKE", "group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaa28a2bfee806bbc1fe31499c8eec39db0", null ], + [ "PN_LISTENER_ACCEPT", "group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaa0602b15957883e7d00ccdff4abca992c", null ], + [ "PN_LISTENER_CLOSE", "group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaad5920df168cd28daaf253cad789d8aca", null ], + [ "PN_PROACTOR_INTERRUPT", "group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaaee05826a80e94b5b86c4544e4715f499", null ], + [ "PN_PROACTOR_TIMEOUT", "group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaa4afa8c2da61f4c665c669fbe37b1c5fe", null ], + [ "PN_PROACTOR_INACTIVE", "group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaa894e93f167ef39e28a07c9cdf6b1181b", null ], + [ "PN_LISTENER_OPEN", "group__event.html#gga4876e2eed24a4d4e4c52b99842103cdaa6e25f00110ab278fd8b34fee00bd5fd7", null ] + ] ], + [ "pn_event_type_name", "group__event.html#ga3a85c046c11ce692c23b9566b022d54b", null ], + [ "pn_collector", "group__event.html#ga7c7754316e257d4ce7660730953000ac", null ], + [ "pn_collector_free", "group__event.html#ga2312e5cb8fc9e4bff94d7ab9d4b15c08", null ], + [ "pn_collector_release", "group__event.html#ga04e6edffd24e5c865ac1f6b3529469e4", null ], + [ "pn_collector_drain", "group__event.html#gadab22668a28ff1af0d8ef82df516f94f", null ], + [ "pn_collector_put", "group__event.html#ga1857c64d3f8549209b0b8ec91bf81e89", null ], + [ "pn_collector_peek", "group__event.html#ga672d5ec725787815cae9b7bc739cd6f9", null ], + [ "pn_collector_pop", "group__event.html#ga7a4a24eb162059737f44e7520a0c1a54", null ], + [ "pn_collector_next", "group__event.html#ga554801c4fb87ae7518772a4492f307e0", null ], + [ "pn_collector_prev", "group__event.html#ga9304e9c2e85cb5de23c81ae7cd8a9077", null ], + [ "pn_collector_more", "group__event.html#gabf731be5b6c0d15173fd4d9a3b132121", null ], + [ "pn_event_type", "group__event.html#gacaea54ca51885933b4987c131a3d1b0d", null ], + [ "pn_event_class", "group__event.html#ga1f3f0a01db5cce634c5d0ccd5d9b50be", null ], + [ "pn_event_context", "group__event.html#gaecda1dea7e3a01c4ba246043ea438b19", null ], + [ "pn_event_connection", "group__event.html#ga4f2c6a0fdf86a43e7e9874fcd2ccaf52", null ], + [ "pn_event_session", "group__event.html#gaf4af0bfbe0e0a8e432f0e803df14ecb5", null ], + [ "pn_event_link", "group__event.html#ga75f230ef55f03a1f943df79279f8d111", null ], + [ "pn_event_delivery", "group__event.html#ga10fa6f53bdabe0851ebb2d8a0bf6a52c", null ], + [ "pn_event_transport", "group__event.html#ga14525ae84870388141898bbf57f2b151", null ], + [ "pn_event_attachments", "group__event.html#ga5989cf0c187bd12899596fe06931476e", null ], + [ "pn_event_condition", "group__event.html#gae7beda7f373660b889b61412ce429028", null ], + [ "pn_event_batch_next", "group__event.html#gac3fbf151357d3101ac294cb675348c76", null ] +]; \ No newline at end of file --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@qpid.apache.org For additional commands, e-mail: commits-h...@qpid.apache.org