6e0f0e282efe6118d65b624d34bd0e2a99c1b36a
[m6w6/ext-raphf] / v1.1.x / php__raphf__api_8c.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2 <html xmlns="http://www.w3.org/1999/xhtml">
3 <head>
4 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
6 <meta name="generator" content="Doxygen 1.8.10"/>
7 <title>Resource and persistent handle factory API: src/php_raphf_api.c File Reference</title>
8 <link href="tabs.css" rel="stylesheet" type="text/css"/>
9 <script type="text/javascript" src="jquery.js"></script>
10 <script type="text/javascript" src="dynsections.js"></script>
11 <link href="navtree.css" rel="stylesheet" type="text/css"/>
12 <script type="text/javascript" src="resize.js"></script>
13 <script type="text/javascript" src="navtreedata.js"></script>
14 <script type="text/javascript" src="navtree.js"></script>
15 <script type="text/javascript">
16 $(document).ready(initResizable);
17 $(window).load(resizeHeight);
18 </script>
19 <link href="search/search.css" rel="stylesheet" type="text/css"/>
20 <script type="text/javascript" src="search/searchdata.js"></script>
21 <script type="text/javascript" src="search/search.js"></script>
22 <script type="text/javascript">
23 $(document).ready(function() { init_search(); });
24 </script>
25 <link href="doxygen.css" rel="stylesheet" type="text/css" />
26 </head>
27 <body>
28 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
29 <div id="titlearea">
30 <table cellspacing="0" cellpadding="0">
31 <tbody>
32 <tr style="height: 56px;">
33 <td id="projectlogo"><img alt="Logo" src="raphf.png"/></td>
34 <td id="projectalign" style="padding-left: 0.5em;">
35 <div id="projectname">Resource and persistent handle factory API
36 </div>
37 <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>
38 </td>
39 </tr>
40 </tbody>
41 </table>
42 </div>
43 <!-- end header part -->
44 <!-- Generated by Doxygen 1.8.10 -->
45 <script type="text/javascript">
46 var searchBox = new SearchBox("searchBox", "search",false,'Search');
47 </script>
48 <div id="navrow1" class="tabs">
49 <ul class="tablist">
50 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
51 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
52 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
53 <li class="current"><a href="files.html"><span>Files</span></a></li>
54 <li>
55 <div id="MSearchBox" class="MSearchBoxInactive">
56 <span class="left">
57 <img id="MSearchSelect" src="search/mag_sel.png"
58 onmouseover="return searchBox.OnSearchSelectShow()"
59 onmouseout="return searchBox.OnSearchSelectHide()"
60 alt=""/>
61 <input type="text" id="MSearchField" value="Search" accesskey="S"
62 onfocus="searchBox.OnSearchFieldFocus(true)"
63 onblur="searchBox.OnSearchFieldFocus(false)"
64 onkeyup="searchBox.OnSearchFieldChange(event)"/>
65 </span><span class="right">
66 <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
67 </span>
68 </div>
69 </li>
70 </ul>
71 </div>
72 <div id="navrow2" class="tabs2">
73 <ul class="tablist">
74 <li><a href="files.html"><span>File&#160;List</span></a></li>
75 <li><a href="globals.html"><span>Globals</span></a></li>
76 </ul>
77 </div>
78 </div><!-- top -->
79 <div id="side-nav" class="ui-resizable side-nav-resizable">
80 <div id="nav-tree">
81 <div id="nav-tree-contents">
82 <div id="nav-sync" class="sync"></div>
83 </div>
84 </div>
85 <div id="splitbar" style="-moz-user-select:none;"
86 class="ui-resizable-handle">
87 </div>
88 </div>
89 <script type="text/javascript">
90 $(document).ready(function(){initNavTree('php__raphf__api_8c.html','');});
91 </script>
92 <div id="doc-content">
93 <!-- window showing the filter options -->
94 <div id="MSearchSelectWindow"
95 onmouseover="return searchBox.OnSearchSelectShow()"
96 onmouseout="return searchBox.OnSearchSelectHide()"
97 onkeydown="return searchBox.OnSearchSelectKey(event)">
98 </div>
99
100 <!-- iframe showing the search results (closed by default) -->
101 <div id="MSearchResultsWindow">
102 <iframe src="javascript:void(0)" frameborder="0"
103 name="MSearchResults" id="MSearchResults">
104 </iframe>
105 </div>
106
107 <div class="header">
108 <div class="summary">
109 <a href="#define-members">Macros</a> &#124;
110 <a href="#enum-members">Enumerations</a> &#124;
111 <a href="#func-members">Functions</a> &#124;
112 <a href="#var-members">Variables</a> </div>
113 <div class="headertitle">
114 <div class="title">php_raphf_api.c File Reference</div> </div>
115 </div><!--header-->
116 <div class="contents">
117 <div class="textblock"><code>#include &quot;php.h&quot;</code><br />
118 <code>#include &quot;php_ini.h&quot;</code><br />
119 <code>#include &quot;ext/standard/info.h&quot;</code><br />
120 <code>#include &quot;<a class="el" href="php__raphf_8h_source.html">php_raphf.h</a>&quot;</code><br />
121 </div><div class="textblock"><div class="dynheader">
122 Include dependency graph for php_raphf_api.c:</div>
123 <div class="dyncontent">
124 <div class="center"><img src="php__raphf__api_8c__incl.png" border="0" usemap="#src_2php__raphf__api_8c" alt=""/></div>
125 <map name="src_2php__raphf__api_8c" id="src_2php__raphf__api_8c">
126 <area shape="rect" id="node5" href="php__raphf_8h.html" title="php_raphf.h" alt="" coords="338,80,429,107"/>
127 </map>
128 </div>
129 </div><table class="memberdecls">
130 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
131 Macros</h2></td></tr>
132 <tr class="memitem:a5a6099bca8801bd4a502806ab49c1d1c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php__raphf__api_8c.html#a5a6099bca8801bd4a502806ab49c1d1c">PHP_RAPHF_G</a>&#160;&#160;&#160;(&amp;raphf_globals)</td></tr>
133 <tr class="separator:a5a6099bca8801bd4a502806ab49c1d1c"><td class="memSeparator" colspan="2">&#160;</td></tr>
134 <tr class="memitem:a4ac4e8587a25a7617a3bb1b2b246fe7f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php__raphf__api_8c.html#a4ac4e8587a25a7617a3bb1b2b246fe7f">PHP_RAPHF_DEBUG_PHANDLES</a>&#160;&#160;&#160;0</td></tr>
135 <tr class="separator:a4ac4e8587a25a7617a3bb1b2b246fe7f"><td class="memSeparator" colspan="2">&#160;</td></tr>
136 </table><table class="memberdecls">
137 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
138 Enumerations</h2></td></tr>
139 <tr class="memitem:a7e00ad2b6e2b119af6feea77ddfcc7e1"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php__raphf__api_8c.html#a7e00ad2b6e2b119af6feea77ddfcc7e1">ZEND_RESULT_CODE</a> { <a class="el" href="php__raphf__api_8c.html#a7e00ad2b6e2b119af6feea77ddfcc7e1ac7f69f7c9e5aea9b8f54cf02870e2bf8">SUCCESS</a> = 0,
140 <a class="el" href="php__raphf__api_8c.html#a7e00ad2b6e2b119af6feea77ddfcc7e1aa5571864412c8275a2e18a931fddcaa6">FAILURE</a> = -1
141 }<tr class="separator:a7e00ad2b6e2b119af6feea77ddfcc7e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
142 </td></tr>
143 </table><table class="memberdecls">
144 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
145 Functions</h2></td></tr>
146 <tr class="memitem:ad20f10c53e3f33756638da98819367f0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="php__raphf__api_8h.html#a4817c4b3d4077c48dff36376487ba8d4">php_resource_factory_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php__raphf__api_8c.html#ad20f10c53e3f33756638da98819367f0">php_resource_factory_init</a> (<a class="el" href="php__raphf__api_8h.html#a4817c4b3d4077c48dff36376487ba8d4">php_resource_factory_t</a> *f, <a class="el" href="php__raphf__api_8h.html#a29e0d7a66e441a5265ddf2f0adbbb3af">php_resource_factory_ops_t</a> *fops, void *data, void(*dtor)(void *data))</td></tr>
147 <tr class="memdesc:ad20f10c53e3f33756638da98819367f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a resource factory. <a href="#ad20f10c53e3f33756638da98819367f0">More...</a><br /></td></tr>
148 <tr class="separator:ad20f10c53e3f33756638da98819367f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
149 <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__api_8c.html#ae8be369197905047ffbd05c0ca80f245">php_resource_factory_addref</a> (<a class="el" href="php__raphf__api_8h.html#a4817c4b3d4077c48dff36376487ba8d4">php_resource_factory_t</a> *rf)</td></tr>
150 <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>
151 <tr class="separator:ae8be369197905047ffbd05c0ca80f245"><td class="memSeparator" colspan="2">&#160;</td></tr>
152 <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__api_8c.html#a016b8a4159e698f915ab967711696847">php_resource_factory_dtor</a> (<a class="el" href="php__raphf__api_8h.html#a4817c4b3d4077c48dff36376487ba8d4">php_resource_factory_t</a> *f)</td></tr>
153 <tr class="memdesc:a016b8a4159e698f915ab967711696847"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroy the resource factory. <a href="#a016b8a4159e698f915ab967711696847">More...</a><br /></td></tr>
154 <tr class="separator:a016b8a4159e698f915ab967711696847"><td class="memSeparator" colspan="2">&#160;</td></tr>
155 <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__api_8c.html#a7f012d685f5f7c08f50288b61232e689">php_resource_factory_free</a> (<a class="el" href="php__raphf__api_8h.html#a4817c4b3d4077c48dff36376487ba8d4">php_resource_factory_t</a> **f)</td></tr>
156 <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>
157 <tr class="separator:a7f012d685f5f7c08f50288b61232e689"><td class="memSeparator" colspan="2">&#160;</td></tr>
158 <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__api_8c.html#a98d02dc80dd83095b8f901954350840c">php_resource_factory_handle_ctor</a> (<a class="el" href="php__raphf__api_8h.html#a4817c4b3d4077c48dff36376487ba8d4">php_resource_factory_t</a> *f, void *init_arg)</td></tr>
159 <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>
160 <tr class="separator:a98d02dc80dd83095b8f901954350840c"><td class="memSeparator" colspan="2">&#160;</td></tr>
161 <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__api_8c.html#a08db5f3698f2d0bf3d2f20dcf4e7b2b4">php_resource_factory_handle_copy</a> (<a class="el" href="php__raphf__api_8h.html#a4817c4b3d4077c48dff36376487ba8d4">php_resource_factory_t</a> *f, void *handle)</td></tr>
162 <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>
163 <tr class="separator:a08db5f3698f2d0bf3d2f20dcf4e7b2b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
164 <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__api_8c.html#a97dbb9d342f33205b92374c586676bc6">php_resource_factory_handle_dtor</a> (<a class="el" href="php__raphf__api_8h.html#a4817c4b3d4077c48dff36376487ba8d4">php_resource_factory_t</a> *f, void *handle)</td></tr>
165 <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>
166 <tr class="separator:a97dbb9d342f33205b92374c586676bc6"><td class="memSeparator" colspan="2">&#160;</td></tr>
167 <tr class="memitem:ab754f4d59dab5de0edf702a9ab2f4e03"><td class="memItemLeft" align="right" valign="top"><a class="el" href="php__raphf__api_8h.html#a4817c4b3d4077c48dff36376487ba8d4">php_resource_factory_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php__raphf__api_8c.html#ab754f4d59dab5de0edf702a9ab2f4e03">php_persistent_handle_resource_factory_init</a> (<a class="el" href="php__raphf__api_8h.html#a4817c4b3d4077c48dff36376487ba8d4">php_resource_factory_t</a> *a, <a class="el" href="php__raphf__api_8h.html#a833eaa62ffcc217e5749c26c18885b17">php_persistent_handle_factory_t</a> *pf)</td></tr>
168 <tr class="memdesc:ab754f4d59dab5de0edf702a9ab2f4e03"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a resource factory for persistent handles. <a href="#ab754f4d59dab5de0edf702a9ab2f4e03">More...</a><br /></td></tr>
169 <tr class="separator:ab754f4d59dab5de0edf702a9ab2f4e03"><td class="memSeparator" colspan="2">&#160;</td></tr>
170 <tr class="memitem:a617d2cc656ab6427388b938597194ebb"><td class="memItemLeft" align="right" valign="top">zend_bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php__raphf__api_8c.html#a617d2cc656ab6427388b938597194ebb">php_resource_factory_is_persistent</a> (<a class="el" href="php__raphf__api_8h.html#a4817c4b3d4077c48dff36376487ba8d4">php_resource_factory_t</a> *a)</td></tr>
171 <tr class="memdesc:a617d2cc656ab6427388b938597194ebb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check whether a resource factory is a persistent handle resource factory. <a href="#a617d2cc656ab6427388b938597194ebb">More...</a><br /></td></tr>
172 <tr class="separator:a617d2cc656ab6427388b938597194ebb"><td class="memSeparator" colspan="2">&#160;</td></tr>
173 <tr class="memitem:aeeeb92e5e498b6f8c98b9ac6d5b695f3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="php__raphf__api_8c.html#a7e00ad2b6e2b119af6feea77ddfcc7e1">ZEND_RESULT_CODE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php__raphf__api_8c.html#aeeeb92e5e498b6f8c98b9ac6d5b695f3">php_persistent_handle_provide</a> (const char *name_str, size_t name_len, <a class="el" href="php__raphf__api_8h.html#a29e0d7a66e441a5265ddf2f0adbbb3af">php_resource_factory_ops_t</a> *fops, void *data, void(*dtor)(void *))</td></tr>
174 <tr class="memdesc:aeeeb92e5e498b6f8c98b9ac6d5b695f3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register a persistent handle provider in MINIT. <a href="#aeeeb92e5e498b6f8c98b9ac6d5b695f3">More...</a><br /></td></tr>
175 <tr class="separator:aeeeb92e5e498b6f8c98b9ac6d5b695f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
176 <tr class="memitem:a0a266874dafb69cf2b040378d4033901"><td class="memItemLeft" align="right" valign="top"><a class="el" href="php__raphf__api_8h.html#a833eaa62ffcc217e5749c26c18885b17">php_persistent_handle_factory_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php__raphf__api_8c.html#a0a266874dafb69cf2b040378d4033901">php_persistent_handle_concede</a> (<a class="el" href="php__raphf__api_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__api_8h.html#a59f5566ecc4c76e048ad53469eb20142">php_persistent_handle_wakeup_t</a> wakeup, <a class="el" href="php__raphf__api_8h.html#a85e9e715d308dc5d98b980c9c57d02bf">php_persistent_handle_retire_t</a> retire)</td></tr>
177 <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>
178 <tr class="separator:a0a266874dafb69cf2b040378d4033901"><td class="memSeparator" colspan="2">&#160;</td></tr>
179 <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__api_8c.html#ab12ec2da7189e16fbed40a3b73bc9ee2">php_persistent_handle_abandon</a> (<a class="el" href="php__raphf__api_8h.html#a833eaa62ffcc217e5749c26c18885b17">php_persistent_handle_factory_t</a> *a)</td></tr>
180 <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>
181 <tr class="separator:ab12ec2da7189e16fbed40a3b73bc9ee2"><td class="memSeparator" colspan="2">&#160;</td></tr>
182 <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__api_8c.html#af6636e870497be0699d2781e5fc8a2a9">php_persistent_handle_acquire</a> (<a class="el" href="php__raphf__api_8h.html#a833eaa62ffcc217e5749c26c18885b17">php_persistent_handle_factory_t</a> *a, void *init_arg)</td></tr>
183 <tr class="memdesc:af6636e870497be0699d2781e5fc8a2a9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Acquire a persistent handle. <a href="#af6636e870497be0699d2781e5fc8a2a9">More...</a><br /></td></tr>
184 <tr class="separator:af6636e870497be0699d2781e5fc8a2a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
185 <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__api_8c.html#ae8124f3f73e96e2193ae03c5519d2763">php_persistent_handle_accrete</a> (<a class="el" href="php__raphf__api_8h.html#a833eaa62ffcc217e5749c26c18885b17">php_persistent_handle_factory_t</a> *a, void *handle)</td></tr>
186 <tr class="memdesc:ae8124f3f73e96e2193ae03c5519d2763"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy a persistent handle. <a href="#ae8124f3f73e96e2193ae03c5519d2763">More...</a><br /></td></tr>
187 <tr class="separator:ae8124f3f73e96e2193ae03c5519d2763"><td class="memSeparator" colspan="2">&#160;</td></tr>
188 <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__api_8c.html#af08ee05c51d52200755d24f6f52df144">php_persistent_handle_release</a> (<a class="el" href="php__raphf__api_8h.html#a833eaa62ffcc217e5749c26c18885b17">php_persistent_handle_factory_t</a> *a, void *handle)</td></tr>
189 <tr class="memdesc:af08ee05c51d52200755d24f6f52df144"><td class="mdescLeft">&#160;</td><td class="mdescRight">Release a persistent handle. <a href="#af08ee05c51d52200755d24f6f52df144">More...</a><br /></td></tr>
190 <tr class="separator:af08ee05c51d52200755d24f6f52df144"><td class="memSeparator" colspan="2">&#160;</td></tr>
191 <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__api_8c.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>
192 <tr class="memdesc:a0d661d1f880270146012eb8781e5343e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clean persistent handles up. <a href="#a0d661d1f880270146012eb8781e5343e">More...</a><br /></td></tr>
193 <tr class="separator:a0d661d1f880270146012eb8781e5343e"><td class="memSeparator" colspan="2">&#160;</td></tr>
194 <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__api_8c.html#ae174fbe124d4cb6010e218a68379bd18">php_persistent_handle_statall</a> (HashTable *ht)</td></tr>
195 <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>
196 <tr class="separator:ae174fbe124d4cb6010e218a68379bd18"><td class="memSeparator" colspan="2">&#160;</td></tr>
197 <tr class="memitem:a93458ab12d810f0fd545fb1464ba9eca"><td class="memItemLeft" align="right" valign="top"><a class="el" href="php__raphf__api_8h.html#a29e0d7a66e441a5265ddf2f0adbbb3af">php_resource_factory_ops_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php__raphf__api_8c.html#a93458ab12d810f0fd545fb1464ba9eca">php_persistent_handle_get_resource_factory_ops</a> (void)</td></tr>
198 <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>
199 <tr class="separator:a93458ab12d810f0fd545fb1464ba9eca"><td class="memSeparator" colspan="2">&#160;</td></tr>
200 <tr class="memitem:a9337bda6793399d5917999063e1aa636"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php__raphf__api_8c.html#a9337bda6793399d5917999063e1aa636">ZEND_END_ARG_INFO</a> ()</td></tr>
201 <tr class="separator:a9337bda6793399d5917999063e1aa636"><td class="memSeparator" colspan="2">&#160;</td></tr>
202 <tr class="memitem:ad2aba389e88a1e9e11b7dae021bfddfc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php__raphf__api_8c.html#ad2aba389e88a1e9e11b7dae021bfddfc">STD_PHP_INI_ENTRY</a> (&quot;raphf.persistent_handle.limit&quot;,&quot;-1&quot;, PHP_INI_SYSTEM, OnUpdateLong, persistent_handle.limit, zend_raphf_globals, raphf_globals) static HashTable *php_persistent_handles_global_hash</td></tr>
203 <tr class="separator:ad2aba389e88a1e9e11b7dae021bfddfc"><td class="memSeparator" colspan="2">&#160;</td></tr>
204 <tr class="memitem:a98ef98eb514bf71723b22e93ef4fb099"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php__raphf__api_8c.html#a98ef98eb514bf71723b22e93ef4fb099">PHP_MINIT_FUNCTION</a> (raphf)</td></tr>
205 <tr class="separator:a98ef98eb514bf71723b22e93ef4fb099"><td class="memSeparator" colspan="2">&#160;</td></tr>
206 <tr class="memitem:a9bdad7e7a27b1cce6be5ec842da0c921"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php__raphf__api_8c.html#a9bdad7e7a27b1cce6be5ec842da0c921">PHP_MSHUTDOWN_FUNCTION</a> (raphf)</td></tr>
207 <tr class="separator:a9bdad7e7a27b1cce6be5ec842da0c921"><td class="memSeparator" colspan="2">&#160;</td></tr>
208 <tr class="memitem:afe0b826f07940e0297395eb758b6dc63"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php__raphf__api_8c.html#afe0b826f07940e0297395eb758b6dc63">PHP_MINFO_FUNCTION</a> (raphf)</td></tr>
209 <tr class="separator:afe0b826f07940e0297395eb758b6dc63"><td class="memSeparator" colspan="2">&#160;</td></tr>
210 </table><table class="memberdecls">
211 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
212 Variables</h2></td></tr>
213 <tr class="memitem:a385b722141c96392a35d8b6dfc29b0d3"><td class="memItemLeft" align="right" valign="top">struct php_persistent_handle_globals&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php__raphf__api_8c.html#a385b722141c96392a35d8b6dfc29b0d3">persistent_handle</a></td></tr>
214 <tr class="separator:a385b722141c96392a35d8b6dfc29b0d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
215 <tr class="memitem:a42f904573a2c5b1eba6ccd6604269f99"><td class="memItemLeft" align="right" valign="top">zend_module_entry&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php__raphf__api_8c.html#a42f904573a2c5b1eba6ccd6604269f99">raphf_module_entry</a></td></tr>
216 <tr class="separator:a42f904573a2c5b1eba6ccd6604269f99"><td class="memSeparator" colspan="2">&#160;</td></tr>
217 </table>
218 <h2 class="groupheader">Macro Definition Documentation</h2>
219 <a class="anchor" id="a4ac4e8587a25a7617a3bb1b2b246fe7f"></a>
220 <div class="memitem">
221 <div class="memproto">
222 <table class="memname">
223 <tr>
224 <td class="memname">#define PHP_RAPHF_DEBUG_PHANDLES&#160;&#160;&#160;0</td>
225 </tr>
226 </table>
227 </div><div class="memdoc">
228
229 </div>
230 </div>
231 <a class="anchor" id="a5a6099bca8801bd4a502806ab49c1d1c"></a>
232 <div class="memitem">
233 <div class="memproto">
234 <table class="memname">
235 <tr>
236 <td class="memname">#define PHP_RAPHF_G&#160;&#160;&#160;(&amp;raphf_globals)</td>
237 </tr>
238 </table>
239 </div><div class="memdoc">
240
241 <p>Referenced by <a class="el" href="php__raphf__api_8c.html#afe0b826f07940e0297395eb758b6dc63">PHP_MINFO_FUNCTION()</a>, <a class="el" href="php__raphf__api_8c.html#a98ef98eb514bf71723b22e93ef4fb099">PHP_MINIT_FUNCTION()</a>, <a class="el" href="php__raphf__api_8h.html#a0d661d1f880270146012eb8781e5343e">php_persistent_handle_cleanup()</a>, <a class="el" href="php__raphf__api_8h.html#a0a266874dafb69cf2b040378d4033901">php_persistent_handle_concede()</a>, <a class="el" href="php__raphf__api_8h.html#a3cbbe29c8a4ed9858c921c8ee539de59">php_persistent_handle_provide()</a>, <a class="el" href="php__raphf__api_8h.html#af08ee05c51d52200755d24f6f52df144">php_persistent_handle_release()</a>, and <a class="el" href="php__raphf__api_8h.html#ae174fbe124d4cb6010e218a68379bd18">php_persistent_handle_statall()</a>.</p>
242
243 </div>
244 </div>
245 <h2 class="groupheader">Enumeration Type Documentation</h2>
246 <a class="anchor" id="a7e00ad2b6e2b119af6feea77ddfcc7e1"></a>
247 <div class="memitem">
248 <div class="memproto">
249 <table class="memname">
250 <tr>
251 <td class="memname">enum <a class="el" href="php__raphf__api_8c.html#a7e00ad2b6e2b119af6feea77ddfcc7e1">ZEND_RESULT_CODE</a></td>
252 </tr>
253 </table>
254 </div><div class="memdoc">
255 <table class="fieldtable">
256 <tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="a7e00ad2b6e2b119af6feea77ddfcc7e1ac7f69f7c9e5aea9b8f54cf02870e2bf8"></a>SUCCESS&#160;</td><td class="fielddoc">
257 </td></tr>
258 <tr><td class="fieldname"><a class="anchor" id="a7e00ad2b6e2b119af6feea77ddfcc7e1aa5571864412c8275a2e18a931fddcaa6"></a>FAILURE&#160;</td><td class="fielddoc">
259 </td></tr>
260 </table>
261
262 </div>
263 </div>
264 <h2 class="groupheader">Function Documentation</h2>
265 <a class="anchor" id="afe0b826f07940e0297395eb758b6dc63"></a>
266 <div class="memitem">
267 <div class="memproto">
268 <table class="memname">
269 <tr>
270 <td class="memname">PHP_MINFO_FUNCTION </td>
271 <td>(</td>
272 <td class="paramtype">raphf&#160;</td>
273 <td class="paramname"></td><td>)</td>
274 <td></td>
275 </tr>
276 </table>
277 </div><div class="memdoc">
278
279 </div>
280 </div>
281 <a class="anchor" id="a98ef98eb514bf71723b22e93ef4fb099"></a>
282 <div class="memitem">
283 <div class="memproto">
284 <table class="memname">
285 <tr>
286 <td class="memname">PHP_MINIT_FUNCTION </td>
287 <td>(</td>
288 <td class="paramtype">raphf&#160;</td>
289 <td class="paramname"></td><td>)</td>
290 <td></td>
291 </tr>
292 </table>
293 </div><div class="memdoc">
294
295 </div>
296 </div>
297 <a class="anchor" id="a9bdad7e7a27b1cce6be5ec842da0c921"></a>
298 <div class="memitem">
299 <div class="memproto">
300 <table class="memname">
301 <tr>
302 <td class="memname">PHP_MSHUTDOWN_FUNCTION </td>
303 <td>(</td>
304 <td class="paramtype">raphf&#160;</td>
305 <td class="paramname"></td><td>)</td>
306 <td></td>
307 </tr>
308 </table>
309 </div><div class="memdoc">
310
311 </div>
312 </div>
313 <a class="anchor" id="ab12ec2da7189e16fbed40a3b73bc9ee2"></a>
314 <div class="memitem">
315 <div class="memproto">
316 <table class="memname">
317 <tr>
318 <td class="memname">void php_persistent_handle_abandon </td>
319 <td>(</td>
320 <td class="paramtype"><a class="el" href="php__raphf__api_8h.html#a833eaa62ffcc217e5749c26c18885b17">php_persistent_handle_factory_t</a> *&#160;</td>
321 <td class="paramname"><em>a</em></td><td>)</td>
322 <td></td>
323 </tr>
324 </table>
325 </div><div class="memdoc">
326
327 <p>Abandon the persistent handle factory. </p>
328 <p>Destroy a <a class="el" href="php__raphf__api_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__api_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>
329 <dl class="params"><dt>Parameters</dt><dd>
330 <table class="params">
331 <tr><td class="paramname">a</td><td>the persistent handle factory to destroy </td></tr>
332 </table>
333 </dd>
334 </dl>
335
336 <p>Referenced by <a class="el" href="php__raphf__api_8h.html#ab754f4d59dab5de0edf702a9ab2f4e03">php_persistent_handle_resource_factory_init()</a>, and <a class="el" href="php__raphf__api_8h.html#a617d2cc656ab6427388b938597194ebb">php_resource_factory_is_persistent()</a>.</p>
337
338 <p><div class="dynheader">
339 Here is the caller graph for this function:</div>
340 <div class="dyncontent">
341 <div class="center"><img src="php__raphf__api_8c_ab12ec2da7189e16fbed40a3b73bc9ee2_icgraph.png" border="0" usemap="#php__raphf__api_8c_ab12ec2da7189e16fbed40a3b73bc9ee2_icgraph" alt=""/></div>
342 <map name="php__raphf__api_8c_ab12ec2da7189e16fbed40a3b73bc9ee2_icgraph" id="php__raphf__api_8c_ab12ec2da7189e16fbed40a3b73bc9ee2_icgraph">
343 <area shape="rect" id="node2" href="php__raphf__api_8h.html#ab754f4d59dab5de0edf702a9ab2f4e03" title="Create a resource factory for persistent handles. " alt="" coords="205,5,357,47"/>
344 <area shape="rect" id="node3" href="php__raphf__api_8h.html#a617d2cc656ab6427388b938597194ebb" title="Check whether a resource factory is a persistent handle resource factory. " alt="" coords="208,71,355,112"/>
345 </map>
346 </div>
347 </p>
348
349 </div>
350 </div>
351 <a class="anchor" id="ae8124f3f73e96e2193ae03c5519d2763"></a>
352 <div class="memitem">
353 <div class="memproto">
354 <table class="memname">
355 <tr>
356 <td class="memname">void* php_persistent_handle_accrete </td>
357 <td>(</td>
358 <td class="paramtype"><a class="el" href="php__raphf__api_8h.html#a833eaa62ffcc217e5749c26c18885b17">php_persistent_handle_factory_t</a> *&#160;</td>
359 <td class="paramname"><em>a</em>, </td>
360 </tr>
361 <tr>
362 <td class="paramkey"></td>
363 <td></td>
364 <td class="paramtype">void *&#160;</td>
365 <td class="paramname"><em>handle</em>&#160;</td>
366 </tr>
367 <tr>
368 <td></td>
369 <td>)</td>
370 <td></td><td></td>
371 </tr>
372 </table>
373 </div><div class="memdoc">
374
375 <p>Copy a persistent handle. </p>
376 <p>Let the underlying resource factory copy the <em>handle</em>.</p>
377 <dl class="params"><dt>Parameters</dt><dd>
378 <table class="params">
379 <tr><td class="paramname">a</td><td>the persistent handle factory </td></tr>
380 <tr><td class="paramname">handle</td><td>the resource to accrete </td></tr>
381 </table>
382 </dd>
383 </dl>
384
385 <p><div class="dynheader">
386 Here is the call graph for this function:</div>
387 <div class="dyncontent">
388 <div class="center"><img src="php__raphf__api_8c_ae8124f3f73e96e2193ae03c5519d2763_cgraph.png" border="0" usemap="#php__raphf__api_8c_ae8124f3f73e96e2193ae03c5519d2763_cgraph" alt=""/></div>
389 <map name="php__raphf__api_8c_ae8124f3f73e96e2193ae03c5519d2763_cgraph" id="php__raphf__api_8c_ae8124f3f73e96e2193ae03c5519d2763_cgraph">
390 <area shape="rect" id="node2" href="php__raphf__api_8c.html#a08db5f3698f2d0bf3d2f20dcf4e7b2b4" title="Create a copy of the resource handle. " alt="" coords="205,5,352,47"/>
391 </map>
392 </div>
393 </p>
394
395 </div>
396 </div>
397 <a class="anchor" id="af6636e870497be0699d2781e5fc8a2a9"></a>
398 <div class="memitem">
399 <div class="memproto">
400 <table class="memname">
401 <tr>
402 <td class="memname">void* php_persistent_handle_acquire </td>
403 <td>(</td>
404 <td class="paramtype"><a class="el" href="php__raphf__api_8h.html#a833eaa62ffcc217e5749c26c18885b17">php_persistent_handle_factory_t</a> *&#160;</td>
405 <td class="paramname"><em>a</em>, </td>
406 </tr>
407 <tr>
408 <td class="paramkey"></td>
409 <td></td>
410 <td class="paramtype">void *&#160;</td>
411 <td class="paramname"><em>init_arg</em>&#160;</td>
412 </tr>
413 <tr>
414 <td></td>
415 <td>)</td>
416 <td></td><td></td>
417 </tr>
418 </table>
419 </div><div class="memdoc">
420
421 <p>Acquire a persistent handle. </p>
422 <p>That is, either re-use a resource from the free list or create a new handle.</p>
423 <p>If a handle is acquired from the free list, the <a class="el" href="php__raphf__api_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>
424 <dl class="params"><dt>Parameters</dt><dd>
425 <table class="params">
426 <tr><td class="paramname">a</td><td>the persistent handle factory </td></tr>
427 <tr><td class="paramname">init_arg</td><td>the <em>init_arg</em> for <a class="el" href="php__raphf__api_8h.html#a98d02dc80dd83095b8f901954350840c" title="Construct a resource by the resource factory f. ">php_resource_factory_handle_ctor()</a> </td></tr>
428 </table>
429 </dd>
430 </dl>
431 <dl class="section return"><dt>Returns</dt><dd>the acquired resource </dd></dl>
432
433 <p><div class="dynheader">
434 Here is the call graph for this function:</div>
435 <div class="dyncontent">
436 <div class="center"><img src="php__raphf__api_8c_af6636e870497be0699d2781e5fc8a2a9_cgraph.png" border="0" usemap="#php__raphf__api_8c_af6636e870497be0699d2781e5fc8a2a9_cgraph" alt=""/></div>
437 <map name="php__raphf__api_8c_af6636e870497be0699d2781e5fc8a2a9_cgraph" id="php__raphf__api_8c_af6636e870497be0699d2781e5fc8a2a9_cgraph">
438 <area shape="rect" id="node2" href="php__raphf__api_8c.html#a98d02dc80dd83095b8f901954350840c" title="Construct a resource by the resource factory f. " alt="" coords="205,5,352,47"/>
439 </map>
440 </div>
441 </p>
442
443 </div>
444 </div>
445 <a class="anchor" id="a0d661d1f880270146012eb8781e5343e"></a>
446 <div class="memitem">
447 <div class="memproto">
448 <table class="memname">
449 <tr>
450 <td class="memname">void php_persistent_handle_cleanup </td>
451 <td>(</td>
452 <td class="paramtype">const char *&#160;</td>
453 <td class="paramname"><em>name_str</em>, </td>
454 </tr>
455 <tr>
456 <td class="paramkey"></td>
457 <td></td>
458 <td class="paramtype">size_t&#160;</td>
459 <td class="paramname"><em>name_len</em>, </td>
460 </tr>
461 <tr>
462 <td class="paramkey"></td>
463 <td></td>
464 <td class="paramtype">const char *&#160;</td>
465 <td class="paramname"><em>ident_str</em>, </td>
466 </tr>
467 <tr>
468 <td class="paramkey"></td>
469 <td></td>
470 <td class="paramtype">size_t&#160;</td>
471 <td class="paramname"><em>ident_len</em>&#160;</td>
472 </tr>
473 <tr>
474 <td></td>
475 <td>)</td>
476 <td></td><td></td>
477 </tr>
478 </table>
479 </div><div class="memdoc">
480
481 <p>Clean persistent handles up. </p>
482 <p>Destroy persistent handles of provider <em>name_str</em> and in subsidiary namespace <em>ident_str</em>.</p>
483 <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>
484 <p>If <em>ident_str</em> is NULL all persistent handles of the provider will be cleaned up.</p>
485 <p>Ergo, if both, <em>name_str</em> and <em>ident_str</em> are NULL, then all persistent handles will be cleaned up.</p>
486 <p>You must call this in MSHUTDOWN, if your resource factory ops hold a registered <a class="el" href="structphp__resource__factory.html#a7d6c89f9c6035be8a5e166a6a86cd1c7" 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>
487 <dl class="params"><dt>Parameters</dt><dd>
488 <table class="params">
489 <tr><td class="paramname">name_str</td><td>the provider name; may be NULL </td></tr>
490 <tr><td class="paramname">name_len</td><td>the provider name length </td></tr>
491 <tr><td class="paramname">ident_str</td><td>the subsidiary namespace name; may be NULL </td></tr>
492 <tr><td class="paramname">ident_len</td><td>the subsidiary namespace name length </td></tr>
493 </table>
494 </dd>
495 </dl>
496
497 </div>
498 </div>
499 <a class="anchor" id="a0a266874dafb69cf2b040378d4033901"></a>
500 <div class="memitem">
501 <div class="memproto">
502 <table class="memname">
503 <tr>
504 <td class="memname"><a class="el" href="php__raphf__api_8h.html#a833eaa62ffcc217e5749c26c18885b17">php_persistent_handle_factory_t</a>* php_persistent_handle_concede </td>
505 <td>(</td>
506 <td class="paramtype"><a class="el" href="php__raphf__api_8h.html#a833eaa62ffcc217e5749c26c18885b17">php_persistent_handle_factory_t</a> *&#160;</td>
507 <td class="paramname"><em>a</em>, </td>
508 </tr>
509 <tr>
510 <td class="paramkey"></td>
511 <td></td>
512 <td class="paramtype">const char *&#160;</td>
513 <td class="paramname"><em>name_str</em>, </td>
514 </tr>
515 <tr>
516 <td class="paramkey"></td>
517 <td></td>
518 <td class="paramtype">size_t&#160;</td>
519 <td class="paramname"><em>name_len</em>, </td>
520 </tr>
521 <tr>
522 <td class="paramkey"></td>
523 <td></td>
524 <td class="paramtype">const char *&#160;</td>
525 <td class="paramname"><em>ident_str</em>, </td>
526 </tr>
527 <tr>
528 <td class="paramkey"></td>
529 <td></td>
530 <td class="paramtype">size_t&#160;</td>
531 <td class="paramname"><em>ident_len</em>, </td>
532 </tr>
533 <tr>
534 <td class="paramkey"></td>
535 <td></td>
536 <td class="paramtype"><a class="el" href="php__raphf__api_8h.html#a59f5566ecc4c76e048ad53469eb20142">php_persistent_handle_wakeup_t</a>&#160;</td>
537 <td class="paramname"><em>wakeup</em>, </td>
538 </tr>
539 <tr>
540 <td class="paramkey"></td>
541 <td></td>
542 <td class="paramtype"><a class="el" href="php__raphf__api_8h.html#a85e9e715d308dc5d98b980c9c57d02bf">php_persistent_handle_retire_t</a>&#160;</td>
543 <td class="paramname"><em>retire</em>&#160;</td>
544 </tr>
545 <tr>
546 <td></td>
547 <td>)</td>
548 <td></td><td></td>
549 </tr>
550 </table>
551 </div><div class="memdoc">
552
553 <p>Retrieve a persistent handle factory at runtime. </p>
554 <p>If a persistent handle provider has been registered for <em>name_str</em>, a new <a class="el" href="php__raphf__api_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>
555 <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__api_8h.html#structphp__persistent__handle__factory" title="Definition of a persistent handle factory. ">php_persistent_handle_factory</a>.</p>
556 <dl class="params"><dt>Parameters</dt><dd>
557 <table class="params">
558 <tr><td class="paramname">a</td><td>pointer to a factory; allocated on the heap if NULL </td></tr>
559 <tr><td class="paramname">name_str</td><td>the provider name, e.g. "http\Client\Curl" </td></tr>
560 <tr><td class="paramname">name_len</td><td>the provider name length, e.g. strlen("http\Client\Curl") </td></tr>
561 <tr><td class="paramname">ident_str</td><td>the subsidiary namespace, e.g. "php.net:80" </td></tr>
562 <tr><td class="paramname">ident_len</td><td>the subsidiary namespace lenght, e.g. strlen("php.net:80") </td></tr>
563 <tr><td class="paramname">wakeup</td><td>any persistent handle wakeup routine </td></tr>
564 <tr><td class="paramname">retire</td><td>any persistent handle retire routine </td></tr>
565 </table>
566 </dd>
567 </dl>
568 <dl class="section return"><dt>Returns</dt><dd><em>a</em> or an allocated persistent handle factory </dd></dl>
569
570 </div>
571 </div>
572 <a class="anchor" id="a93458ab12d810f0fd545fb1464ba9eca"></a>
573 <div class="memitem">
574 <div class="memproto">
575 <table class="memname">
576 <tr>
577 <td class="memname"><a class="el" href="php__raphf__api_8h.html#a29e0d7a66e441a5265ddf2f0adbbb3af">php_resource_factory_ops_t</a>* php_persistent_handle_get_resource_factory_ops </td>
578 <td>(</td>
579 <td class="paramtype">void&#160;</td>
580 <td class="paramname"></td><td>)</td>
581 <td></td>
582 </tr>
583 </table>
584 </div><div class="memdoc">
585
586 <p>Retrieve persistent handle resource factory ops. </p>
587 <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>
588 <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>
589 <div class="line"> <span class="keywordtype">size_t</span> persistent_id_len TSRMLS_DC)</div>
590 <div class="line">{</div>
591 <div class="line"> <a class="code" href="structphp__resource__factory.html">php_resource_factory_t</a> *rf;</div>
592 <div class="line"></div>
593 <div class="line"> <span class="keywordflow">if</span> (persistent_id_str) {</div>
594 <div class="line"> <a class="code" href="php__raphf__api_8h.html#structphp__persistent__handle__factory">php_persistent_handle_factory_t</a> *pf;</div>
595 <div class="line"> <a class="code" href="php__raphf__api_8h.html#structphp__resource__factory__ops">php_resource_factory_ops_t</a> *ops;</div>
596 <div class="line"></div>
597 <div class="line"> ops = <a class="code" href="php__raphf__api_8c.html#a93458ab12d810f0fd545fb1464ba9eca">php_persistent_handle_get_resource_factory_ops</a>();</div>
598 <div class="line"></div>
599 <div class="line"> pf = <a class="code" href="php__raphf__api_8c.html#a0a266874dafb69cf2b040378d4033901">php_persistent_handle_concede</a>(NULL, <span class="stringliteral">&quot;my&quot;</span>, 2,</div>
600 <div class="line"> persistent_id_str, persistent_id_len, NULL, NULL TSRMLS_CC);</div>
601 <div class="line"></div>
602 <div class="line"> rf = <a class="code" href="php__raphf__api_8c.html#ab754f4d59dab5de0edf702a9ab2f4e03">php_persistent_handle_resource_factory_init</a>(NULL, pf);</div>
603 <div class="line"> } <span class="keywordflow">else</span> {</div>
604 <div class="line"> rf = <a class="code" href="php__raphf__api_8c.html#ad20f10c53e3f33756638da98819367f0">php_resource_factory_init</a>(NULL, &amp;myops, NULL, NULL);</div>
605 <div class="line"> }</div>
606 <div class="line"> <span class="keywordflow">return</span> rf;</div>
607 <div class="line">}</div>
608 </div><!-- fragment -->
609 <p>Referenced by <a class="el" href="php__raphf__api_8h.html#ab754f4d59dab5de0edf702a9ab2f4e03">php_persistent_handle_resource_factory_init()</a>.</p>
610
611 <p><div class="dynheader">
612 Here is the caller graph for this function:</div>
613 <div class="dyncontent">
614 <div class="center"><img src="php__raphf__api_8c_a93458ab12d810f0fd545fb1464ba9eca_icgraph.png" border="0" usemap="#php__raphf__api_8c_a93458ab12d810f0fd545fb1464ba9eca_icgraph" alt=""/></div>
615 <map name="php__raphf__api_8c_a93458ab12d810f0fd545fb1464ba9eca_icgraph" id="php__raphf__api_8c_a93458ab12d810f0fd545fb1464ba9eca_icgraph">
616 <area shape="rect" id="node2" href="php__raphf__api_8h.html#ab754f4d59dab5de0edf702a9ab2f4e03" title="Create a resource factory for persistent handles. " alt="" coords="232,5,384,47"/>
617 </map>
618 </div>
619 </p>
620
621 </div>
622 </div>
623 <a class="anchor" id="aeeeb92e5e498b6f8c98b9ac6d5b695f3"></a>
624 <div class="memitem">
625 <div class="memproto">
626 <table class="memname">
627 <tr>
628 <td class="memname"><a class="el" href="php__raphf__api_8c.html#a7e00ad2b6e2b119af6feea77ddfcc7e1">ZEND_RESULT_CODE</a> php_persistent_handle_provide </td>
629 <td>(</td>
630 <td class="paramtype">const char *&#160;</td>
631 <td class="paramname"><em>name_str</em>, </td>
632 </tr>
633 <tr>
634 <td class="paramkey"></td>
635 <td></td>
636 <td class="paramtype">size_t&#160;</td>
637 <td class="paramname"><em>name_len</em>, </td>
638 </tr>
639 <tr>
640 <td class="paramkey"></td>
641 <td></td>
642 <td class="paramtype"><a class="el" href="php__raphf__api_8h.html#a29e0d7a66e441a5265ddf2f0adbbb3af">php_resource_factory_ops_t</a> *&#160;</td>
643 <td class="paramname"><em>fops</em>, </td>
644 </tr>
645 <tr>
646 <td class="paramkey"></td>
647 <td></td>
648 <td class="paramtype">void *&#160;</td>
649 <td class="paramname"><em>data</em>, </td>
650 </tr>
651 <tr>
652 <td class="paramkey"></td>
653 <td></td>
654 <td class="paramtype">void(*)(void *)&#160;</td>
655 <td class="paramname"><em>dtor</em>&#160;</td>
656 </tr>
657 <tr>
658 <td></td>
659 <td>)</td>
660 <td></td><td></td>
661 </tr>
662 </table>
663 </div><div class="memdoc">
664
665 <p>Register a persistent handle provider in MINIT. </p>
666 <p>Registers a factory provider for <em>name_str</em> with <em>fops</em> resource factory ops. Call this in your MINIT.</p>
667 <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__api_8h.html#structphp__persistent__handle__list" title="Persistent handles storage. ">php_persistent_handle_list</a> in the global raphf hash.</p>
668 <p>A <a class="el" href="php__raphf__api_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__api_8h.html#a0a266874dafb69cf2b040378d4033901" title="Retrieve a persistent handle factory at runtime. ">php_persistent_handle_concede()</a> at runtime.</p>
669 <dl class="params"><dt>Parameters</dt><dd>
670 <table class="params">
671 <tr><td class="paramname">name_str</td><td>the provider name, e.g. "http\Client\Curl" </td></tr>
672 <tr><td class="paramname">name_len</td><td>the provider name length, e.g. strlen("http\Client\Curl") </td></tr>
673 <tr><td class="paramname">fops</td><td>the resource factory ops </td></tr>
674 <tr><td class="paramname">data</td><td>opaque user data </td></tr>
675 <tr><td class="paramname">dtor</td><td><em>data</em> destructor </td></tr>
676 </table>
677 </dd>
678 </dl>
679 <dl class="section return"><dt>Returns</dt><dd>SUCCESS/FAILURE </dd></dl>
680
681 <p><div class="dynheader">
682 Here is the call graph for this function:</div>
683 <div class="dyncontent">
684 <div class="center"><img src="php__raphf__api_8c_aeeeb92e5e498b6f8c98b9ac6d5b695f3_cgraph.png" border="0" usemap="#php__raphf__api_8c_aeeeb92e5e498b6f8c98b9ac6d5b695f3_cgraph" alt=""/></div>
685 <map name="php__raphf__api_8c_aeeeb92e5e498b6f8c98b9ac6d5b695f3_cgraph" id="php__raphf__api_8c_aeeeb92e5e498b6f8c98b9ac6d5b695f3_cgraph">
686 <area shape="rect" id="node2" href="php__raphf__api_8c.html#ad20f10c53e3f33756638da98819367f0" title="Initialize a resource factory. " alt="" coords="208,5,379,32"/>
687 <area shape="rect" id="node3" href="php__raphf__api_8c.html#a016b8a4159e698f915ab967711696847" title="Destroy the resource factory. " alt="" coords="205,56,381,83"/>
688 </map>
689 </div>
690 </p>
691
692 </div>
693 </div>
694 <a class="anchor" id="af08ee05c51d52200755d24f6f52df144"></a>
695 <div class="memitem">
696 <div class="memproto">
697 <table class="memname">
698 <tr>
699 <td class="memname">void php_persistent_handle_release </td>
700 <td>(</td>
701 <td class="paramtype"><a class="el" href="php__raphf__api_8h.html#a833eaa62ffcc217e5749c26c18885b17">php_persistent_handle_factory_t</a> *&#160;</td>
702 <td class="paramname"><em>a</em>, </td>
703 </tr>
704 <tr>
705 <td class="paramkey"></td>
706 <td></td>
707 <td class="paramtype">void *&#160;</td>
708 <td class="paramname"><em>handle</em>&#160;</td>
709 </tr>
710 <tr>
711 <td></td>
712 <td>)</td>
713 <td></td><td></td>
714 </tr>
715 </table>
716 </div><div class="memdoc">
717
718 <p>Release a persistent handle. </p>
719 <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__api_8h.html#a97dbb9d342f33205b92374c586676bc6" title="Destroy (and free) the resource. ">php_resource_factory_handle_dtor()</a>.</p>
720 <p>If a handle is put back into the free list, the <a class="el" href="php__raphf__api_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>
721 <dl class="params"><dt>Parameters</dt><dd>
722 <table class="params">
723 <tr><td class="paramname">a</td><td>the persistent handle factory </td></tr>
724 <tr><td class="paramname">handle</td><td>the handle to release </td></tr>
725 </table>
726 </dd>
727 </dl>
728
729 <p><div class="dynheader">
730 Here is the call graph for this function:</div>
731 <div class="dyncontent">
732 <div class="center"><img src="php__raphf__api_8c_af08ee05c51d52200755d24f6f52df144_cgraph.png" border="0" usemap="#php__raphf__api_8c_af08ee05c51d52200755d24f6f52df144_cgraph" alt=""/></div>
733 <map name="php__raphf__api_8c_af08ee05c51d52200755d24f6f52df144_cgraph" id="php__raphf__api_8c_af08ee05c51d52200755d24f6f52df144_cgraph">
734 <area shape="rect" id="node2" href="php__raphf__api_8c.html#a97dbb9d342f33205b92374c586676bc6" title="Destroy (and free) the resource. " alt="" coords="205,5,352,47"/>
735 </map>
736 </div>
737 </p>
738
739 </div>
740 </div>
741 <a class="anchor" id="ab754f4d59dab5de0edf702a9ab2f4e03"></a>
742 <div class="memitem">
743 <div class="memproto">
744 <table class="memname">
745 <tr>
746 <td class="memname"><a class="el" href="php__raphf__api_8h.html#a4817c4b3d4077c48dff36376487ba8d4">php_resource_factory_t</a>* php_persistent_handle_resource_factory_init </td>
747 <td>(</td>
748 <td class="paramtype"><a class="el" href="php__raphf__api_8h.html#a4817c4b3d4077c48dff36376487ba8d4">php_resource_factory_t</a> *&#160;</td>
749 <td class="paramname"><em>a</em>, </td>
750 </tr>
751 <tr>
752 <td class="paramkey"></td>
753 <td></td>
754 <td class="paramtype"><a class="el" href="php__raphf__api_8h.html#a833eaa62ffcc217e5749c26c18885b17">php_persistent_handle_factory_t</a> *&#160;</td>
755 <td class="paramname"><em>pf</em>&#160;</td>
756 </tr>
757 <tr>
758 <td></td>
759 <td>)</td>
760 <td></td><td></td>
761 </tr>
762 </table>
763 </div><div class="memdoc">
764
765 <p>Create a resource factory for persistent handles. </p>
766 <p>This will create a resource factory with persistent handle ops, which wraps the provided reource factory <em>pf</em>.</p>
767 <dl class="params"><dt>Parameters</dt><dd>
768 <table class="params">
769 <tr><td class="paramname">a</td><td>the persistent handle resource factory to initialize </td></tr>
770 <tr><td class="paramname">pf</td><td>the resource factory to wrap </td></tr>
771 </table>
772 </dd>
773 </dl>
774
775 <p><div class="dynheader">
776 Here is the call graph for this function:</div>
777 <div class="dyncontent">
778 <div class="center"><img src="php__raphf__api_8c_ab754f4d59dab5de0edf702a9ab2f4e03_cgraph.png" border="0" usemap="#php__raphf__api_8c_ab754f4d59dab5de0edf702a9ab2f4e03_cgraph" alt=""/></div>
779 <map name="php__raphf__api_8c_ab754f4d59dab5de0edf702a9ab2f4e03_cgraph" id="php__raphf__api_8c_ab754f4d59dab5de0edf702a9ab2f4e03_cgraph">
780 <area shape="rect" id="node2" href="php__raphf__api_8c.html#ad20f10c53e3f33756638da98819367f0" title="Initialize a resource factory. " alt="" coords="209,5,380,32"/>
781 <area shape="rect" id="node3" href="php__raphf__api_8c.html#a93458ab12d810f0fd545fb1464ba9eca" title="Retrieve persistent handle resource factory ops. " alt="" coords="205,57,384,98"/>
782 <area shape="rect" id="node4" href="php__raphf__api_8c.html#ab12ec2da7189e16fbed40a3b73bc9ee2" title="Abandon the persistent handle factory. " alt="" coords="219,122,371,163"/>
783 </map>
784 </div>
785 </p>
786
787 </div>
788 </div>
789 <a class="anchor" id="ae174fbe124d4cb6010e218a68379bd18"></a>
790 <div class="memitem">
791 <div class="memproto">
792 <table class="memname">
793 <tr>
794 <td class="memname">HashTable* php_persistent_handle_statall </td>
795 <td>(</td>
796 <td class="paramtype">HashTable *&#160;</td>
797 <td class="paramname"><em>ht</em></td><td>)</td>
798 <td></td>
799 </tr>
800 </table>
801 </div><div class="memdoc">
802
803 <p>Retrieve statistics about the current process/thread's persistent handles. </p>
804 <dl class="section return"><dt>Returns</dt><dd>a HashTable like: <div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;[</div>
805 <div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160; &quot;name&quot; =&gt; [</div>
806 <div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160; &quot;ident&quot; =&gt; [</div>
807 <div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160; &quot;used&quot; =&gt; 1,</div>
808 <div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160; &quot;free&quot; =&gt; 0,</div>
809 <div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160; ]</div>
810 <div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160; ]</div>
811 <div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;]</div>
812 </div><!-- fragment --> </dd></dl>
813
814 </div>
815 </div>
816 <a class="anchor" id="ae8be369197905047ffbd05c0ca80f245"></a>
817 <div class="memitem">
818 <div class="memproto">
819 <table class="memname">
820 <tr>
821 <td class="memname">unsigned php_resource_factory_addref </td>
822 <td>(</td>
823 <td class="paramtype"><a class="el" href="php__raphf__api_8h.html#a4817c4b3d4077c48dff36376487ba8d4">php_resource_factory_t</a> *&#160;</td>
824 <td class="paramname"><em>rf</em></td><td>)</td>
825 <td></td>
826 </tr>
827 </table>
828 </div><div class="memdoc">
829
830 <p>Increase the refcount of the resource factory. </p>
831 <dl class="params"><dt>Parameters</dt><dd>
832 <table class="params">
833 <tr><td class="paramname">rf</td><td>the resource factory </td></tr>
834 </table>
835 </dd>
836 </dl>
837 <dl class="section return"><dt>Returns</dt><dd>the new refcount </dd></dl>
838
839 </div>
840 </div>
841 <a class="anchor" id="a016b8a4159e698f915ab967711696847"></a>
842 <div class="memitem">
843 <div class="memproto">
844 <table class="memname">
845 <tr>
846 <td class="memname">void php_resource_factory_dtor </td>
847 <td>(</td>
848 <td class="paramtype"><a class="el" href="php__raphf__api_8h.html#a4817c4b3d4077c48dff36376487ba8d4">php_resource_factory_t</a> *&#160;</td>
849 <td class="paramname"><em>f</em></td><td>)</td>
850 <td></td>
851 </tr>
852 </table>
853 </div><div class="memdoc">
854
855 <p>Destroy the resource factory. </p>
856 <p>If the factory's refcount reaches 0, the <em>dtor</em> for <em>data</em> is called.</p>
857 <dl class="params"><dt>Parameters</dt><dd>
858 <table class="params">
859 <tr><td class="paramname">f</td><td>the resource factory </td></tr>
860 </table>
861 </dd>
862 </dl>
863
864 <p>Referenced by <a class="el" href="php__raphf__api_8h.html#a3cbbe29c8a4ed9858c921c8ee539de59">php_persistent_handle_provide()</a>, and <a class="el" href="php__raphf__api_8h.html#a7f012d685f5f7c08f50288b61232e689">php_resource_factory_free()</a>.</p>
865
866 <p><div class="dynheader">
867 Here is the caller graph for this function:</div>
868 <div class="dyncontent">
869 <div class="center"><img src="php__raphf__api_8c_a016b8a4159e698f915ab967711696847_icgraph.png" border="0" usemap="#php__raphf__api_8c_a016b8a4159e698f915ab967711696847_icgraph" alt=""/></div>
870 <map name="php__raphf__api_8c_a016b8a4159e698f915ab967711696847_icgraph" id="php__raphf__api_8c_a016b8a4159e698f915ab967711696847_icgraph">
871 <area shape="rect" id="node2" href="php__raphf__api_8h.html#a3cbbe29c8a4ed9858c921c8ee539de59" title="Register a persistent handle provider in MINIT. " alt="" coords="241,5,393,47"/>
872 <area shape="rect" id="node3" href="php__raphf__api_8h.html#a7f012d685f5f7c08f50288b61232e689" title="Destroy and free the resource factory. " alt="" coords="229,71,405,98"/>
873 </map>
874 </div>
875 </p>
876
877 </div>
878 </div>
879 <a class="anchor" id="a7f012d685f5f7c08f50288b61232e689"></a>
880 <div class="memitem">
881 <div class="memproto">
882 <table class="memname">
883 <tr>
884 <td class="memname">void php_resource_factory_free </td>
885 <td>(</td>
886 <td class="paramtype"><a class="el" href="php__raphf__api_8h.html#a4817c4b3d4077c48dff36376487ba8d4">php_resource_factory_t</a> **&#160;</td>
887 <td class="paramname"><em>f</em></td><td>)</td>
888 <td></td>
889 </tr>
890 </table>
891 </div><div class="memdoc">
892
893 <p>Destroy and free the resource factory. </p>
894 <p>Calls <a class="el" href="php__raphf__api_8h.html#a016b8a4159e698f915ab967711696847" title="Destroy the resource factory. ">php_resource_factory_dtor()</a> and frees \æ f if the factory's refcount reached 0.</p>
895 <dl class="params"><dt>Parameters</dt><dd>
896 <table class="params">
897 <tr><td class="paramname">f</td><td>the resource factory </td></tr>
898 </table>
899 </dd>
900 </dl>
901
902 <p><div class="dynheader">
903 Here is the call graph for this function:</div>
904 <div class="dyncontent">
905 <div class="center"><img src="php__raphf__api_8c_a7f012d685f5f7c08f50288b61232e689_cgraph.png" border="0" usemap="#php__raphf__api_8c_a7f012d685f5f7c08f50288b61232e689_cgraph" alt=""/></div>
906 <map name="php__raphf__api_8c_a7f012d685f5f7c08f50288b61232e689_cgraph" id="php__raphf__api_8c_a7f012d685f5f7c08f50288b61232e689_cgraph">
907 <area shape="rect" id="node2" href="php__raphf__api_8c.html#a016b8a4159e698f915ab967711696847" title="Destroy the resource factory. " alt="" coords="229,5,405,32"/>
908 </map>
909 </div>
910 </p>
911
912 </div>
913 </div>
914 <a class="anchor" id="a08db5f3698f2d0bf3d2f20dcf4e7b2b4"></a>
915 <div class="memitem">
916 <div class="memproto">
917 <table class="memname">
918 <tr>
919 <td class="memname">void* php_resource_factory_handle_copy </td>
920 <td>(</td>
921 <td class="paramtype"><a class="el" href="php__raphf__api_8h.html#a4817c4b3d4077c48dff36376487ba8d4">php_resource_factory_t</a> *&#160;</td>
922 <td class="paramname"><em>f</em>, </td>
923 </tr>
924 <tr>
925 <td class="paramkey"></td>
926 <td></td>
927 <td class="paramtype">void *&#160;</td>
928 <td class="paramname"><em>handle</em>&#160;</td>
929 </tr>
930 <tr>
931 <td></td>
932 <td>)</td>
933 <td></td><td></td>
934 </tr>
935 </table>
936 </div><div class="memdoc">
937
938 <p>Create a copy of the resource <em>handle</em>. </p>
939 <dl class="params"><dt>Parameters</dt><dd>
940 <table class="params">
941 <tr><td class="paramname">f</td><td>the resource factory </td></tr>
942 <tr><td class="paramname">handle</td><td>the resource to copy </td></tr>
943 </table>
944 </dd>
945 </dl>
946 <dl class="section return"><dt>Returns</dt><dd>the copy </dd></dl>
947
948 <p>Referenced by <a class="el" href="php__raphf__api_8h.html#ae8124f3f73e96e2193ae03c5519d2763">php_persistent_handle_accrete()</a>.</p>
949
950 <p><div class="dynheader">
951 Here is the caller graph for this function:</div>
952 <div class="dyncontent">
953 <div class="center"><img src="php__raphf__api_8c_a08db5f3698f2d0bf3d2f20dcf4e7b2b4_icgraph.png" border="0" usemap="#php__raphf__api_8c_a08db5f3698f2d0bf3d2f20dcf4e7b2b4_icgraph" alt=""/></div>
954 <map name="php__raphf__api_8c_a08db5f3698f2d0bf3d2f20dcf4e7b2b4_icgraph" id="php__raphf__api_8c_a08db5f3698f2d0bf3d2f20dcf4e7b2b4_icgraph">
955 <area shape="rect" id="node2" href="php__raphf__api_8h.html#ae8124f3f73e96e2193ae03c5519d2763" title="Copy a persistent handle. " alt="" coords="200,5,352,47"/>
956 </map>
957 </div>
958 </p>
959
960 </div>
961 </div>
962 <a class="anchor" id="a98d02dc80dd83095b8f901954350840c"></a>
963 <div class="memitem">
964 <div class="memproto">
965 <table class="memname">
966 <tr>
967 <td class="memname">void* php_resource_factory_handle_ctor </td>
968 <td>(</td>
969 <td class="paramtype"><a class="el" href="php__raphf__api_8h.html#a4817c4b3d4077c48dff36376487ba8d4">php_resource_factory_t</a> *&#160;</td>
970 <td class="paramname"><em>f</em>, </td>
971 </tr>
972 <tr>
973 <td class="paramkey"></td>
974 <td></td>
975 <td class="paramtype">void *&#160;</td>
976 <td class="paramname"><em>init_arg</em>&#160;</td>
977 </tr>
978 <tr>
979 <td></td>
980 <td>)</td>
981 <td></td><td></td>
982 </tr>
983 </table>
984 </div><div class="memdoc">
985
986 <p>Construct a resource by the resource factory <em>f</em>. </p>
987 <dl class="params"><dt>Parameters</dt><dd>
988 <table class="params">
989 <tr><td class="paramname">f</td><td>the resource factory </td></tr>
990 <tr><td class="paramname">init_arg</td><td>for the resource constructor </td></tr>
991 </table>
992 </dd>
993 </dl>
994 <dl class="section return"><dt>Returns</dt><dd>the new resource </dd></dl>
995
996 <p>Referenced by <a class="el" href="php__raphf__api_8h.html#af6636e870497be0699d2781e5fc8a2a9">php_persistent_handle_acquire()</a>.</p>
997
998 <p><div class="dynheader">
999 Here is the caller graph for this function:</div>
1000 <div class="dyncontent">
1001 <div class="center"><img src="php__raphf__api_8c_a98d02dc80dd83095b8f901954350840c_icgraph.png" border="0" usemap="#php__raphf__api_8c_a98d02dc80dd83095b8f901954350840c_icgraph" alt=""/></div>
1002 <map name="php__raphf__api_8c_a98d02dc80dd83095b8f901954350840c_icgraph" id="php__raphf__api_8c_a98d02dc80dd83095b8f901954350840c_icgraph">
1003 <area shape="rect" id="node2" href="php__raphf__api_8h.html#af6636e870497be0699d2781e5fc8a2a9" title="Acquire a persistent handle. " alt="" coords="200,5,352,47"/>
1004 </map>
1005 </div>
1006 </p>
1007
1008 </div>
1009 </div>
1010 <a class="anchor" id="a97dbb9d342f33205b92374c586676bc6"></a>
1011 <div class="memitem">
1012 <div class="memproto">
1013 <table class="memname">
1014 <tr>
1015 <td class="memname">void php_resource_factory_handle_dtor </td>
1016 <td>(</td>
1017 <td class="paramtype"><a class="el" href="php__raphf__api_8h.html#a4817c4b3d4077c48dff36376487ba8d4">php_resource_factory_t</a> *&#160;</td>
1018 <td class="paramname"><em>f</em>, </td>
1019 </tr>
1020 <tr>
1021 <td class="paramkey"></td>
1022 <td></td>
1023 <td class="paramtype">void *&#160;</td>
1024 <td class="paramname"><em>handle</em>&#160;</td>
1025 </tr>
1026 <tr>
1027 <td></td>
1028 <td>)</td>
1029 <td></td><td></td>
1030 </tr>
1031 </table>
1032 </div><div class="memdoc">
1033
1034 <p>Destroy (and free) the resource. </p>
1035 <dl class="params"><dt>Parameters</dt><dd>
1036 <table class="params">
1037 <tr><td class="paramname">f</td><td>the resource factory </td></tr>
1038 <tr><td class="paramname">handle</td><td>the resource to destroy </td></tr>
1039 </table>
1040 </dd>
1041 </dl>
1042
1043 <p>Referenced by <a class="el" href="php__raphf__api_8h.html#af08ee05c51d52200755d24f6f52df144">php_persistent_handle_release()</a>.</p>
1044
1045 <p><div class="dynheader">
1046 Here is the caller graph for this function:</div>
1047 <div class="dyncontent">
1048 <div class="center"><img src="php__raphf__api_8c_a97dbb9d342f33205b92374c586676bc6_icgraph.png" border="0" usemap="#php__raphf__api_8c_a97dbb9d342f33205b92374c586676bc6_icgraph" alt=""/></div>
1049 <map name="php__raphf__api_8c_a97dbb9d342f33205b92374c586676bc6_icgraph" id="php__raphf__api_8c_a97dbb9d342f33205b92374c586676bc6_icgraph">
1050 <area shape="rect" id="node2" href="php__raphf__api_8h.html#af08ee05c51d52200755d24f6f52df144" title="Release a persistent handle. " alt="" coords="200,5,352,47"/>
1051 </map>
1052 </div>
1053 </p>
1054
1055 </div>
1056 </div>
1057 <a class="anchor" id="ad20f10c53e3f33756638da98819367f0"></a>
1058 <div class="memitem">
1059 <div class="memproto">
1060 <table class="memname">
1061 <tr>
1062 <td class="memname"><a class="el" href="php__raphf__api_8h.html#a4817c4b3d4077c48dff36376487ba8d4">php_resource_factory_t</a>* php_resource_factory_init </td>
1063 <td>(</td>
1064 <td class="paramtype"><a class="el" href="php__raphf__api_8h.html#a4817c4b3d4077c48dff36376487ba8d4">php_resource_factory_t</a> *&#160;</td>
1065 <td class="paramname"><em>f</em>, </td>
1066 </tr>
1067 <tr>
1068 <td class="paramkey"></td>
1069 <td></td>
1070 <td class="paramtype"><a class="el" href="php__raphf__api_8h.html#a29e0d7a66e441a5265ddf2f0adbbb3af">php_resource_factory_ops_t</a> *&#160;</td>
1071 <td class="paramname"><em>fops</em>, </td>
1072 </tr>
1073 <tr>
1074 <td class="paramkey"></td>
1075 <td></td>
1076 <td class="paramtype">void *&#160;</td>
1077 <td class="paramname"><em>data</em>, </td>
1078 </tr>
1079 <tr>
1080 <td class="paramkey"></td>
1081 <td></td>
1082 <td class="paramtype">void(*)(void *data)&#160;</td>
1083 <td class="paramname"><em>dtor</em>&#160;</td>
1084 </tr>
1085 <tr>
1086 <td></td>
1087 <td>)</td>
1088 <td></td><td></td>
1089 </tr>
1090 </table>
1091 </div><div class="memdoc">
1092
1093 <p>Initialize a resource factory. </p>
1094 <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__api_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>
1095 <dl class="params"><dt>Parameters</dt><dd>
1096 <table class="params">
1097 <tr><td class="paramname">f</td><td>the factory to initialize; if NULL allocated on the heap </td></tr>
1098 <tr><td class="paramname">fops</td><td>the resource ops to assign to the factory </td></tr>
1099 <tr><td class="paramname">data</td><td>opaque user data; may be NULL </td></tr>
1100 <tr><td class="paramname">dtor</td><td>a destructor for the data; may be NULL </td></tr>
1101 </table>
1102 </dd>
1103 </dl>
1104 <dl class="section return"><dt>Returns</dt><dd><em>f</em> or an allocated resource factory </dd></dl>
1105
1106 <p>Referenced by <a class="el" href="php__raphf__api_8h.html#a3cbbe29c8a4ed9858c921c8ee539de59">php_persistent_handle_provide()</a>, and <a class="el" href="php__raphf__api_8h.html#ab754f4d59dab5de0edf702a9ab2f4e03">php_persistent_handle_resource_factory_init()</a>.</p>
1107
1108 <p><div class="dynheader">
1109 Here is the caller graph for this function:</div>
1110 <div class="dyncontent">
1111 <div class="center"><img src="php__raphf__api_8c_ad20f10c53e3f33756638da98819367f0_icgraph.png" border="0" usemap="#php__raphf__api_8c_ad20f10c53e3f33756638da98819367f0_icgraph" alt=""/></div>
1112 <map name="php__raphf__api_8c_ad20f10c53e3f33756638da98819367f0_icgraph" id="php__raphf__api_8c_ad20f10c53e3f33756638da98819367f0_icgraph">
1113 <area shape="rect" id="node2" href="php__raphf__api_8h.html#a3cbbe29c8a4ed9858c921c8ee539de59" title="Register a persistent handle provider in MINIT. " alt="" coords="224,5,376,47"/>
1114 <area shape="rect" id="node3" href="php__raphf__api_8h.html#ab754f4d59dab5de0edf702a9ab2f4e03" title="Create a resource factory for persistent handles. " alt="" coords="224,71,376,112"/>
1115 </map>
1116 </div>
1117 </p>
1118
1119 </div>
1120 </div>
1121 <a class="anchor" id="a617d2cc656ab6427388b938597194ebb"></a>
1122 <div class="memitem">
1123 <div class="memproto">
1124 <table class="memname">
1125 <tr>
1126 <td class="memname">zend_bool php_resource_factory_is_persistent </td>
1127 <td>(</td>
1128 <td class="paramtype"><a class="el" href="php__raphf__api_8h.html#a4817c4b3d4077c48dff36376487ba8d4">php_resource_factory_t</a> *&#160;</td>
1129 <td class="paramname"><em>a</em></td><td>)</td>
1130 <td></td>
1131 </tr>
1132 </table>
1133 </div><div class="memdoc">
1134
1135 <p>Check whether a resource factory is a persistent handle resource factory. </p>
1136 <dl class="params"><dt>Parameters</dt><dd>
1137 <table class="params">
1138 <tr><td class="paramname">a</td><td>the resource factory to check </td></tr>
1139 </table>
1140 </dd>
1141 </dl>
1142
1143 <p><div class="dynheader">
1144 Here is the call graph for this function:</div>
1145 <div class="dyncontent">
1146 <div class="center"><img src="php__raphf__api_8c_a617d2cc656ab6427388b938597194ebb_cgraph.png" border="0" usemap="#php__raphf__api_8c_a617d2cc656ab6427388b938597194ebb_cgraph" alt=""/></div>
1147 <map name="php__raphf__api_8c_a617d2cc656ab6427388b938597194ebb_cgraph" id="php__raphf__api_8c_a617d2cc656ab6427388b938597194ebb_cgraph">
1148 <area shape="rect" id="node2" href="php__raphf__api_8c.html#ab12ec2da7189e16fbed40a3b73bc9ee2" title="Abandon the persistent handle factory. " alt="" coords="200,5,352,47"/>
1149 </map>
1150 </div>
1151 </p>
1152
1153 </div>
1154 </div>
1155 <a class="anchor" id="ad2aba389e88a1e9e11b7dae021bfddfc"></a>
1156 <div class="memitem">
1157 <div class="memproto">
1158 <table class="memname">
1159 <tr>
1160 <td class="memname">STD_PHP_INI_ENTRY </td>
1161 <td>(</td>
1162 <td class="paramtype">&quot;raphf.persistent_handle.limit&quot;&#160;</td>
1163 <td class="paramname">, </td>
1164 </tr>
1165 <tr>
1166 <td class="paramkey"></td>
1167 <td></td>
1168 <td class="paramtype">&quot;-1&quot;&#160;</td>
1169 <td class="paramname">, </td>
1170 </tr>
1171 <tr>
1172 <td class="paramkey"></td>
1173 <td></td>
1174 <td class="paramtype">PHP_INI_SYSTEM&#160;</td>
1175 <td class="paramname">, </td>
1176 </tr>
1177 <tr>
1178 <td class="paramkey"></td>
1179 <td></td>
1180 <td class="paramtype">OnUpdateLong&#160;</td>
1181 <td class="paramname">, </td>
1182 </tr>
1183 <tr>
1184 <td class="paramkey"></td>
1185 <td></td>
1186 <td class="paramtype">persistent_handle.&#160;</td>
1187 <td class="paramname"><em>limit</em>, </td>
1188 </tr>
1189 <tr>
1190 <td class="paramkey"></td>
1191 <td></td>
1192 <td class="paramtype">zend_raphf_globals&#160;</td>
1193 <td class="paramname">, </td>
1194 </tr>
1195 <tr>
1196 <td class="paramkey"></td>
1197 <td></td>
1198 <td class="paramtype">raphf_globals&#160;</td>
1199 <td class="paramname">&#160;</td>
1200 </tr>
1201 <tr>
1202 <td></td>
1203 <td>)</td>
1204 <td></td><td></td>
1205 </tr>
1206 </table>
1207 </div><div class="memdoc">
1208
1209 </div>
1210 </div>
1211 <a class="anchor" id="a9337bda6793399d5917999063e1aa636"></a>
1212 <div class="memitem">
1213 <div class="memproto">
1214 <table class="memname">
1215 <tr>
1216 <td class="memname">ZEND_END_ARG_INFO </td>
1217 <td>(</td>
1218 <td class="paramname"></td><td>)</td>
1219 <td></td>
1220 </tr>
1221 </table>
1222 </div><div class="memdoc">
1223
1224 </div>
1225 </div>
1226 <h2 class="groupheader">Variable Documentation</h2>
1227 <a class="anchor" id="a385b722141c96392a35d8b6dfc29b0d3"></a>
1228 <div class="memitem">
1229 <div class="memproto">
1230 <table class="memname">
1231 <tr>
1232 <td class="memname">struct php_persistent_handle_globals persistent_handle</td>
1233 </tr>
1234 </table>
1235 </div><div class="memdoc">
1236
1237 </div>
1238 </div>
1239 <a class="anchor" id="a42f904573a2c5b1eba6ccd6604269f99"></a>
1240 <div class="memitem">
1241 <div class="memproto">
1242 <table class="memname">
1243 <tr>
1244 <td class="memname">zend_module_entry raphf_module_entry</td>
1245 </tr>
1246 </table>
1247 </div><div class="memdoc">
1248 <b>Initial value:</b><div class="fragment"><div class="line">= {</div>
1249 <div class="line"> STANDARD_MODULE_HEADER,</div>
1250 <div class="line"> <span class="stringliteral">&quot;raphf&quot;</span>,</div>
1251 <div class="line"> raphf_functions,</div>
1252 <div class="line"> PHP_MINIT(raphf),</div>
1253 <div class="line"> PHP_MSHUTDOWN(raphf),</div>
1254 <div class="line"> NULL,</div>
1255 <div class="line"> NULL,</div>
1256 <div class="line"> PHP_MINFO(raphf),</div>
1257 <div class="line"> <span class="stringliteral">&quot;1.1.0&quot;</span> ,</div>
1258 <div class="line"> ZEND_MODULE_GLOBALS(raphf),</div>
1259 <div class="line"> PHP_GINIT(raphf),</div>
1260 <div class="line"> PHP_GSHUTDOWN(raphf),</div>
1261 <div class="line"> NULL,</div>
1262 <div class="line"> STANDARD_MODULE_PROPERTIES_EX</div>
1263 <div class="line">}</div>
1264 </div><!-- fragment -->
1265 </div>
1266 </div>
1267 </div><!-- contents -->
1268 </div><!-- doc-content -->
1269 <!-- start footer part -->
1270 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
1271 <ul>
1272 <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="php__raphf__api_8c.html">php_raphf_api.c</a></li>
1273 <li class="footer">Generated by
1274 <a href="http://www.doxygen.org/index.html">
1275 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.10 </li>
1276 </ul>
1277 </div>
1278 </body>
1279 </html>