publish docs as gh-pages
[m6w6/ext-raphf] / php__raphf_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.5"/>
7 <title>Resource and persistent handle factory API: php_raphf.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="search/search.css" rel="stylesheet" type="text/css"/>
12 <script type="text/javascript" src="search/search.js"></script>
13 <script type="text/javascript">
14 $(document).ready(function() { searchBox.OnSelectItem(0); });
15 </script>
16 <link href="doxygen.css" rel="stylesheet" type="text/css" />
17 </head>
18 <body>
19 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
20 <div id="titlearea">
21 <table cellspacing="0" cellpadding="0">
22 <tbody>
23 <tr style="height: 56px;">
24 <td id="projectlogo"><img alt="Logo" src="raphf.png"/></td>
25 <td style="padding-left: 0.5em;">
26 <div id="projectname">Resource and persistent handle factory API
27 </div>
28 <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>
29 </td>
30 </tr>
31 </tbody>
32 </table>
33 </div>
34 <!-- end header part -->
35 <!-- Generated by Doxygen 1.8.5 -->
36 <script type="text/javascript">
37 var searchBox = new SearchBox("searchBox", "search",false,'Search');
38 </script>
39 <div id="navrow1" class="tabs">
40 <ul class="tablist">
41 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
42 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
43 <li class="current"><a href="files.html"><span>Files</span></a></li>
44 <li>
45 <div id="MSearchBox" class="MSearchBoxInactive">
46 <span class="left">
47 <img id="MSearchSelect" src="search/mag_sel.png"
48 onmouseover="return searchBox.OnSearchSelectShow()"
49 onmouseout="return searchBox.OnSearchSelectHide()"
50 alt=""/>
51 <input type="text" id="MSearchField" value="Search" accesskey="S"
52 onfocus="searchBox.OnSearchFieldFocus(true)"
53 onblur="searchBox.OnSearchFieldFocus(false)"
54 onkeyup="searchBox.OnSearchFieldChange(event)"/>
55 </span><span class="right">
56 <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
57 </span>
58 </div>
59 </li>
60 </ul>
61 </div>
62 <div id="navrow2" class="tabs2">
63 <ul class="tablist">
64 <li><a href="files.html"><span>File&#160;List</span></a></li>
65 <li><a href="globals.html"><span>Globals</span></a></li>
66 </ul>
67 </div>
68 <!-- window showing the filter options -->
69 <div id="MSearchSelectWindow"
70 onmouseover="return searchBox.OnSearchSelectShow()"
71 onmouseout="return searchBox.OnSearchSelectHide()"
72 onkeydown="return searchBox.OnSearchSelectKey(event)">
73 <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><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Macros</a></div>
74
75 <!-- iframe showing the search results (closed by default) -->
76 <div id="MSearchResultsWindow">
77 <iframe src="javascript:void(0)" frameborder="0"
78 name="MSearchResults" id="MSearchResults">
79 </iframe>
80 </div>
81
82 </div><!-- top -->
83 <div class="header">
84 <div class="summary">
85 <a href="#define-members">Macros</a> &#124;
86 <a href="#typedef-members">Typedefs</a> &#124;
87 <a href="#func-members">Functions</a> &#124;
88 <a href="#var-members">Variables</a> </div>
89 <div class="headertitle">
90 <div class="title">php_raphf.c File Reference</div> </div>
91 </div><!--header-->
92 <div class="contents">
93 <div class="textblock"><code>#include &quot;php.h&quot;</code><br/>
94 <code>#include &quot;php_ini.h&quot;</code><br/>
95 <code>#include &quot;ext/standard/info.h&quot;</code><br/>
96 <code>#include &quot;<a class="el" href="php__raphf_8h_source.html">php_raphf.h</a>&quot;</code><br/>
97 </div><table class="memberdecls">
98 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
99 Macros</h2></td></tr>
100 <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_8c.html#a5a6099bca8801bd4a502806ab49c1d1c">PHP_RAPHF_G</a>&#160;&#160;&#160;(&amp;raphf_globals)</td></tr>
101 <tr class="separator:a5a6099bca8801bd4a502806ab49c1d1c"><td class="memSeparator" colspan="2">&#160;</td></tr>
102 <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_8c.html#a4ac4e8587a25a7617a3bb1b2b246fe7f">PHP_RAPHF_DEBUG_PHANDLES</a>&#160;&#160;&#160;0</td></tr>
103 <tr class="separator:a4ac4e8587a25a7617a3bb1b2b246fe7f"><td class="memSeparator" colspan="2">&#160;</td></tr>
104 </table><table class="memberdecls">
105 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
106 Typedefs</h2></td></tr>
107 <tr class="memitem:a0cb9c7fae5afe4237eb4d5d43318fa18"><td class="memItemLeft" align="right" valign="top">typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php__raphf_8c.html#a0cb9c7fae5afe4237eb4d5d43318fa18">STATUS</a></td></tr>
108 <tr class="separator:a0cb9c7fae5afe4237eb4d5d43318fa18"><td class="memSeparator" colspan="2">&#160;</td></tr>
109 </table><table class="memberdecls">
110 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
111 Functions</h2></td></tr>
112 <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_8c.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>
113 <tr class="memdesc:ad20f10c53e3f33756638da98819367f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a resource factory. <a href="#ad20f10c53e3f33756638da98819367f0">More...</a><br/></td></tr>
114 <tr class="separator:ad20f10c53e3f33756638da98819367f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
115 <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_8c.html#ae8be369197905047ffbd05c0ca80f245">php_resource_factory_addref</a> (<a class="el" href="php__raphf_8h.html#a4817c4b3d4077c48dff36376487ba8d4">php_resource_factory_t</a> *rf)</td></tr>
116 <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>
117 <tr class="separator:ae8be369197905047ffbd05c0ca80f245"><td class="memSeparator" colspan="2">&#160;</td></tr>
118 <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_8c.html#a016b8a4159e698f915ab967711696847">php_resource_factory_dtor</a> (<a class="el" href="php__raphf_8h.html#a4817c4b3d4077c48dff36376487ba8d4">php_resource_factory_t</a> *f)</td></tr>
119 <tr class="memdesc:a016b8a4159e698f915ab967711696847"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroy the resource factory. <a href="#a016b8a4159e698f915ab967711696847">More...</a><br/></td></tr>
120 <tr class="separator:a016b8a4159e698f915ab967711696847"><td class="memSeparator" colspan="2">&#160;</td></tr>
121 <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_8c.html#a7f012d685f5f7c08f50288b61232e689">php_resource_factory_free</a> (<a class="el" href="php__raphf_8h.html#a4817c4b3d4077c48dff36376487ba8d4">php_resource_factory_t</a> **f)</td></tr>
122 <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>
123 <tr class="separator:a7f012d685f5f7c08f50288b61232e689"><td class="memSeparator" colspan="2">&#160;</td></tr>
124 <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_8c.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>
125 <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>
126 <tr class="separator:a98d02dc80dd83095b8f901954350840c"><td class="memSeparator" colspan="2">&#160;</td></tr>
127 <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_8c.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>
128 <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>
129 <tr class="separator:a08db5f3698f2d0bf3d2f20dcf4e7b2b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
130 <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_8c.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>
131 <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>
132 <tr class="separator:a97dbb9d342f33205b92374c586676bc6"><td class="memSeparator" colspan="2">&#160;</td></tr>
133 <tr class="memitem:a8e7e29a2450650ad87f927bb9d516762"><td class="memItemLeft" align="right" valign="top">PHP_RAPHF_API <a class="el" href="php__raphf_8c.html#a0cb9c7fae5afe4237eb4d5d43318fa18">STATUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php__raphf_8c.html#a8e7e29a2450650ad87f927bb9d516762">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>
134 <tr class="memdesc:a8e7e29a2450650ad87f927bb9d516762"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register a persistent handle provider in MINIT. <a href="#a8e7e29a2450650ad87f927bb9d516762">More...</a><br/></td></tr>
135 <tr class="separator:a8e7e29a2450650ad87f927bb9d516762"><td class="memSeparator" colspan="2">&#160;</td></tr>
136 <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_8c.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>
137 <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>
138 <tr class="separator:a0a266874dafb69cf2b040378d4033901"><td class="memSeparator" colspan="2">&#160;</td></tr>
139 <tr class="memitem:a54fe24355a9575afec9d07673addc021"><td class="memItemLeft" align="right" valign="top">PHP_RAPHF_API void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php__raphf_8c.html#a54fe24355a9575afec9d07673addc021">php_persistent_handle_abandon</a> (<a class="el" href="php__raphf_8h.html#a833eaa62ffcc217e5749c26c18885b17">php_persistent_handle_factory_t</a> *a)</td></tr>
140 <tr class="memdesc:a54fe24355a9575afec9d07673addc021"><td class="mdescLeft">&#160;</td><td class="mdescRight">Abandon the persistent handle factory. <a href="#a54fe24355a9575afec9d07673addc021">More...</a><br/></td></tr>
141 <tr class="separator:a54fe24355a9575afec9d07673addc021"><td class="memSeparator" colspan="2">&#160;</td></tr>
142 <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_8c.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>
143 <tr class="memdesc:af6636e870497be0699d2781e5fc8a2a9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Acquire a persistent handle. <a href="#af6636e870497be0699d2781e5fc8a2a9">More...</a><br/></td></tr>
144 <tr class="separator:af6636e870497be0699d2781e5fc8a2a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
145 <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_8c.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>
146 <tr class="separator:ae8124f3f73e96e2193ae03c5519d2763"><td class="memSeparator" colspan="2">&#160;</td></tr>
147 <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_8c.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>
148 <tr class="memdesc:af08ee05c51d52200755d24f6f52df144"><td class="mdescLeft">&#160;</td><td class="mdescRight">Release a persistent handle. <a href="#af08ee05c51d52200755d24f6f52df144">More...</a><br/></td></tr>
149 <tr class="separator:af08ee05c51d52200755d24f6f52df144"><td class="memSeparator" colspan="2">&#160;</td></tr>
150 <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_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>
151 <tr class="separator:a0d661d1f880270146012eb8781e5343e"><td class="memSeparator" colspan="2">&#160;</td></tr>
152 <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_8c.html#ae174fbe124d4cb6010e218a68379bd18">php_persistent_handle_statall</a> (HashTable *ht)</td></tr>
153 <tr class="separator:ae174fbe124d4cb6010e218a68379bd18"><td class="memSeparator" colspan="2">&#160;</td></tr>
154 <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_8c.html#a93458ab12d810f0fd545fb1464ba9eca">php_persistent_handle_get_resource_factory_ops</a> (void)</td></tr>
155 <tr class="separator:a93458ab12d810f0fd545fb1464ba9eca"><td class="memSeparator" colspan="2">&#160;</td></tr>
156 <tr class="memitem:a9337bda6793399d5917999063e1aa636"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php__raphf_8c.html#a9337bda6793399d5917999063e1aa636">ZEND_END_ARG_INFO</a> ()</td></tr>
157 <tr class="separator:a9337bda6793399d5917999063e1aa636"><td class="memSeparator" colspan="2">&#160;</td></tr>
158 <tr class="memitem:ad2aba389e88a1e9e11b7dae021bfddfc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php__raphf_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>
159 <tr class="separator:ad2aba389e88a1e9e11b7dae021bfddfc"><td class="memSeparator" colspan="2">&#160;</td></tr>
160 <tr class="memitem:a98ef98eb514bf71723b22e93ef4fb099"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php__raphf_8c.html#a98ef98eb514bf71723b22e93ef4fb099">PHP_MINIT_FUNCTION</a> (raphf)</td></tr>
161 <tr class="separator:a98ef98eb514bf71723b22e93ef4fb099"><td class="memSeparator" colspan="2">&#160;</td></tr>
162 <tr class="memitem:a9bdad7e7a27b1cce6be5ec842da0c921"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php__raphf_8c.html#a9bdad7e7a27b1cce6be5ec842da0c921">PHP_MSHUTDOWN_FUNCTION</a> (raphf)</td></tr>
163 <tr class="separator:a9bdad7e7a27b1cce6be5ec842da0c921"><td class="memSeparator" colspan="2">&#160;</td></tr>
164 <tr class="memitem:afe0b826f07940e0297395eb758b6dc63"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php__raphf_8c.html#afe0b826f07940e0297395eb758b6dc63">PHP_MINFO_FUNCTION</a> (raphf)</td></tr>
165 <tr class="separator:afe0b826f07940e0297395eb758b6dc63"><td class="memSeparator" colspan="2">&#160;</td></tr>
166 </table><table class="memberdecls">
167 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
168 Variables</h2></td></tr>
169 <tr class="memitem:a385b722141c96392a35d8b6dfc29b0d3"><td class="memItemLeft" align="right" valign="top">struct <br class="typebreak"/>
170 php_persistent_handle_globals&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php__raphf_8c.html#a385b722141c96392a35d8b6dfc29b0d3">persistent_handle</a></td></tr>
171 <tr class="separator:a385b722141c96392a35d8b6dfc29b0d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
172 <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_8c.html#a42f904573a2c5b1eba6ccd6604269f99">raphf_module_entry</a></td></tr>
173 <tr class="separator:a42f904573a2c5b1eba6ccd6604269f99"><td class="memSeparator" colspan="2">&#160;</td></tr>
174 </table>
175 <h2 class="groupheader">Macro Definition Documentation</h2>
176 <a class="anchor" id="a4ac4e8587a25a7617a3bb1b2b246fe7f"></a>
177 <div class="memitem">
178 <div class="memproto">
179 <table class="memname">
180 <tr>
181 <td class="memname">#define PHP_RAPHF_DEBUG_PHANDLES&#160;&#160;&#160;0</td>
182 </tr>
183 </table>
184 </div><div class="memdoc">
185
186 </div>
187 </div>
188 <a class="anchor" id="a5a6099bca8801bd4a502806ab49c1d1c"></a>
189 <div class="memitem">
190 <div class="memproto">
191 <table class="memname">
192 <tr>
193 <td class="memname">#define PHP_RAPHF_G&#160;&#160;&#160;(&amp;raphf_globals)</td>
194 </tr>
195 </table>
196 </div><div class="memdoc">
197
198 <p>Referenced by <a class="el" href="php__raphf_8c.html#afe0b826f07940e0297395eb758b6dc63">PHP_MINFO_FUNCTION()</a>, <a class="el" href="php__raphf_8c.html#a98ef98eb514bf71723b22e93ef4fb099">PHP_MINIT_FUNCTION()</a>, <a class="el" href="php__raphf_8h.html#ae6e3d349739a2d92e1c92d5dffbdbc70">php_persistent_handle_cleanup()</a>, <a class="el" href="php__raphf_8h.html#a1d09b4c069a7554f70c7da9c7e443b55">php_persistent_handle_concede()</a>, <a class="el" href="php__raphf_8h.html#a43b726e36541ce353e77c641cd21cbc4">php_persistent_handle_provide()</a>, <a class="el" href="php__raphf_8h.html#aa9c1037af893d6007d936c59b51ec7f3">php_persistent_handle_release()</a>, and <a class="el" href="php__raphf_8h.html#a6cb8fb6af98484557a6685d079d5f96d">php_persistent_handle_statall()</a>.</p>
199
200 </div>
201 </div>
202 <h2 class="groupheader">Typedef Documentation</h2>
203 <a class="anchor" id="a0cb9c7fae5afe4237eb4d5d43318fa18"></a>
204 <div class="memitem">
205 <div class="memproto">
206 <table class="memname">
207 <tr>
208 <td class="memname">typedef int <a class="el" href="php__raphf_8c.html#a0cb9c7fae5afe4237eb4d5d43318fa18">STATUS</a></td>
209 </tr>
210 </table>
211 </div><div class="memdoc">
212
213 </div>
214 </div>
215 <h2 class="groupheader">Function Documentation</h2>
216 <a class="anchor" id="afe0b826f07940e0297395eb758b6dc63"></a>
217 <div class="memitem">
218 <div class="memproto">
219 <table class="memname">
220 <tr>
221 <td class="memname">PHP_MINFO_FUNCTION </td>
222 <td>(</td>
223 <td class="paramtype">raphf&#160;</td>
224 <td class="paramname"></td><td>)</td>
225 <td></td>
226 </tr>
227 </table>
228 </div><div class="memdoc">
229
230 </div>
231 </div>
232 <a class="anchor" id="a98ef98eb514bf71723b22e93ef4fb099"></a>
233 <div class="memitem">
234 <div class="memproto">
235 <table class="memname">
236 <tr>
237 <td class="memname">PHP_MINIT_FUNCTION </td>
238 <td>(</td>
239 <td class="paramtype">raphf&#160;</td>
240 <td class="paramname"></td><td>)</td>
241 <td></td>
242 </tr>
243 </table>
244 </div><div class="memdoc">
245
246 </div>
247 </div>
248 <a class="anchor" id="a9bdad7e7a27b1cce6be5ec842da0c921"></a>
249 <div class="memitem">
250 <div class="memproto">
251 <table class="memname">
252 <tr>
253 <td class="memname">PHP_MSHUTDOWN_FUNCTION </td>
254 <td>(</td>
255 <td class="paramtype">raphf&#160;</td>
256 <td class="paramname"></td><td>)</td>
257 <td></td>
258 </tr>
259 </table>
260 </div><div class="memdoc">
261
262 </div>
263 </div>
264 <a class="anchor" id="a54fe24355a9575afec9d07673addc021"></a>
265 <div class="memitem">
266 <div class="memproto">
267 <table class="memname">
268 <tr>
269 <td class="memname">PHP_RAPHF_API void php_persistent_handle_abandon </td>
270 <td>(</td>
271 <td class="paramtype"><a class="el" href="php__raphf_8h.html#a833eaa62ffcc217e5749c26c18885b17">php_persistent_handle_factory_t</a> *&#160;</td>
272 <td class="paramname"><em>a</em></td><td>)</td>
273 <td></td>
274 </tr>
275 </table>
276 </div><div class="memdoc">
277
278 <p>Abandon the persistent handle factory. </p>
279 <p>Destroy a <a class="el" href="structphp__persistent__handle__factory.html" title="Definition of a persistent handle factory. ">php_persistent_handle_factory</a> created by <a class="el" href="php__raphf_8c.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>
280 <dl class="params"><dt>Parameters</dt><dd>
281 <table class="params">
282 <tr><td class="paramname">a</td><td>the persistent handle factory to destroy </td></tr>
283 </table>
284 </dd>
285 </dl>
286
287 </div>
288 </div>
289 <a class="anchor" id="ae8124f3f73e96e2193ae03c5519d2763"></a>
290 <div class="memitem">
291 <div class="memproto">
292 <table class="memname">
293 <tr>
294 <td class="memname">void* php_persistent_handle_accrete </td>
295 <td>(</td>
296 <td class="paramtype"><a class="el" href="php__raphf_8h.html#a833eaa62ffcc217e5749c26c18885b17">php_persistent_handle_factory_t</a> *&#160;</td>
297 <td class="paramname"><em>a</em>, </td>
298 </tr>
299 <tr>
300 <td class="paramkey"></td>
301 <td></td>
302 <td class="paramtype">void *&#160;</td>
303 <td class="paramname"><em>handle</em>&#160;</td>
304 </tr>
305 <tr>
306 <td></td>
307 <td>)</td>
308 <td></td><td></td>
309 </tr>
310 </table>
311 </div><div class="memdoc">
312
313 </div>
314 </div>
315 <a class="anchor" id="af6636e870497be0699d2781e5fc8a2a9"></a>
316 <div class="memitem">
317 <div class="memproto">
318 <table class="memname">
319 <tr>
320 <td class="memname">void* php_persistent_handle_acquire </td>
321 <td>(</td>
322 <td class="paramtype"><a class="el" href="php__raphf_8h.html#a833eaa62ffcc217e5749c26c18885b17">php_persistent_handle_factory_t</a> *&#160;</td>
323 <td class="paramname"><em>a</em>, </td>
324 </tr>
325 <tr>
326 <td class="paramkey"></td>
327 <td></td>
328 <td class="paramtype">void *&#160;</td>
329 <td class="paramname"><em>init_arg</em>&#160;</td>
330 </tr>
331 <tr>
332 <td></td>
333 <td>)</td>
334 <td></td><td></td>
335 </tr>
336 </table>
337 </div><div class="memdoc">
338
339 <p>Acquire a persistent handle. </p>
340 <p>That is, either re-use a resource from the free list or create a new handle.</p>
341 <p>If a handle is acquired from the free list, the php_persistent_handle_wakeup() callback attached to this persistent handle factory is executed for that handle.</p>
342 <dl class="params"><dt>Parameters</dt><dd>
343 <table class="params">
344 <tr><td class="paramname">a</td><td>the persistent handle factory </td></tr>
345 <tr><td class="paramname">init_arg</td><td>the <em>init_arg</em> for <a class="el" href="php__raphf_8c.html#a98d02dc80dd83095b8f901954350840c" title="Construct a resource by the resource factory f. ">php_resource_factory_handle_ctor()</a> </td></tr>
346 </table>
347 </dd>
348 </dl>
349 <dl class="section return"><dt>Returns</dt><dd>the acquired resource </dd></dl>
350
351 </div>
352 </div>
353 <a class="anchor" id="a0d661d1f880270146012eb8781e5343e"></a>
354 <div class="memitem">
355 <div class="memproto">
356 <table class="memname">
357 <tr>
358 <td class="memname">void php_persistent_handle_cleanup </td>
359 <td>(</td>
360 <td class="paramtype">const char *&#160;</td>
361 <td class="paramname"><em>name_str</em>, </td>
362 </tr>
363 <tr>
364 <td class="paramkey"></td>
365 <td></td>
366 <td class="paramtype">size_t&#160;</td>
367 <td class="paramname"><em>name_len</em>, </td>
368 </tr>
369 <tr>
370 <td class="paramkey"></td>
371 <td></td>
372 <td class="paramtype">const char *&#160;</td>
373 <td class="paramname"><em>ident_str</em>, </td>
374 </tr>
375 <tr>
376 <td class="paramkey"></td>
377 <td></td>
378 <td class="paramtype">size_t&#160;</td>
379 <td class="paramname"><em>ident_len</em>&#160;</td>
380 </tr>
381 <tr>
382 <td></td>
383 <td>)</td>
384 <td></td><td></td>
385 </tr>
386 </table>
387 </div><div class="memdoc">
388
389 </div>
390 </div>
391 <a class="anchor" id="a0a266874dafb69cf2b040378d4033901"></a>
392 <div class="memitem">
393 <div class="memproto">
394 <table class="memname">
395 <tr>
396 <td class="memname"><a class="el" href="php__raphf_8h.html#a833eaa62ffcc217e5749c26c18885b17">php_persistent_handle_factory_t</a>* php_persistent_handle_concede </td>
397 <td>(</td>
398 <td class="paramtype"><a class="el" href="php__raphf_8h.html#a833eaa62ffcc217e5749c26c18885b17">php_persistent_handle_factory_t</a> *&#160;</td>
399 <td class="paramname"><em>a</em>, </td>
400 </tr>
401 <tr>
402 <td class="paramkey"></td>
403 <td></td>
404 <td class="paramtype">const char *&#160;</td>
405 <td class="paramname"><em>name_str</em>, </td>
406 </tr>
407 <tr>
408 <td class="paramkey"></td>
409 <td></td>
410 <td class="paramtype">size_t&#160;</td>
411 <td class="paramname"><em>name_len</em>, </td>
412 </tr>
413 <tr>
414 <td class="paramkey"></td>
415 <td></td>
416 <td class="paramtype">const char *&#160;</td>
417 <td class="paramname"><em>ident_str</em>, </td>
418 </tr>
419 <tr>
420 <td class="paramkey"></td>
421 <td></td>
422 <td class="paramtype">size_t&#160;</td>
423 <td class="paramname"><em>ident_len</em>, </td>
424 </tr>
425 <tr>
426 <td class="paramkey"></td>
427 <td></td>
428 <td class="paramtype"><a class="el" href="php__raphf_8h.html#a681ca1f7c1249199b45270be60c721c6">php_persistent_handle_wakeup_t</a>&#160;</td>
429 <td class="paramname"><em>wakeup</em>, </td>
430 </tr>
431 <tr>
432 <td class="paramkey"></td>
433 <td></td>
434 <td class="paramtype"><a class="el" href="php__raphf_8h.html#a8f7d6389c67478ca0b99729a5dd3d305">php_persistent_handle_retire_t</a>&#160;</td>
435 <td class="paramname"><em>retire</em>&#160;</td>
436 </tr>
437 <tr>
438 <td></td>
439 <td>)</td>
440 <td></td><td></td>
441 </tr>
442 </table>
443 </div><div class="memdoc">
444
445 <p>Retrieve a persistent handle factory at runtime. </p>
446 <p>If a persistent handle provider has been registered for <em>name_str</em>, a new <a class="el" href="structphp__persistent__handle__factory.html" 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>
447 <p>The wakeup routine <em>wakeup</em> and the retire routine <em>retire</em> will be assigned to the new <a class="el" href="structphp__persistent__handle__factory.html" title="Definition of a persistent handle factory. ">php_persistent_handle_factory</a>.</p>
448 <dl class="params"><dt>Parameters</dt><dd>
449 <table class="params">
450 <tr><td class="paramname">a</td><td>pointer to a factory; allocated on the heap if NULL </td></tr>
451 <tr><td class="paramname">name_str</td><td>the provider name, e.g. "http\Client\Curl" </td></tr>
452 <tr><td class="paramname">name_len</td><td>the provider name length, e.g. strlen("http\Client\Curl") </td></tr>
453 <tr><td class="paramname">ident_str</td><td>the subsidiary namespace, e.g. "php.net:80" </td></tr>
454 <tr><td class="paramname">ident_len</td><td>the subsidiary namespace lenght, e.g. strlen("php.net:80") </td></tr>
455 <tr><td class="paramname">wakeup</td><td>any persistent handle wakeup routine </td></tr>
456 <tr><td class="paramname">retire</td><td>any persistent handle retire routine </td></tr>
457 </table>
458 </dd>
459 </dl>
460 <dl class="section return"><dt>Returns</dt><dd><em>a</em> or an allocated persistent handle factory </dd></dl>
461
462 </div>
463 </div>
464 <a class="anchor" id="a93458ab12d810f0fd545fb1464ba9eca"></a>
465 <div class="memitem">
466 <div class="memproto">
467 <table class="memname">
468 <tr>
469 <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>
470 <td>(</td>
471 <td class="paramtype">void&#160;</td>
472 <td class="paramname"></td><td>)</td>
473 <td></td>
474 </tr>
475 </table>
476 </div><div class="memdoc">
477
478 </div>
479 </div>
480 <a class="anchor" id="a8e7e29a2450650ad87f927bb9d516762"></a>
481 <div class="memitem">
482 <div class="memproto">
483 <table class="memname">
484 <tr>
485 <td class="memname">PHP_RAPHF_API <a class="el" href="php__raphf_8c.html#a0cb9c7fae5afe4237eb4d5d43318fa18">STATUS</a> php_persistent_handle_provide </td>
486 <td>(</td>
487 <td class="paramtype">const char *&#160;</td>
488 <td class="paramname"><em>name_str</em>, </td>
489 </tr>
490 <tr>
491 <td class="paramkey"></td>
492 <td></td>
493 <td class="paramtype">size_t&#160;</td>
494 <td class="paramname"><em>name_len</em>, </td>
495 </tr>
496 <tr>
497 <td class="paramkey"></td>
498 <td></td>
499 <td class="paramtype"><a class="el" href="php__raphf_8h.html#a29e0d7a66e441a5265ddf2f0adbbb3af">php_resource_factory_ops_t</a> *&#160;</td>
500 <td class="paramname"><em>fops</em>, </td>
501 </tr>
502 <tr>
503 <td class="paramkey"></td>
504 <td></td>
505 <td class="paramtype">void *&#160;</td>
506 <td class="paramname"><em>data</em>, </td>
507 </tr>
508 <tr>
509 <td class="paramkey"></td>
510 <td></td>
511 <td class="paramtype">void(*)(void *)&#160;</td>
512 <td class="paramname"><em>dtor</em>&#160;</td>
513 </tr>
514 <tr>
515 <td></td>
516 <td>)</td>
517 <td></td><td></td>
518 </tr>
519 </table>
520 </div><div class="memdoc">
521
522 <p>Register a persistent handle provider in MINIT. </p>
523 <p>Registers a factory provider for <em>name_str</em> with <em>fops</em> resource factory ops. Call this in your MINIT.</p>
524 <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="structphp__persistent__handle__list.html" title="Storage of free persistent handles. ">php_persistent_handle_list</a> in the global raphf hash.</p>
525 <p>A <a class="el" href="structphp__persistent__handle__factory.html" title="Definition of a persistent handle factory. ">php_persistent_handle_factory</a> can then be retrieved by <a class="el" href="php__raphf_8c.html#a0a266874dafb69cf2b040378d4033901" title="Retrieve a persistent handle factory at runtime. ">php_persistent_handle_concede()</a> at runtime.</p>
526 <dl class="params"><dt>Parameters</dt><dd>
527 <table class="params">
528 <tr><td class="paramname">name_str</td><td>the provider name, e.g. "http\Client\Curl" </td></tr>
529 <tr><td class="paramname">name_len</td><td>the provider name length, e.g. strlen("http\Client\Curl") </td></tr>
530 <tr><td class="paramname">fops</td><td>the resource factory ops </td></tr>
531 <tr><td class="paramname">data</td><td>opaque user data </td></tr>
532 <tr><td class="paramname">dtor</td><td><em>data</em> destructor </td></tr>
533 </table>
534 </dd>
535 </dl>
536 <dl class="section return"><dt>Returns</dt><dd>SUCCESS/FAILURE </dd></dl>
537
538 </div>
539 </div>
540 <a class="anchor" id="af08ee05c51d52200755d24f6f52df144"></a>
541 <div class="memitem">
542 <div class="memproto">
543 <table class="memname">
544 <tr>
545 <td class="memname">void php_persistent_handle_release </td>
546 <td>(</td>
547 <td class="paramtype"><a class="el" href="php__raphf_8h.html#a833eaa62ffcc217e5749c26c18885b17">php_persistent_handle_factory_t</a> *&#160;</td>
548 <td class="paramname"><em>a</em>, </td>
549 </tr>
550 <tr>
551 <td class="paramkey"></td>
552 <td></td>
553 <td class="paramtype">void *&#160;</td>
554 <td class="paramname"><em>handle</em>&#160;</td>
555 </tr>
556 <tr>
557 <td></td>
558 <td>)</td>
559 <td></td><td></td>
560 </tr>
561 </table>
562 </div><div class="memdoc">
563
564 <p>Release a persistent handle. </p>
565 <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_8c.html#a97dbb9d342f33205b92374c586676bc6" title="Destroy (and free) the resource. ">php_resource_factory_handle_dtor()</a>.</p>
566 <p>If a handle is put back into the free list, the php_persistent_handle_retire() callback attached to this persistent handle factory is executed for that handle.</p>
567 <dl class="params"><dt>Parameters</dt><dd>
568 <table class="params">
569 <tr><td class="paramname">a</td><td>the persistent handle factory </td></tr>
570 <tr><td class="paramname">handle</td><td>the handle to release </td></tr>
571 </table>
572 </dd>
573 </dl>
574
575 </div>
576 </div>
577 <a class="anchor" id="ae174fbe124d4cb6010e218a68379bd18"></a>
578 <div class="memitem">
579 <div class="memproto">
580 <table class="memname">
581 <tr>
582 <td class="memname">HashTable* php_persistent_handle_statall </td>
583 <td>(</td>
584 <td class="paramtype">HashTable *&#160;</td>
585 <td class="paramname"><em>ht</em></td><td>)</td>
586 <td></td>
587 </tr>
588 </table>
589 </div><div class="memdoc">
590
591 </div>
592 </div>
593 <a class="anchor" id="ae8be369197905047ffbd05c0ca80f245"></a>
594 <div class="memitem">
595 <div class="memproto">
596 <table class="memname">
597 <tr>
598 <td class="memname">unsigned php_resource_factory_addref </td>
599 <td>(</td>
600 <td class="paramtype"><a class="el" href="php__raphf_8h.html#a4817c4b3d4077c48dff36376487ba8d4">php_resource_factory_t</a> *&#160;</td>
601 <td class="paramname"><em>rf</em></td><td>)</td>
602 <td></td>
603 </tr>
604 </table>
605 </div><div class="memdoc">
606
607 <p>Increase the refcount of the resource factory. </p>
608 <dl class="params"><dt>Parameters</dt><dd>
609 <table class="params">
610 <tr><td class="paramname">rf</td><td>the resource factory </td></tr>
611 </table>
612 </dd>
613 </dl>
614 <dl class="section return"><dt>Returns</dt><dd>the new refcount </dd></dl>
615
616 </div>
617 </div>
618 <a class="anchor" id="a016b8a4159e698f915ab967711696847"></a>
619 <div class="memitem">
620 <div class="memproto">
621 <table class="memname">
622 <tr>
623 <td class="memname">void php_resource_factory_dtor </td>
624 <td>(</td>
625 <td class="paramtype"><a class="el" href="php__raphf_8h.html#a4817c4b3d4077c48dff36376487ba8d4">php_resource_factory_t</a> *&#160;</td>
626 <td class="paramname"><em>f</em></td><td>)</td>
627 <td></td>
628 </tr>
629 </table>
630 </div><div class="memdoc">
631
632 <p>Destroy the resource factory. </p>
633 <p>If the factory's refcount reaches 0, the <em>dtor</em> for <em>data</em> is called.</p>
634 <dl class="params"><dt>Parameters</dt><dd>
635 <table class="params">
636 <tr><td class="paramname">f</td><td>the resource factory </td></tr>
637 </table>
638 </dd>
639 </dl>
640
641 <p>Referenced by <a class="el" href="php__raphf_8h.html#a43b726e36541ce353e77c641cd21cbc4">php_persistent_handle_provide()</a>, and <a class="el" href="php__raphf_8h.html#aaa5e9fa94df9f1fca37f12f9372fc06f">php_resource_factory_free()</a>.</p>
642
643 </div>
644 </div>
645 <a class="anchor" id="a7f012d685f5f7c08f50288b61232e689"></a>
646 <div class="memitem">
647 <div class="memproto">
648 <table class="memname">
649 <tr>
650 <td class="memname">void php_resource_factory_free </td>
651 <td>(</td>
652 <td class="paramtype"><a class="el" href="php__raphf_8h.html#a4817c4b3d4077c48dff36376487ba8d4">php_resource_factory_t</a> **&#160;</td>
653 <td class="paramname"><em>f</em></td><td>)</td>
654 <td></td>
655 </tr>
656 </table>
657 </div><div class="memdoc">
658
659 <p>Destroy and free the resource factory. </p>
660 <p>Calls <a class="el" href="php__raphf_8c.html#a016b8a4159e698f915ab967711696847" title="Destroy the resource factory. ">php_resource_factory_dtor()</a> and frees \æ f if the factory's refcount reached 0.</p>
661 <dl class="params"><dt>Parameters</dt><dd>
662 <table class="params">
663 <tr><td class="paramname">f</td><td>the resource factory </td></tr>
664 </table>
665 </dd>
666 </dl>
667
668 </div>
669 </div>
670 <a class="anchor" id="a08db5f3698f2d0bf3d2f20dcf4e7b2b4"></a>
671 <div class="memitem">
672 <div class="memproto">
673 <table class="memname">
674 <tr>
675 <td class="memname">void* php_resource_factory_handle_copy </td>
676 <td>(</td>
677 <td class="paramtype"><a class="el" href="php__raphf_8h.html#a4817c4b3d4077c48dff36376487ba8d4">php_resource_factory_t</a> *&#160;</td>
678 <td class="paramname"><em>f</em>, </td>
679 </tr>
680 <tr>
681 <td class="paramkey"></td>
682 <td></td>
683 <td class="paramtype">void *&#160;</td>
684 <td class="paramname"><em>handle</em>&#160;</td>
685 </tr>
686 <tr>
687 <td></td>
688 <td>)</td>
689 <td></td><td></td>
690 </tr>
691 </table>
692 </div><div class="memdoc">
693
694 <p>Create a copy of the resource <em>handle</em>. </p>
695 <dl class="params"><dt>Parameters</dt><dd>
696 <table class="params">
697 <tr><td class="paramname">f</td><td>the resource factory </td></tr>
698 <tr><td class="paramname">handle</td><td>the resource to copy </td></tr>
699 </table>
700 </dd>
701 </dl>
702 <dl class="section return"><dt>Returns</dt><dd>the copy </dd></dl>
703
704 <p>Referenced by <a class="el" href="php__raphf_8h.html#abb8ec716a84a90515bffbe255cd860f5">php_persistent_handle_accrete()</a>.</p>
705
706 </div>
707 </div>
708 <a class="anchor" id="a98d02dc80dd83095b8f901954350840c"></a>
709 <div class="memitem">
710 <div class="memproto">
711 <table class="memname">
712 <tr>
713 <td class="memname">void* php_resource_factory_handle_ctor </td>
714 <td>(</td>
715 <td class="paramtype"><a class="el" href="php__raphf_8h.html#a4817c4b3d4077c48dff36376487ba8d4">php_resource_factory_t</a> *&#160;</td>
716 <td class="paramname"><em>f</em>, </td>
717 </tr>
718 <tr>
719 <td class="paramkey"></td>
720 <td></td>
721 <td class="paramtype">void *&#160;</td>
722 <td class="paramname"><em>init_arg</em>&#160;</td>
723 </tr>
724 <tr>
725 <td></td>
726 <td>)</td>
727 <td></td><td></td>
728 </tr>
729 </table>
730 </div><div class="memdoc">
731
732 <p>Construct a resource by the resource factory <em>f</em>. </p>
733 <dl class="params"><dt>Parameters</dt><dd>
734 <table class="params">
735 <tr><td class="paramname">f</td><td>the resource factory </td></tr>
736 <tr><td class="paramname">init_arg</td><td>for the resource constructor </td></tr>
737 </table>
738 </dd>
739 </dl>
740 <dl class="section return"><dt>Returns</dt><dd>the new resource </dd></dl>
741
742 <p>Referenced by <a class="el" href="php__raphf_8h.html#a3193fbab8f776563e158e38b7b02cbe5">php_persistent_handle_acquire()</a>.</p>
743
744 </div>
745 </div>
746 <a class="anchor" id="a97dbb9d342f33205b92374c586676bc6"></a>
747 <div class="memitem">
748 <div class="memproto">
749 <table class="memname">
750 <tr>
751 <td class="memname">void php_resource_factory_handle_dtor </td>
752 <td>(</td>
753 <td class="paramtype"><a class="el" href="php__raphf_8h.html#a4817c4b3d4077c48dff36376487ba8d4">php_resource_factory_t</a> *&#160;</td>
754 <td class="paramname"><em>f</em>, </td>
755 </tr>
756 <tr>
757 <td class="paramkey"></td>
758 <td></td>
759 <td class="paramtype">void *&#160;</td>
760 <td class="paramname"><em>handle</em>&#160;</td>
761 </tr>
762 <tr>
763 <td></td>
764 <td>)</td>
765 <td></td><td></td>
766 </tr>
767 </table>
768 </div><div class="memdoc">
769
770 <p>Destroy (and free) the resource. </p>
771 <dl class="params"><dt>Parameters</dt><dd>
772 <table class="params">
773 <tr><td class="paramname">f</td><td>the resource factory </td></tr>
774 <tr><td class="paramname">handle</td><td>the resource to destroy </td></tr>
775 </table>
776 </dd>
777 </dl>
778
779 <p>Referenced by <a class="el" href="php__raphf_8h.html#aa9c1037af893d6007d936c59b51ec7f3">php_persistent_handle_release()</a>.</p>
780
781 </div>
782 </div>
783 <a class="anchor" id="ad20f10c53e3f33756638da98819367f0"></a>
784 <div class="memitem">
785 <div class="memproto">
786 <table class="memname">
787 <tr>
788 <td class="memname"><a class="el" href="php__raphf_8h.html#a4817c4b3d4077c48dff36376487ba8d4">php_resource_factory_t</a>* php_resource_factory_init </td>
789 <td>(</td>
790 <td class="paramtype"><a class="el" href="php__raphf_8h.html#a4817c4b3d4077c48dff36376487ba8d4">php_resource_factory_t</a> *&#160;</td>
791 <td class="paramname"><em>f</em>, </td>
792 </tr>
793 <tr>
794 <td class="paramkey"></td>
795 <td></td>
796 <td class="paramtype"><a class="el" href="php__raphf_8h.html#a29e0d7a66e441a5265ddf2f0adbbb3af">php_resource_factory_ops_t</a> *&#160;</td>
797 <td class="paramname"><em>fops</em>, </td>
798 </tr>
799 <tr>
800 <td class="paramkey"></td>
801 <td></td>
802 <td class="paramtype">void *&#160;</td>
803 <td class="paramname"><em>data</em>, </td>
804 </tr>
805 <tr>
806 <td class="paramkey"></td>
807 <td></td>
808 <td class="paramtype">void(*)(void *data)&#160;</td>
809 <td class="paramname"><em>dtor</em>&#160;</td>
810 </tr>
811 <tr>
812 <td></td>
813 <td>)</td>
814 <td></td><td></td>
815 </tr>
816 </table>
817 </div><div class="memdoc">
818
819 <p>Initialize a resource factory. </p>
820 <p>Usually called by php_http_persistent_handle_provide().</p>
821 <dl class="params"><dt>Parameters</dt><dd>
822 <table class="params">
823 <tr><td class="paramname">f</td><td>the factory to initialize; if NULL allocated on the heap </td></tr>
824 <tr><td class="paramname">fops</td><td>the resource ops to assign to the factory </td></tr>
825 <tr><td class="paramname">data</td><td>opaque user data; may be NULL </td></tr>
826 <tr><td class="paramname">dtor</td><td>a destructor for the data; may be NULL </td></tr>
827 </table>
828 </dd>
829 </dl>
830 <dl class="section return"><dt>Returns</dt><dd><em>f</em> or an allocated resource factory </dd></dl>
831
832 <p>Referenced by <a class="el" href="php__raphf_8h.html#a43b726e36541ce353e77c641cd21cbc4">php_persistent_handle_provide()</a>.</p>
833
834 </div>
835 </div>
836 <a class="anchor" id="ad2aba389e88a1e9e11b7dae021bfddfc"></a>
837 <div class="memitem">
838 <div class="memproto">
839 <table class="memname">
840 <tr>
841 <td class="memname">STD_PHP_INI_ENTRY </td>
842 <td>(</td>
843 <td class="paramtype">&quot;raphf.persistent_handle.limit&quot;&#160;</td>
844 <td class="paramname">, </td>
845 </tr>
846 <tr>
847 <td class="paramkey"></td>
848 <td></td>
849 <td class="paramtype">&quot;-1&quot;&#160;</td>
850 <td class="paramname">, </td>
851 </tr>
852 <tr>
853 <td class="paramkey"></td>
854 <td></td>
855 <td class="paramtype">PHP_INI_SYSTEM&#160;</td>
856 <td class="paramname">, </td>
857 </tr>
858 <tr>
859 <td class="paramkey"></td>
860 <td></td>
861 <td class="paramtype">OnUpdateLong&#160;</td>
862 <td class="paramname">, </td>
863 </tr>
864 <tr>
865 <td class="paramkey"></td>
866 <td></td>
867 <td class="paramtype">persistent_handle.&#160;</td>
868 <td class="paramname"><em>limit</em>, </td>
869 </tr>
870 <tr>
871 <td class="paramkey"></td>
872 <td></td>
873 <td class="paramtype">zend_raphf_globals&#160;</td>
874 <td class="paramname">, </td>
875 </tr>
876 <tr>
877 <td class="paramkey"></td>
878 <td></td>
879 <td class="paramtype">raphf_globals&#160;</td>
880 <td class="paramname">&#160;</td>
881 </tr>
882 <tr>
883 <td></td>
884 <td>)</td>
885 <td></td><td></td>
886 </tr>
887 </table>
888 </div><div class="memdoc">
889
890 </div>
891 </div>
892 <a class="anchor" id="a9337bda6793399d5917999063e1aa636"></a>
893 <div class="memitem">
894 <div class="memproto">
895 <table class="memname">
896 <tr>
897 <td class="memname">ZEND_END_ARG_INFO </td>
898 <td>(</td>
899 <td class="paramname"></td><td>)</td>
900 <td></td>
901 </tr>
902 </table>
903 </div><div class="memdoc">
904
905 </div>
906 </div>
907 <h2 class="groupheader">Variable Documentation</h2>
908 <a class="anchor" id="a385b722141c96392a35d8b6dfc29b0d3"></a>
909 <div class="memitem">
910 <div class="memproto">
911 <table class="memname">
912 <tr>
913 <td class="memname">struct php_persistent_handle_globals persistent_handle</td>
914 </tr>
915 </table>
916 </div><div class="memdoc">
917
918 </div>
919 </div>
920 <a class="anchor" id="a42f904573a2c5b1eba6ccd6604269f99"></a>
921 <div class="memitem">
922 <div class="memproto">
923 <table class="memname">
924 <tr>
925 <td class="memname">zend_module_entry raphf_module_entry</td>
926 </tr>
927 </table>
928 </div><div class="memdoc">
929 <b>Initial value:</b><div class="fragment"><div class="line">= {</div>
930 <div class="line"> STANDARD_MODULE_HEADER,</div>
931 <div class="line"> <span class="stringliteral">&quot;raphf&quot;</span>,</div>
932 <div class="line"> raphf_functions,</div>
933 <div class="line"> PHP_MINIT(raphf),</div>
934 <div class="line"> PHP_MSHUTDOWN(raphf),</div>
935 <div class="line"> NULL,</div>
936 <div class="line"> NULL,</div>
937 <div class="line"> PHP_MINFO(raphf),</div>
938 <div class="line"> PHP_RAPHF_VERSION,</div>
939 <div class="line"> ZEND_MODULE_GLOBALS(raphf),</div>
940 <div class="line"> PHP_GINIT(raphf),</div>
941 <div class="line"> PHP_GSHUTDOWN(raphf),</div>
942 <div class="line"> NULL,</div>
943 <div class="line"> STANDARD_MODULE_PROPERTIES_EX</div>
944 <div class="line">}</div>
945 </div><!-- fragment -->
946 </div>
947 </div>
948 </div><!-- contents -->
949 <!-- start footer part -->
950 <hr class="footer"/><address class="footer"><small>
951 Generated on Wed Dec 4 2013 11:16:18 for Resource and persistent handle factory API by &#160;<a href="http://www.doxygen.org/index.html">
952 <img class="footer" src="doxygen.png" alt="doxygen"/>
953 </a> 1.8.5
954 </small></address>
955 </body>
956 </html>