docs
[m6w6/ext-raphf] / html / php__raphf_8h.html
diff --git a/html/php__raphf_8h.html b/html/php__raphf_8h.html
new file mode 100644 (file)
index 0000000..82818d0
--- /dev/null
@@ -0,0 +1,1207 @@
+<!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.5"/>
+<title>Resource and persistent handle factory API: php_raphf.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectlogo"><img alt="Logo" src="raphf.png"/></td>
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Resource and persistent handle factory API
+   </div>
+   <div id="projectbrief">A facility to manage possibly persistent resources with a comprehensible API.  Provides simliar functionality like the zend_list API, but with more flexiblity and freedom.</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.5 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <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>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+</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('php__raphf_8h.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a></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="#nested-classes">Data Structures</a> &#124;
+<a href="#typedef-members">Typedefs</a> &#124;
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">php_raphf.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="php__raphf_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:structphp__resource__factory__ops"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php__raphf_8h.html#structphp__resource__factory__ops">php_resource_factory_ops</a></td></tr>
+<tr class="memdesc:structphp__resource__factory__ops"><td class="mdescLeft">&#160;</td><td class="mdescRight">The resource ops consisting of a ctor, a copy ctor and a dtor.  <a href="php__raphf_8h.html#structphp__resource__factory__ops">More...</a><br/></td></tr>
+<tr class="separator:structphp__resource__factory__ops"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structphp__resource__factory.html">php_resource_factory</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The resource factory.  <a href="structphp__resource__factory.html#details">More...</a><br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:structphp__persistent__handle__list"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php__raphf_8h.html#structphp__persistent__handle__list">php_persistent_handle_list</a></td></tr>
+<tr class="memdesc:structphp__persistent__handle__list"><td class="mdescLeft">&#160;</td><td class="mdescRight">Persistent handles storage.  <a href="php__raphf_8h.html#structphp__persistent__handle__list">More...</a><br/></td></tr>
+<tr class="separator:structphp__persistent__handle__list"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:structphp__persistent__handle__provider"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php__raphf_8h.html#structphp__persistent__handle__provider">php_persistent_handle_provider</a></td></tr>
+<tr class="memdesc:structphp__persistent__handle__provider"><td class="mdescLeft">&#160;</td><td class="mdescRight">Definition of a persistent handle provider.  <a href="php__raphf_8h.html#structphp__persistent__handle__provider">More...</a><br/></td></tr>
+<tr class="separator:structphp__persistent__handle__provider"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:structphp__persistent__handle__factory"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php__raphf_8h.html#structphp__persistent__handle__factory">php_persistent_handle_factory</a></td></tr>
+<tr class="memdesc:structphp__persistent__handle__factory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Definition of a persistent handle factory.  <a href="php__raphf_8h.html#structphp__persistent__handle__factory">More...</a><br/></td></tr>
+<tr class="separator:structphp__persistent__handle__factory"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:structphp__persistent__handle__factory_8ident"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php__raphf_8h.html#structphp__persistent__handle__factory_8ident">php_persistent_handle_factory.ident</a></td></tr>
+<tr class="memdesc:structphp__persistent__handle__factory_8ident"><td class="mdescLeft">&#160;</td><td class="mdescRight">The ident for which this factory manages resources.  <a href="php__raphf_8h.html#structphp__persistent__handle__factory_8ident">More...</a><br/></td></tr>
+<tr class="separator:structphp__persistent__handle__factory_8ident"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:a1c5d952a60130d2a68c8d68db2bebbd8"><td class="memItemLeft" align="right" valign="top">typedef void *(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php__raphf_8h.html#a1c5d952a60130d2a68c8d68db2bebbd8">php_resource_factory_handle_ctor_t</a> )(void *opaque, void *init_arg)</td></tr>
+<tr class="memdesc:a1c5d952a60130d2a68c8d68db2bebbd8"><td class="mdescLeft">&#160;</td><td class="mdescRight">A resource constructor.  <a href="#a1c5d952a60130d2a68c8d68db2bebbd8">More...</a><br/></td></tr>
+<tr class="separator:a1c5d952a60130d2a68c8d68db2bebbd8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a80169af0f2adacf3ec7c7ee1dfb19f96"><td class="memItemLeft" align="right" valign="top">typedef void *(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php__raphf_8h.html#a80169af0f2adacf3ec7c7ee1dfb19f96">php_resource_factory_handle_copy_t</a> )(void *opaque, void *handle)</td></tr>
+<tr class="memdesc:a80169af0f2adacf3ec7c7ee1dfb19f96"><td class="mdescLeft">&#160;</td><td class="mdescRight">The copy constructor of a resource.  <a href="#a80169af0f2adacf3ec7c7ee1dfb19f96">More...</a><br/></td></tr>
+<tr class="separator:a80169af0f2adacf3ec7c7ee1dfb19f96"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a472a7e1909aed64d00d43ea5c112b854"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php__raphf_8h.html#a472a7e1909aed64d00d43ea5c112b854">php_resource_factory_handle_dtor_t</a> )(void *opaque, void *handle)</td></tr>
+<tr class="memdesc:a472a7e1909aed64d00d43ea5c112b854"><td class="mdescLeft">&#160;</td><td class="mdescRight">The destructor of a resource.  <a href="#a472a7e1909aed64d00d43ea5c112b854">More...</a><br/></td></tr>
+<tr class="separator:a472a7e1909aed64d00d43ea5c112b854"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a29e0d7a66e441a5265ddf2f0adbbb3af"><td class="memItemLeft" align="right" valign="top">typedef struct <br class="typebreak"/>
+<a class="el" href="php__raphf_8h.html#structphp__resource__factory__ops">php_resource_factory_ops</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php__raphf_8h.html#a29e0d7a66e441a5265ddf2f0adbbb3af">php_resource_factory_ops_t</a></td></tr>
+<tr class="memdesc:a29e0d7a66e441a5265ddf2f0adbbb3af"><td class="mdescLeft">&#160;</td><td class="mdescRight">The resource ops consisting of a ctor, a copy ctor and a dtor.  <a href="#a29e0d7a66e441a5265ddf2f0adbbb3af">More...</a><br/></td></tr>
+<tr class="separator:a29e0d7a66e441a5265ddf2f0adbbb3af"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4817c4b3d4077c48dff36376487ba8d4"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structphp__resource__factory.html">php_resource_factory</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php__raphf_8h.html#a4817c4b3d4077c48dff36376487ba8d4">php_resource_factory_t</a></td></tr>
+<tr class="memdesc:a4817c4b3d4077c48dff36376487ba8d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">The resource factory.  <a href="#a4817c4b3d4077c48dff36376487ba8d4">More...</a><br/></td></tr>
+<tr class="separator:a4817c4b3d4077c48dff36376487ba8d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a07f599598d2b87b188f39871d026c177"><td class="memItemLeft" align="right" valign="top">typedef struct <br class="typebreak"/>
+<a class="el" href="php__raphf_8h.html#structphp__persistent__handle__list">php_persistent_handle_list</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php__raphf_8h.html#a07f599598d2b87b188f39871d026c177">php_persistent_handle_list_t</a></td></tr>
+<tr class="memdesc:a07f599598d2b87b188f39871d026c177"><td class="mdescLeft">&#160;</td><td class="mdescRight">Persistent handles storage.  <a href="#a07f599598d2b87b188f39871d026c177">More...</a><br/></td></tr>
+<tr class="separator:a07f599598d2b87b188f39871d026c177"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a31f0595f4f726f762790cef844568fc4"><td class="memItemLeft" align="right" valign="top">typedef struct <br class="typebreak"/>
+<a class="el" href="php__raphf_8h.html#structphp__persistent__handle__provider">php_persistent_handle_provider</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php__raphf_8h.html#a31f0595f4f726f762790cef844568fc4">php_persistent_handle_provider_t</a></td></tr>
+<tr class="memdesc:a31f0595f4f726f762790cef844568fc4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Definition of a persistent handle provider.  <a href="#a31f0595f4f726f762790cef844568fc4">More...</a><br/></td></tr>
+<tr class="separator:a31f0595f4f726f762790cef844568fc4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a833eaa62ffcc217e5749c26c18885b17"><td class="memItemLeft" align="right" valign="top">typedef struct <br class="typebreak"/>
+<a class="el" href="php__raphf_8h.html#structphp__persistent__handle__factory">php_persistent_handle_factory</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php__raphf_8h.html#a833eaa62ffcc217e5749c26c18885b17">php_persistent_handle_factory_t</a></td></tr>
+<tr class="separator:a833eaa62ffcc217e5749c26c18885b17"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a681ca1f7c1249199b45270be60c721c6"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php__raphf_8h.html#a681ca1f7c1249199b45270be60c721c6">php_persistent_handle_wakeup_t</a> )(<a class="el" href="php__raphf_8h.html#a833eaa62ffcc217e5749c26c18885b17">php_persistent_handle_factory_t</a> *f, void **handle)</td></tr>
+<tr class="memdesc:a681ca1f7c1249199b45270be60c721c6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wakeup the persistent handle on re-acquisition.  <a href="#a681ca1f7c1249199b45270be60c721c6">More...</a><br/></td></tr>
+<tr class="separator:a681ca1f7c1249199b45270be60c721c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8f7d6389c67478ca0b99729a5dd3d305"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php__raphf_8h.html#a8f7d6389c67478ca0b99729a5dd3d305">php_persistent_handle_retire_t</a> )(<a class="el" href="php__raphf_8h.html#a833eaa62ffcc217e5749c26c18885b17">php_persistent_handle_factory_t</a> *f, void **handle)</td></tr>
+<tr class="memdesc:a8f7d6389c67478ca0b99729a5dd3d305"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retire the persistent handle on release.  <a href="#a8f7d6389c67478ca0b99729a5dd3d305">More...</a><br/></td></tr>
+<tr class="separator:a8f7d6389c67478ca0b99729a5dd3d305"><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:ad20f10c53e3f33756638da98819367f0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="php__raphf_8h.html#a4817c4b3d4077c48dff36376487ba8d4">php_resource_factory_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php__raphf_8h.html#ad20f10c53e3f33756638da98819367f0">php_resource_factory_init</a> (<a class="el" href="php__raphf_8h.html#a4817c4b3d4077c48dff36376487ba8d4">php_resource_factory_t</a> *f, <a class="el" href="php__raphf_8h.html#a29e0d7a66e441a5265ddf2f0adbbb3af">php_resource_factory_ops_t</a> *fops, void *data, void(*dtor)(void *data))</td></tr>
+<tr class="memdesc:ad20f10c53e3f33756638da98819367f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a resource factory.  <a href="#ad20f10c53e3f33756638da98819367f0">More...</a><br/></td></tr>
+<tr class="separator:ad20f10c53e3f33756638da98819367f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae8be369197905047ffbd05c0ca80f245"><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php__raphf_8h.html#ae8be369197905047ffbd05c0ca80f245">php_resource_factory_addref</a> (<a class="el" href="php__raphf_8h.html#a4817c4b3d4077c48dff36376487ba8d4">php_resource_factory_t</a> *rf)</td></tr>
+<tr class="memdesc:ae8be369197905047ffbd05c0ca80f245"><td class="mdescLeft">&#160;</td><td class="mdescRight">Increase the refcount of the resource factory.  <a href="#ae8be369197905047ffbd05c0ca80f245">More...</a><br/></td></tr>
+<tr class="separator:ae8be369197905047ffbd05c0ca80f245"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a016b8a4159e698f915ab967711696847"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php__raphf_8h.html#a016b8a4159e698f915ab967711696847">php_resource_factory_dtor</a> (<a class="el" href="php__raphf_8h.html#a4817c4b3d4077c48dff36376487ba8d4">php_resource_factory_t</a> *f)</td></tr>
+<tr class="memdesc:a016b8a4159e698f915ab967711696847"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroy the resource factory.  <a href="#a016b8a4159e698f915ab967711696847">More...</a><br/></td></tr>
+<tr class="separator:a016b8a4159e698f915ab967711696847"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7f012d685f5f7c08f50288b61232e689"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php__raphf_8h.html#a7f012d685f5f7c08f50288b61232e689">php_resource_factory_free</a> (<a class="el" href="php__raphf_8h.html#a4817c4b3d4077c48dff36376487ba8d4">php_resource_factory_t</a> **f)</td></tr>
+<tr class="memdesc:a7f012d685f5f7c08f50288b61232e689"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroy and free the resource factory.  <a href="#a7f012d685f5f7c08f50288b61232e689">More...</a><br/></td></tr>
+<tr class="separator:a7f012d685f5f7c08f50288b61232e689"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a98d02dc80dd83095b8f901954350840c"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php__raphf_8h.html#a98d02dc80dd83095b8f901954350840c">php_resource_factory_handle_ctor</a> (<a class="el" href="php__raphf_8h.html#a4817c4b3d4077c48dff36376487ba8d4">php_resource_factory_t</a> *f, void *init_arg)</td></tr>
+<tr class="memdesc:a98d02dc80dd83095b8f901954350840c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Construct a resource by the resource factory <em>f</em>.  <a href="#a98d02dc80dd83095b8f901954350840c">More...</a><br/></td></tr>
+<tr class="separator:a98d02dc80dd83095b8f901954350840c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a08db5f3698f2d0bf3d2f20dcf4e7b2b4"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php__raphf_8h.html#a08db5f3698f2d0bf3d2f20dcf4e7b2b4">php_resource_factory_handle_copy</a> (<a class="el" href="php__raphf_8h.html#a4817c4b3d4077c48dff36376487ba8d4">php_resource_factory_t</a> *f, void *handle)</td></tr>
+<tr class="memdesc:a08db5f3698f2d0bf3d2f20dcf4e7b2b4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a copy of the resource <em>handle</em>.  <a href="#a08db5f3698f2d0bf3d2f20dcf4e7b2b4">More...</a><br/></td></tr>
+<tr class="separator:a08db5f3698f2d0bf3d2f20dcf4e7b2b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a97dbb9d342f33205b92374c586676bc6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php__raphf_8h.html#a97dbb9d342f33205b92374c586676bc6">php_resource_factory_handle_dtor</a> (<a class="el" href="php__raphf_8h.html#a4817c4b3d4077c48dff36376487ba8d4">php_resource_factory_t</a> *f, void *handle)</td></tr>
+<tr class="memdesc:a97dbb9d342f33205b92374c586676bc6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroy (and free) the resource.  <a href="#a97dbb9d342f33205b92374c586676bc6">More...</a><br/></td></tr>
+<tr class="separator:a97dbb9d342f33205b92374c586676bc6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3cbbe29c8a4ed9858c921c8ee539de59"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php__raphf_8h.html#a3cbbe29c8a4ed9858c921c8ee539de59">php_persistent_handle_provide</a> (const char *name_str, size_t name_len, <a class="el" href="php__raphf_8h.html#a29e0d7a66e441a5265ddf2f0adbbb3af">php_resource_factory_ops_t</a> *fops, void *data, void(*dtor)(void *))</td></tr>
+<tr class="memdesc:a3cbbe29c8a4ed9858c921c8ee539de59"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register a persistent handle provider in MINIT.  <a href="#a3cbbe29c8a4ed9858c921c8ee539de59">More...</a><br/></td></tr>
+<tr class="separator:a3cbbe29c8a4ed9858c921c8ee539de59"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0a266874dafb69cf2b040378d4033901"><td class="memItemLeft" align="right" valign="top"><a class="el" href="php__raphf_8h.html#a833eaa62ffcc217e5749c26c18885b17">php_persistent_handle_factory_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php__raphf_8h.html#a0a266874dafb69cf2b040378d4033901">php_persistent_handle_concede</a> (<a class="el" href="php__raphf_8h.html#a833eaa62ffcc217e5749c26c18885b17">php_persistent_handle_factory_t</a> *a, const char *name_str, size_t name_len, const char *ident_str, size_t ident_len, <a class="el" href="php__raphf_8h.html#a681ca1f7c1249199b45270be60c721c6">php_persistent_handle_wakeup_t</a> wakeup, <a class="el" href="php__raphf_8h.html#a8f7d6389c67478ca0b99729a5dd3d305">php_persistent_handle_retire_t</a> retire)</td></tr>
+<tr class="memdesc:a0a266874dafb69cf2b040378d4033901"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve a persistent handle factory at runtime.  <a href="#a0a266874dafb69cf2b040378d4033901">More...</a><br/></td></tr>
+<tr class="separator:a0a266874dafb69cf2b040378d4033901"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab12ec2da7189e16fbed40a3b73bc9ee2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php__raphf_8h.html#ab12ec2da7189e16fbed40a3b73bc9ee2">php_persistent_handle_abandon</a> (<a class="el" href="php__raphf_8h.html#a833eaa62ffcc217e5749c26c18885b17">php_persistent_handle_factory_t</a> *a)</td></tr>
+<tr class="memdesc:ab12ec2da7189e16fbed40a3b73bc9ee2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Abandon the persistent handle factory.  <a href="#ab12ec2da7189e16fbed40a3b73bc9ee2">More...</a><br/></td></tr>
+<tr class="separator:ab12ec2da7189e16fbed40a3b73bc9ee2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af6636e870497be0699d2781e5fc8a2a9"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php__raphf_8h.html#af6636e870497be0699d2781e5fc8a2a9">php_persistent_handle_acquire</a> (<a class="el" href="php__raphf_8h.html#a833eaa62ffcc217e5749c26c18885b17">php_persistent_handle_factory_t</a> *a, void *init_arg)</td></tr>
+<tr class="memdesc:af6636e870497be0699d2781e5fc8a2a9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Acquire a persistent handle.  <a href="#af6636e870497be0699d2781e5fc8a2a9">More...</a><br/></td></tr>
+<tr class="separator:af6636e870497be0699d2781e5fc8a2a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af08ee05c51d52200755d24f6f52df144"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php__raphf_8h.html#af08ee05c51d52200755d24f6f52df144">php_persistent_handle_release</a> (<a class="el" href="php__raphf_8h.html#a833eaa62ffcc217e5749c26c18885b17">php_persistent_handle_factory_t</a> *a, void *handle)</td></tr>
+<tr class="memdesc:af08ee05c51d52200755d24f6f52df144"><td class="mdescLeft">&#160;</td><td class="mdescRight">Release a persistent handle.  <a href="#af08ee05c51d52200755d24f6f52df144">More...</a><br/></td></tr>
+<tr class="separator:af08ee05c51d52200755d24f6f52df144"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae8124f3f73e96e2193ae03c5519d2763"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php__raphf_8h.html#ae8124f3f73e96e2193ae03c5519d2763">php_persistent_handle_accrete</a> (<a class="el" href="php__raphf_8h.html#a833eaa62ffcc217e5749c26c18885b17">php_persistent_handle_factory_t</a> *a, void *handle)</td></tr>
+<tr class="memdesc:ae8124f3f73e96e2193ae03c5519d2763"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy a persistent handle.  <a href="#ae8124f3f73e96e2193ae03c5519d2763">More...</a><br/></td></tr>
+<tr class="separator:ae8124f3f73e96e2193ae03c5519d2763"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a93458ab12d810f0fd545fb1464ba9eca"><td class="memItemLeft" align="right" valign="top"><a class="el" href="php__raphf_8h.html#a29e0d7a66e441a5265ddf2f0adbbb3af">php_resource_factory_ops_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php__raphf_8h.html#a93458ab12d810f0fd545fb1464ba9eca">php_persistent_handle_get_resource_factory_ops</a> (void)</td></tr>
+<tr class="memdesc:a93458ab12d810f0fd545fb1464ba9eca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve persistent handle resource factory ops.  <a href="#a93458ab12d810f0fd545fb1464ba9eca">More...</a><br/></td></tr>
+<tr class="separator:a93458ab12d810f0fd545fb1464ba9eca"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0d661d1f880270146012eb8781e5343e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php__raphf_8h.html#a0d661d1f880270146012eb8781e5343e">php_persistent_handle_cleanup</a> (const char *name_str, size_t name_len, const char *ident_str, size_t ident_len)</td></tr>
+<tr class="memdesc:a0d661d1f880270146012eb8781e5343e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clean persistent handles up.  <a href="#a0d661d1f880270146012eb8781e5343e">More...</a><br/></td></tr>
+<tr class="separator:a0d661d1f880270146012eb8781e5343e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae174fbe124d4cb6010e218a68379bd18"><td class="memItemLeft" align="right" valign="top">HashTable *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php__raphf_8h.html#ae174fbe124d4cb6010e218a68379bd18">php_persistent_handle_statall</a> (HashTable *ht)</td></tr>
+<tr class="memdesc:ae174fbe124d4cb6010e218a68379bd18"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve statistics about the current process/thread's persistent handles.  <a href="#ae174fbe124d4cb6010e218a68379bd18">More...</a><br/></td></tr>
+<tr class="separator:ae174fbe124d4cb6010e218a68379bd18"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<hr/><h2 class="groupheader">Data Structure Documentation</h2>
+<a name="structphp__resource__factory__ops" id="structphp__resource__factory__ops"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">struct php_resource_factory_ops</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<div class="textblock"><p>The resource ops consisting of a ctor, a copy ctor and a dtor. </p>
+<p>Define this ops and register them with <a class="el" href="php__raphf_8h.html#a3cbbe29c8a4ed9858c921c8ee539de59" title="Register a persistent handle provider in MINIT. ">php_persistent_handle_provide()</a> in MINIT. </p>
+</div><table class="fieldtable">
+<tr><th colspan="3">Data Fields</th></tr>
+<tr><td class="fieldtype">
+<a class="anchor" id="a8094f85df976aff73148bc579ae72e38"></a><a class="el" href="php__raphf_8h.html#a80169af0f2adacf3ec7c7ee1dfb19f96">php_resource_factory_handle_copy_t</a></td>
+<td class="fieldname">
+copy</td>
+<td class="fielddoc">
+The resource's copy constructor. </td></tr>
+<tr><td class="fieldtype">
+<a class="anchor" id="a044b07071758dbc53f87bfd212400ac0"></a><a class="el" href="php__raphf_8h.html#a1c5d952a60130d2a68c8d68db2bebbd8">php_resource_factory_handle_ctor_t</a></td>
+<td class="fieldname">
+ctor</td>
+<td class="fielddoc">
+The resource constructor. </td></tr>
+<tr><td class="fieldtype">
+<a class="anchor" id="acb8a7a04b86f08db41a2d6232676c65c"></a><a class="el" href="php__raphf_8h.html#a472a7e1909aed64d00d43ea5c112b854">php_resource_factory_handle_dtor_t</a></td>
+<td class="fieldname">
+dtor</td>
+<td class="fielddoc">
+The resource's destructor. </td></tr>
+</table>
+
+</div>
+</div>
+<a name="structphp__persistent__handle__list" id="structphp__persistent__handle__list"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">struct php_persistent_handle_list</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<div class="textblock"><p>Persistent handles storage. </p>
+</div><table class="fieldtable">
+<tr><th colspan="3">Data Fields</th></tr>
+<tr><td class="fieldtype">
+<a class="anchor" id="a653a4a0e9c39ad942e9573e197f62974"></a>HashTable</td>
+<td class="fieldname">
+free</td>
+<td class="fielddoc">
+Storage of free resources. </td></tr>
+<tr><td class="fieldtype">
+<a class="anchor" id="a119a44fd9f5ae066b6d77e7a35a25cd0"></a>ulong</td>
+<td class="fieldname">
+used</td>
+<td class="fielddoc">
+Count of acquired resources. </td></tr>
+</table>
+
+</div>
+</div>
+<a name="structphp__persistent__handle__provider" id="structphp__persistent__handle__provider"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">struct php_persistent_handle_provider</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<div class="textblock"><p>Definition of a persistent handle provider. </p>
+<p>Holds a resource factory an a persistent handle list. </p>
+</div><div class="dynheader">
+Collaboration diagram for php_persistent_handle_provider:</div>
+<div class="dyncontent">
+<div class="center"><img src="structphp__persistent__handle__provider__coll__graph.png" border="0" usemap="#php__persistent__handle__provider_coll__map" alt="Collaboration graph"/></div>
+<map name="php__persistent__handle__provider_coll__map" id="php__persistent__handle__provider_coll__map">
+<area shape="rect" id="node2" href="php__raphf_8h.html#structphp__persistent__handle__list" title="Persistent handles storage. " alt="" coords="5,96,181,123"/><area shape="rect" id="node3" href="structphp__resource__factory.html" title="The resource factory. " alt="" coords="205,96,352,123"/><area shape="rect" id="node4" href="php__raphf_8h.html#structphp__resource__factory__ops" title="The resource ops consisting of a ctor, a copy ctor and a dtor. " alt="" coords="191,5,365,32"/></map>
+<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
+<table class="fieldtable">
+<tr><th colspan="3">Data Fields</th></tr>
+<tr><td class="fieldtype">
+<a class="anchor" id="a4935f6446b1d4a2feb7a22dfc4e5d6d0"></a><a class="el" href="php__raphf_8h.html#a07f599598d2b87b188f39871d026c177">php_persistent_handle_list_t</a></td>
+<td class="fieldname">
+list</td>
+<td class="fielddoc">
+The list of free handles. <p>Hash of "ident" =&gt; array(handles) entries. Persistent handles are acquired out of this list. </p>
+</td></tr>
+<tr><td class="fieldtype">
+<a class="anchor" id="a8204714f100b74b028652951ca40abd3"></a><a class="el" href="php__raphf_8h.html#a4817c4b3d4077c48dff36376487ba8d4">php_resource_factory_t</a></td>
+<td class="fieldname">
+rf</td>
+<td class="fielddoc">
+The resource factory. <p>New handles are created by this factory. </p>
+</td></tr>
+</table>
+
+</div>
+</div>
+<a name="structphp__persistent__handle__factory" id="structphp__persistent__handle__factory"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">struct php_persistent_handle_factory</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<div class="textblock"><p>Definition of a persistent handle factory. </p>
+<p><a class="el" href="php__raphf_8h.html#a0a266874dafb69cf2b040378d4033901" title="Retrieve a persistent handle factory at runtime. ">php_persistent_handle_concede()</a> will return a pointer to a <a class="el" href="php__raphf_8h.html#structphp__persistent__handle__factory" title="Definition of a persistent handle factory. ">php_persistent_handle_factory</a> if a provider for the <em>name_str</em> has been registered with <a class="el" href="php__raphf_8h.html#a3cbbe29c8a4ed9858c921c8ee539de59" title="Register a persistent handle provider in MINIT. ">php_persistent_handle_provide()</a>. </p>
+</div><div class="dynheader">
+Collaboration diagram for php_persistent_handle_factory:</div>
+<div class="dyncontent">
+<div class="center"><img src="structphp__persistent__handle__factory__coll__graph.png" border="0" usemap="#php__persistent__handle__factory_coll__map" alt="Collaboration graph"/></div>
+<map name="php__persistent__handle__factory_coll__map" id="php__persistent__handle__factory_coll__map">
+<area shape="rect" id="node2" href="php__raphf_8h.html#structphp__persistent__handle__provider" title="Definition of a persistent handle provider. " alt="" coords="76,187,228,229"/><area shape="rect" id="node3" href="php__raphf_8h.html#structphp__persistent__handle__list" title="Persistent handles storage. " alt="" coords="5,96,181,123"/><area shape="rect" id="node4" href="structphp__resource__factory.html" title="The resource factory. " alt="" coords="205,96,352,123"/><area shape="rect" id="node5" href="php__raphf_8h.html#structphp__resource__factory__ops" title="The resource ops consisting of a ctor, a copy ctor and a dtor. " alt="" coords="191,5,365,32"/></map>
+<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
+<table class="fieldtable">
+<tr><th colspan="3">Data Fields</th></tr>
+<tr><td class="fieldtype">
+<a class="anchor" id="a84ffa94401b9869e14c190be4bb1b6be"></a>unsigned</td>
+<td class="fieldname">
+free_on_abandon:1</td>
+<td class="fielddoc">
+Whether it has to be free'd on <a class="el" href="php__raphf_8h.html#ab12ec2da7189e16fbed40a3b73bc9ee2" title="Abandon the persistent handle factory. ">php_persistent_handle_abandon()</a> </td></tr>
+<tr><td class="fieldtype">
+<a class="anchor" id="ae874c03caffa8eaa265dd52ebf593c02"></a>struct <a class="el" href="php__raphf_8h.html#structphp__persistent__handle__factory_8ident">php_persistent_handle_factory</a></td>
+<td class="fieldname">
+ident</td>
+<td class="fielddoc">
+The ident for which this factory manages resources. </td></tr>
+<tr><td class="fieldtype">
+<a class="anchor" id="a43aabcbe7ec4b5ff463f74cfcf788f51"></a><a class="el" href="php__raphf_8h.html#a31f0595f4f726f762790cef844568fc4">php_persistent_handle_provider_t</a> *</td>
+<td class="fieldname">
+provider</td>
+<td class="fielddoc">
+The persistent handle provider. </td></tr>
+<tr><td class="fieldtype">
+<a class="anchor" id="a9299f3f0821061ad93d15c10cf735b6b"></a><a class="el" href="php__raphf_8h.html#a8f7d6389c67478ca0b99729a5dd3d305">php_persistent_handle_retire_t</a></td>
+<td class="fieldname">
+retire</td>
+<td class="fielddoc">
+The persistent handle retire routine; may be NULL. </td></tr>
+<tr><td class="fieldtype">
+<a class="anchor" id="a6633b7c860e4538942e0367d64ed5af7"></a><a class="el" href="php__raphf_8h.html#a681ca1f7c1249199b45270be60c721c6">php_persistent_handle_wakeup_t</a></td>
+<td class="fieldname">
+wakeup</td>
+<td class="fielddoc">
+The persistent handle wakeup routine; may be NULL. </td></tr>
+</table>
+
+</div>
+</div>
+<a name="structphp__persistent__handle__factory_8ident" id="structphp__persistent__handle__factory_8ident"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">struct php_persistent_handle_factory.ident</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<div class="textblock"><p>The ident for which this factory manages resources. </p>
+</div><table class="fieldtable">
+<tr><th colspan="3">Data Fields</th></tr>
+<tr><td class="fieldtype">
+<a class="anchor" id="af5a8e923f8cd24b56b3bab32358cc58a"></a>size_t</td>
+<td class="fieldname">
+len</td>
+<td class="fielddoc">
+ident length </td></tr>
+<tr><td class="fieldtype">
+<a class="anchor" id="a341be97d9aff90c9978347f66f945b77"></a>char *</td>
+<td class="fieldname">
+str</td>
+<td class="fielddoc">
+ident string </td></tr>
+</table>
+
+</div>
+</div>
+<h2 class="groupheader">Typedef Documentation</h2>
+<a class="anchor" id="a833eaa62ffcc217e5749c26c18885b17"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="php__raphf_8h.html#structphp__persistent__handle__factory">php_persistent_handle_factory</a> <a class="el" href="php__raphf_8h.html#a833eaa62ffcc217e5749c26c18885b17">php_persistent_handle_factory_t</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a07f599598d2b87b188f39871d026c177"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="php__raphf_8h.html#structphp__persistent__handle__list">php_persistent_handle_list</a>  <a class="el" href="php__raphf_8h.html#a07f599598d2b87b188f39871d026c177">php_persistent_handle_list_t</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Persistent handles storage. </p>
+
+</div>
+</div>
+<a class="anchor" id="a31f0595f4f726f762790cef844568fc4"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="php__raphf_8h.html#structphp__persistent__handle__provider">php_persistent_handle_provider</a>  <a class="el" href="php__raphf_8h.html#a31f0595f4f726f762790cef844568fc4">php_persistent_handle_provider_t</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Definition of a persistent handle provider. </p>
+<p>Holds a resource factory an a persistent handle list. </p>
+
+</div>
+</div>
+<a class="anchor" id="a8f7d6389c67478ca0b99729a5dd3d305"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef void(* php_persistent_handle_retire_t)(<a class="el" href="php__raphf_8h.html#a833eaa62ffcc217e5749c26c18885b17">php_persistent_handle_factory_t</a> *f, void **handle)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Retire the persistent handle on release. </p>
+
+</div>
+</div>
+<a class="anchor" id="a681ca1f7c1249199b45270be60c721c6"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef void(* php_persistent_handle_wakeup_t)(<a class="el" href="php__raphf_8h.html#a833eaa62ffcc217e5749c26c18885b17">php_persistent_handle_factory_t</a> *f, void **handle)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Wakeup the persistent handle on re-acquisition. </p>
+
+</div>
+</div>
+<a class="anchor" id="a80169af0f2adacf3ec7c7ee1dfb19f96"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef void*(* php_resource_factory_handle_copy_t)(void *opaque, void *handle)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>The copy constructor of a resource. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">opaque</td><td>the factory's data </td></tr>
+    <tr><td class="paramname">handle</td><td>the (persistent) handle to copy </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a1c5d952a60130d2a68c8d68db2bebbd8"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef void*(* php_resource_factory_handle_ctor_t)(void *opaque, void *init_arg)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>A resource constructor. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">opaque</td><td>is the <em>data</em> from <a class="el" href="php__raphf_8h.html#a3cbbe29c8a4ed9858c921c8ee539de59" title="Register a persistent handle provider in MINIT. ">php_persistent_handle_provide()</a> </td></tr>
+    <tr><td class="paramname">init_arg</td><td>is the <em>init_arg</em> from <a class="el" href="php__raphf_8h.html#ad20f10c53e3f33756638da98819367f0" title="Initialize a resource factory. ">php_resource_factory_init()</a> </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>the created (persistent) handle </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a472a7e1909aed64d00d43ea5c112b854"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef void(* php_resource_factory_handle_dtor_t)(void *opaque, void *handle)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>The destructor of a resource. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">opaque</td><td>the factory's data </td></tr>
+    <tr><td class="paramname">handle</td><td>the handle to destroy </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a29e0d7a66e441a5265ddf2f0adbbb3af"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="php__raphf_8h.html#structphp__resource__factory__ops">php_resource_factory_ops</a>  <a class="el" href="php__raphf_8h.html#a29e0d7a66e441a5265ddf2f0adbbb3af">php_resource_factory_ops_t</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>The resource ops consisting of a ctor, a copy ctor and a dtor. </p>
+<p>Define this ops and register them with <a class="el" href="php__raphf_8h.html#a3cbbe29c8a4ed9858c921c8ee539de59" title="Register a persistent handle provider in MINIT. ">php_persistent_handle_provide()</a> in MINIT. </p>
+
+</div>
+</div>
+<a class="anchor" id="a4817c4b3d4077c48dff36376487ba8d4"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="structphp__resource__factory.html">php_resource_factory</a>  <a class="el" href="php__raphf_8h.html#a4817c4b3d4077c48dff36376487ba8d4">php_resource_factory_t</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>The resource factory. </p>
+
+</div>
+</div>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ab12ec2da7189e16fbed40a3b73bc9ee2"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void php_persistent_handle_abandon </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="php__raphf_8h.html#a833eaa62ffcc217e5749c26c18885b17">php_persistent_handle_factory_t</a> *&#160;</td>
+          <td class="paramname"><em>a</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Abandon the persistent handle factory. </p>
+<p>Destroy a <a class="el" href="php__raphf_8h.html#structphp__persistent__handle__factory" title="Definition of a persistent handle factory. ">php_persistent_handle_factory</a> created by <a class="el" href="php__raphf_8h.html#a0a266874dafb69cf2b040378d4033901" title="Retrieve a persistent handle factory at runtime. ">php_persistent_handle_concede()</a>. If the memory for the factory was allocated, it will automatically be free'd.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">a</td><td>the persistent handle factory to destroy </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="ae8124f3f73e96e2193ae03c5519d2763"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void* php_persistent_handle_accrete </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="php__raphf_8h.html#a833eaa62ffcc217e5749c26c18885b17">php_persistent_handle_factory_t</a> *&#160;</td>
+          <td class="paramname"><em>a</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">void *&#160;</td>
+          <td class="paramname"><em>handle</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Copy a persistent handle. </p>
+<p>Let the underlying resource factory copy the <em>handle</em>.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">a</td><td>the persistent handle factory </td></tr>
+    <tr><td class="paramname">handle</td><td>the resource to accrete </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="af6636e870497be0699d2781e5fc8a2a9"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void* php_persistent_handle_acquire </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="php__raphf_8h.html#a833eaa62ffcc217e5749c26c18885b17">php_persistent_handle_factory_t</a> *&#160;</td>
+          <td class="paramname"><em>a</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">void *&#160;</td>
+          <td class="paramname"><em>init_arg</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Acquire a persistent handle. </p>
+<p>That is, either re-use a resource from the free list or create a new handle.</p>
+<p>If a handle is acquired from the free list, the <a class="el" href="php__raphf_8h.html#a6633b7c860e4538942e0367d64ed5af7" title="The persistent handle wakeup routine; may be NULL. ">php_persistent_handle_factory::wakeup</a> callback will be executed for that handle.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">a</td><td>the persistent handle factory </td></tr>
+    <tr><td class="paramname">init_arg</td><td>the <em>init_arg</em> for <a class="el" href="php__raphf_8h.html#a98d02dc80dd83095b8f901954350840c" title="Construct a resource by the resource factory f. ">php_resource_factory_handle_ctor()</a> </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>the acquired resource </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a0d661d1f880270146012eb8781e5343e"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void php_persistent_handle_cleanup </td>
+          <td>(</td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>name_str</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>name_len</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>ident_str</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>ident_len</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Clean persistent handles up. </p>
+<p>Destroy persistent handles of provider <em>name_str</em> and in subsidiary namespace <em>ident_str</em>.</p>
+<p>If <em>name_str</em> is NULL, all persistent handles of all providers with a matching <em>ident_str</em> will be cleaned up.</p>
+<p>If <em>ident_str</em> is NULL all persistent handles of the provider will be cleaned up.</p>
+<p>Ergo, if both, <em>name_str</em> and <em>ident_str</em> are NULL, then all persistent handles will be cleaned up.</p>
+<p>You must call this in MSHUTDOWN, if your resource factory ops hold a registered <a class="el" href="structphp__resource__factory.html#a7b48ed1c081288e7dd396bdb2f9187f9" title="User data destructor. ">php_resource_factory::dtor</a>, else the dtor will point to memory not any more available if the extension has already been unloaded.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">name_str</td><td>the provider name; may be NULL </td></tr>
+    <tr><td class="paramname">name_len</td><td>the provider name length </td></tr>
+    <tr><td class="paramname">ident_str</td><td>the subsidiary namespace name; may be NULL </td></tr>
+    <tr><td class="paramname">ident_len</td><td>the subsidiary namespace name length </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a0a266874dafb69cf2b040378d4033901"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="php__raphf_8h.html#a833eaa62ffcc217e5749c26c18885b17">php_persistent_handle_factory_t</a>* php_persistent_handle_concede </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="php__raphf_8h.html#a833eaa62ffcc217e5749c26c18885b17">php_persistent_handle_factory_t</a> *&#160;</td>
+          <td class="paramname"><em>a</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>name_str</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>name_len</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>ident_str</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>ident_len</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="php__raphf_8h.html#a681ca1f7c1249199b45270be60c721c6">php_persistent_handle_wakeup_t</a>&#160;</td>
+          <td class="paramname"><em>wakeup</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="php__raphf_8h.html#a8f7d6389c67478ca0b99729a5dd3d305">php_persistent_handle_retire_t</a>&#160;</td>
+          <td class="paramname"><em>retire</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Retrieve a persistent handle factory at runtime. </p>
+<p>If a persistent handle provider has been registered for <em>name_str</em>, a new <a class="el" href="php__raphf_8h.html#structphp__persistent__handle__factory" title="Definition of a persistent handle factory. ">php_persistent_handle_factory</a> creating resources in the <em>ident_str</em> namespace will be constructed.</p>
+<p>The wakeup routine <em>wakeup</em> and the retire routine <em>retire</em> will be assigned to the new <a class="el" href="php__raphf_8h.html#structphp__persistent__handle__factory" title="Definition of a persistent handle factory. ">php_persistent_handle_factory</a>.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">a</td><td>pointer to a factory; allocated on the heap if NULL </td></tr>
+    <tr><td class="paramname">name_str</td><td>the provider name, e.g. "http\Client\Curl" </td></tr>
+    <tr><td class="paramname">name_len</td><td>the provider name length, e.g. strlen("http\Client\Curl") </td></tr>
+    <tr><td class="paramname">ident_str</td><td>the subsidiary namespace, e.g. "php.net:80" </td></tr>
+    <tr><td class="paramname">ident_len</td><td>the subsidiary namespace lenght, e.g. strlen("php.net:80") </td></tr>
+    <tr><td class="paramname">wakeup</td><td>any persistent handle wakeup routine </td></tr>
+    <tr><td class="paramname">retire</td><td>any persistent handle retire routine </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd><em>a</em> or an allocated persistent handle factory </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a93458ab12d810f0fd545fb1464ba9eca"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="php__raphf_8h.html#a29e0d7a66e441a5265ddf2f0adbbb3af">php_resource_factory_ops_t</a>* php_persistent_handle_get_resource_factory_ops </td>
+          <td>(</td>
+          <td class="paramtype">void&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Retrieve persistent handle resource factory ops. </p>
+<p>These ops can be used to mask a persistent handle factory as resource factory itself, so you can transparently use the resource factory API, both for persistent and non-persistent ressources.</p>
+<p>Example: </p>
+<div class="fragment"><div class="line"><a class="code" href="structphp__resource__factory.html">php_resource_factory_t</a> *create_my_rf(<span class="keyword">const</span> <span class="keywordtype">char</span> *persistent_id_str,</div>
+<div class="line">                                     <span class="keywordtype">size_t</span> persistent_id_len TSRMLS_DC)</div>
+<div class="line">{</div>
+<div class="line">    <a class="code" href="structphp__resource__factory.html">php_resource_factory_t</a> *rf;</div>
+<div class="line"></div>
+<div class="line">    <span class="keywordflow">if</span> (persistent_id_str) {</div>
+<div class="line">        <a class="code" href="php__raphf_8h.html#structphp__persistent__handle__factory">php_persistent_handle_factory_t</a> *pf;</div>
+<div class="line">        <a class="code" href="php__raphf_8h.html#structphp__resource__factory__ops">php_resource_factory_ops_t</a> *ops;</div>
+<div class="line"></div>
+<div class="line">        ops = <a class="code" href="php__raphf_8h.html#a93458ab12d810f0fd545fb1464ba9eca">php_persistent_handle_get_resource_factory_ops</a>();</div>
+<div class="line"></div>
+<div class="line">        pf = <a class="code" href="php__raphf_8h.html#a0a266874dafb69cf2b040378d4033901">php_persistent_handle_concede</a>(NULL, <span class="stringliteral">&quot;my&quot;</span>, 2,</div>
+<div class="line">            persistent_id_str, persistent_id_len, NULL, NULL TSRMLS_CC);</div>
+<div class="line"></div>
+<div class="line">        rf = <a class="code" href="php__raphf_8h.html#ad20f10c53e3f33756638da98819367f0">php_resource_factory_init</a>(NULL, ops, pf, <a class="code" href="php__raphf_8h.html#ab12ec2da7189e16fbed40a3b73bc9ee2">php_persistent_handle_abandon</a>);</div>
+<div class="line">    } <span class="keywordflow">else</span> {</div>
+<div class="line">        rf = <a class="code" href="php__raphf_8h.html#ad20f10c53e3f33756638da98819367f0">php_resource_factory_init</a>(NULL, &amp;myops, NULL, NULL);</div>
+<div class="line">    }</div>
+<div class="line">    <span class="keywordflow">return</span> rf;</div>
+<div class="line">}</div>
+</div><!-- fragment --> 
+</div>
+</div>
+<a class="anchor" id="a3cbbe29c8a4ed9858c921c8ee539de59"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int php_persistent_handle_provide </td>
+          <td>(</td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>name_str</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>name_len</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="php__raphf_8h.html#a29e0d7a66e441a5265ddf2f0adbbb3af">php_resource_factory_ops_t</a> *&#160;</td>
+          <td class="paramname"><em>fops</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">void *&#160;</td>
+          <td class="paramname"><em>data</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">void(*)(void *)&#160;</td>
+          <td class="paramname"><em>dtor</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Register a persistent handle provider in MINIT. </p>
+<p>Registers a factory provider for <em>name_str</em> with <em>fops</em> resource factory ops. Call this in your MINIT.</p>
+<p>A <a class="el" href="structphp__resource__factory.html" title="The resource factory. ">php_resource_factory</a> will be created with <em>fops</em>, <em>data</em> and <em>dtor</em> and will be stored together with a <a class="el" href="php__raphf_8h.html#structphp__persistent__handle__list" title="Persistent handles storage. ">php_persistent_handle_list</a> in the global raphf hash.</p>
+<p>A <a class="el" href="php__raphf_8h.html#structphp__persistent__handle__factory" title="Definition of a persistent handle factory. ">php_persistent_handle_factory</a> can then be retrieved by <a class="el" href="php__raphf_8h.html#a0a266874dafb69cf2b040378d4033901" title="Retrieve a persistent handle factory at runtime. ">php_persistent_handle_concede()</a> at runtime.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">name_str</td><td>the provider name, e.g. "http\Client\Curl" </td></tr>
+    <tr><td class="paramname">name_len</td><td>the provider name length, e.g. strlen("http\Client\Curl") </td></tr>
+    <tr><td class="paramname">fops</td><td>the resource factory ops </td></tr>
+    <tr><td class="paramname">data</td><td>opaque user data </td></tr>
+    <tr><td class="paramname">dtor</td><td><em>data</em> destructor </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>SUCCESS/FAILURE </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="af08ee05c51d52200755d24f6f52df144"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void php_persistent_handle_release </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="php__raphf_8h.html#a833eaa62ffcc217e5749c26c18885b17">php_persistent_handle_factory_t</a> *&#160;</td>
+          <td class="paramname"><em>a</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">void *&#160;</td>
+          <td class="paramname"><em>handle</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Release a persistent handle. </p>
+<p>That is, either put it back into the free list for later re-use or clean it up with <a class="el" href="php__raphf_8h.html#a97dbb9d342f33205b92374c586676bc6" title="Destroy (and free) the resource. ">php_resource_factory_handle_dtor()</a>.</p>
+<p>If a handle is put back into the free list, the <a class="el" href="php__raphf_8h.html#a9299f3f0821061ad93d15c10cf735b6b" title="The persistent handle retire routine; may be NULL. ">php_persistent_handle_factory::retire</a> callback will be executed for that handle.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">a</td><td>the persistent handle factory </td></tr>
+    <tr><td class="paramname">handle</td><td>the handle to release </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="ae174fbe124d4cb6010e218a68379bd18"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">HashTable* php_persistent_handle_statall </td>
+          <td>(</td>
+          <td class="paramtype">HashTable *&#160;</td>
+          <td class="paramname"><em>ht</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Retrieve statistics about the current process/thread's persistent handles. </p>
+<dl class="section return"><dt>Returns</dt><dd>a HashTable like: <div class="fragment"><div class="line">[</div>
+<div class="line">    <span class="stringliteral">&quot;name&quot;</span> =&gt; [</div>
+<div class="line">        <span class="stringliteral">&quot;ident&quot;</span> =&gt; [</div>
+<div class="line">            <span class="stringliteral">&quot;used&quot;</span> =&gt; 1,</div>
+<div class="line">            <span class="stringliteral">&quot;free&quot;</span> =&gt; 0,</div>
+<div class="line">        ]</div>
+<div class="line">    ]</div>
+<div class="line">]</div>
+</div><!-- fragment --> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ae8be369197905047ffbd05c0ca80f245"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">unsigned php_resource_factory_addref </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="php__raphf_8h.html#a4817c4b3d4077c48dff36376487ba8d4">php_resource_factory_t</a> *&#160;</td>
+          <td class="paramname"><em>rf</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Increase the refcount of the resource factory. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">rf</td><td>the resource factory </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>the new refcount </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a016b8a4159e698f915ab967711696847"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void php_resource_factory_dtor </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="php__raphf_8h.html#a4817c4b3d4077c48dff36376487ba8d4">php_resource_factory_t</a> *&#160;</td>
+          <td class="paramname"><em>f</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Destroy the resource factory. </p>
+<p>If the factory's refcount reaches 0, the <em>dtor</em> for <em>data</em> is called.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">f</td><td>the resource factory </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a7f012d685f5f7c08f50288b61232e689"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void php_resource_factory_free </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="php__raphf_8h.html#a4817c4b3d4077c48dff36376487ba8d4">php_resource_factory_t</a> **&#160;</td>
+          <td class="paramname"><em>f</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Destroy and free the resource factory. </p>
+<p>Calls <a class="el" href="php__raphf_8h.html#a016b8a4159e698f915ab967711696847" title="Destroy the resource factory. ">php_resource_factory_dtor()</a> and frees \æ f if the factory's refcount reached 0.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">f</td><td>the resource factory </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a08db5f3698f2d0bf3d2f20dcf4e7b2b4"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void* php_resource_factory_handle_copy </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="php__raphf_8h.html#a4817c4b3d4077c48dff36376487ba8d4">php_resource_factory_t</a> *&#160;</td>
+          <td class="paramname"><em>f</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">void *&#160;</td>
+          <td class="paramname"><em>handle</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Create a copy of the resource <em>handle</em>. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">f</td><td>the resource factory </td></tr>
+    <tr><td class="paramname">handle</td><td>the resource to copy </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>the copy </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a98d02dc80dd83095b8f901954350840c"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void* php_resource_factory_handle_ctor </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="php__raphf_8h.html#a4817c4b3d4077c48dff36376487ba8d4">php_resource_factory_t</a> *&#160;</td>
+          <td class="paramname"><em>f</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">void *&#160;</td>
+          <td class="paramname"><em>init_arg</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Construct a resource by the resource factory <em>f</em>. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">f</td><td>the resource factory </td></tr>
+    <tr><td class="paramname">init_arg</td><td>for the resource constructor </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>the new resource </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a97dbb9d342f33205b92374c586676bc6"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void php_resource_factory_handle_dtor </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="php__raphf_8h.html#a4817c4b3d4077c48dff36376487ba8d4">php_resource_factory_t</a> *&#160;</td>
+          <td class="paramname"><em>f</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">void *&#160;</td>
+          <td class="paramname"><em>handle</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Destroy (and free) the resource. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">f</td><td>the resource factory </td></tr>
+    <tr><td class="paramname">handle</td><td>the resource to destroy </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="ad20f10c53e3f33756638da98819367f0"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="php__raphf_8h.html#a4817c4b3d4077c48dff36376487ba8d4">php_resource_factory_t</a>* php_resource_factory_init </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="php__raphf_8h.html#a4817c4b3d4077c48dff36376487ba8d4">php_resource_factory_t</a> *&#160;</td>
+          <td class="paramname"><em>f</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="php__raphf_8h.html#a29e0d7a66e441a5265ddf2f0adbbb3af">php_resource_factory_ops_t</a> *&#160;</td>
+          <td class="paramname"><em>fops</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">void *&#160;</td>
+          <td class="paramname"><em>data</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">void(*)(void *data)&#160;</td>
+          <td class="paramname"><em>dtor</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize a resource factory. </p>
+<p>If you register a <em>dtor</em> for a resource factory used with a persistent handle provider, be sure to call <a class="el" href="php__raphf_8h.html#a0d661d1f880270146012eb8781e5343e" title="Clean persistent handles up. ">php_persistent_handle_cleanup()</a> for your registered provider in MSHUTDOWN, else the dtor will point to no longer available memory if the extension has already been unloaded.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">f</td><td>the factory to initialize; if NULL allocated on the heap </td></tr>
+    <tr><td class="paramname">fops</td><td>the resource ops to assign to the factory </td></tr>
+    <tr><td class="paramname">data</td><td>opaque user data; may be NULL </td></tr>
+    <tr><td class="paramname">dtor</td><td>a destructor for the data; may be NULL </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd><em>f</em> or an allocated resource factory </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="php__raphf_8h.html">php_raphf.h</a></li>
+    <li class="footer">Generated by
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.5 </li>
+  </ul>
+</div>
+</body>
+</html>