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">
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);
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(); });
25 <link href=
"doxygen.css" rel=
"stylesheet" type=
"text/css" />
28 <div id=
"top"><!-- do not remove this div, it is closed by doxygen! -->
30 <table cellspacing=
"0" cellpadding=
"0">
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
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>
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');
48 <div id=
"navrow1" class=
"tabs">
50 <li><a href=
"index.html"><span>Main
 Page
</span></a></li>
51 <li><a href=
"pages.html"><span>Related
 Pages
</span></a></li>
52 <li><a href=
"annotated.html"><span>Data
 Structures
</span></a></li>
53 <li class=
"current"><a href=
"files.html"><span>Files
</span></a></li>
55 <div id=
"MSearchBox" class=
"MSearchBoxInactive">
57 <img id=
"MSearchSelect" src=
"search/mag_sel.png"
58 onmouseover=
"return searchBox.OnSearchSelectShow()"
59 onmouseout=
"return searchBox.OnSearchSelectHide()"
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>
72 <div id=
"navrow2" class=
"tabs2">
74 <li><a href=
"files.html"><span>File
 List
</span></a></li>
75 <li><a href=
"globals.html"><span>Globals
</span></a></li>
79 <div id=
"side-nav" class=
"ui-resizable side-nav-resizable">
81 <div id=
"nav-tree-contents">
82 <div id=
"nav-sync" class=
"sync"></div>
85 <div id=
"splitbar" style=
"-moz-user-select:none;"
86 class=
"ui-resizable-handle">
89 <script type=
"text/javascript">
90 $(document).ready(function(){initNavTree('php__raphf__api_8c.html','');});
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)">
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">
108 <div class=
"summary">
109 <a href=
"#define-members">Macros
</a> |
110 <a href=
"#enum-members">Enumerations
</a> |
111 <a href=
"#func-members">Functions
</a> |
112 <a href=
"#var-members">Variables
</a> </div>
113 <div class=
"headertitle">
114 <div class=
"title">php_raphf_api.c File Reference
</div> </div>
116 <div class=
"contents">
117 <div class=
"textblock"><code>#include
"php.h
"</code><br />
118 <code>#include
"php_ini.h
"</code><br />
119 <code>#include
"ext/standard/info.h
"</code><br />
120 <code>#include
"<a class=
"el" href=
"php__raphf_8h_source.html">php_raphf.h
</a>"</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"/>
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
 </td><td class=
"memItemRight" valign=
"bottom"><a class=
"el" href=
"php__raphf__api_8c.html#a5a6099bca8801bd4a502806ab49c1d1c">PHP_RAPHF_G
</a>   (
&raphf_globals)
</td></tr>
133 <tr class=
"separator:a5a6099bca8801bd4a502806ab49c1d1c"><td class=
"memSeparator" colspan=
"2"> </td></tr>
134 <tr class=
"memitem:a4ac4e8587a25a7617a3bb1b2b246fe7f"><td class=
"memItemLeft" align=
"right" valign=
"top">#define
 </td><td class=
"memItemRight" valign=
"bottom"><a class=
"el" href=
"php__raphf__api_8c.html#a4ac4e8587a25a7617a3bb1b2b246fe7f">PHP_RAPHF_DEBUG_PHANDLES
</a>   0</td></tr>
135 <tr class=
"separator:a4ac4e8587a25a7617a3bb1b2b246fe7f"><td class=
"memSeparator" colspan=
"2"> </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
 </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"> </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> *
 </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"> </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"> </td></tr>
149 <tr class=
"memitem:ae8be369197905047ffbd05c0ca80f245"><td class=
"memItemLeft" align=
"right" valign=
"top">unsigned
 </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"> </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"> </td></tr>
152 <tr class=
"memitem:a016b8a4159e698f915ab967711696847"><td class=
"memItemLeft" align=
"right" valign=
"top">void
 </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"> </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"> </td></tr>
155 <tr class=
"memitem:a7f012d685f5f7c08f50288b61232e689"><td class=
"memItemLeft" align=
"right" valign=
"top">void
 </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"> </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"> </td></tr>
158 <tr class=
"memitem:a98d02dc80dd83095b8f901954350840c"><td class=
"memItemLeft" align=
"right" valign=
"top">void *
 </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"> </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"> </td></tr>
161 <tr class=
"memitem:a08db5f3698f2d0bf3d2f20dcf4e7b2b4"><td class=
"memItemLeft" align=
"right" valign=
"top">void *
 </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"> </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"> </td></tr>
164 <tr class=
"memitem:a97dbb9d342f33205b92374c586676bc6"><td class=
"memItemLeft" align=
"right" valign=
"top">void
 </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"> </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"> </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> *
 </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"> </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"> </td></tr>
170 <tr class=
"memitem:a617d2cc656ab6427388b938597194ebb"><td class=
"memItemLeft" align=
"right" valign=
"top">zend_bool
 </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"> </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"> </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> </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"> </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"> </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> *
 </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"> </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"> </td></tr>
179 <tr class=
"memitem:ab12ec2da7189e16fbed40a3b73bc9ee2"><td class=
"memItemLeft" align=
"right" valign=
"top">void
 </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"> </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"> </td></tr>
182 <tr class=
"memitem:af6636e870497be0699d2781e5fc8a2a9"><td class=
"memItemLeft" align=
"right" valign=
"top">void *
 </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"> </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"> </td></tr>
185 <tr class=
"memitem:ae8124f3f73e96e2193ae03c5519d2763"><td class=
"memItemLeft" align=
"right" valign=
"top">void *
 </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"> </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"> </td></tr>
188 <tr class=
"memitem:af08ee05c51d52200755d24f6f52df144"><td class=
"memItemLeft" align=
"right" valign=
"top">void
 </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"> </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"> </td></tr>
191 <tr class=
"memitem:a0d661d1f880270146012eb8781e5343e"><td class=
"memItemLeft" align=
"right" valign=
"top">void
 </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"> </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"> </td></tr>
194 <tr class=
"memitem:ae174fbe124d4cb6010e218a68379bd18"><td class=
"memItemLeft" align=
"right" valign=
"top">HashTable *
 </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"> </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"> </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> *
 </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"> </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"> </td></tr>
200 <tr class=
"memitem:a9337bda6793399d5917999063e1aa636"><td class=
"memItemLeft" align=
"right" valign=
"top"> </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"> </td></tr>
202 <tr class=
"memitem:ad2aba389e88a1e9e11b7dae021bfddfc"><td class=
"memItemLeft" align=
"right" valign=
"top"> </td><td class=
"memItemRight" valign=
"bottom"><a class=
"el" href=
"php__raphf__api_8c.html#ad2aba389e88a1e9e11b7dae021bfddfc">STD_PHP_INI_ENTRY
</a> (
"raphf.persistent_handle.limit
",
"-
1", 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"> </td></tr>
204 <tr class=
"memitem:a98ef98eb514bf71723b22e93ef4fb099"><td class=
"memItemLeft" align=
"right" valign=
"top"> </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"> </td></tr>
206 <tr class=
"memitem:a9bdad7e7a27b1cce6be5ec842da0c921"><td class=
"memItemLeft" align=
"right" valign=
"top"> </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"> </td></tr>
208 <tr class=
"memitem:afe0b826f07940e0297395eb758b6dc63"><td class=
"memItemLeft" align=
"right" valign=
"top"> </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"> </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
 </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"> </td></tr>
215 <tr class=
"memitem:a42f904573a2c5b1eba6ccd6604269f99"><td class=
"memItemLeft" align=
"right" valign=
"top">zend_module_entry
 </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"> </td></tr>
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">
224 <td class=
"memname">#define PHP_RAPHF_DEBUG_PHANDLES
   0</td>
227 </div><div class=
"memdoc">
231 <a class=
"anchor" id=
"a5a6099bca8801bd4a502806ab49c1d1c"></a>
232 <div class=
"memitem">
233 <div class=
"memproto">
234 <table class=
"memname">
236 <td class=
"memname">#define PHP_RAPHF_G
   (
&raphf_globals)
</td>
239 </div><div class=
"memdoc">
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>
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">
251 <td class=
"memname">enum
<a class=
"el" href=
"php__raphf__api_8c.html#a7e00ad2b6e2b119af6feea77ddfcc7e1">ZEND_RESULT_CODE
</a></td>
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
 </td><td class=
"fielddoc">
258 <tr><td class=
"fieldname"><a class=
"anchor" id=
"a7e00ad2b6e2b119af6feea77ddfcc7e1aa5571864412c8275a2e18a931fddcaa6"></a>FAILURE
 </td><td class=
"fielddoc">
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">
270 <td class=
"memname">PHP_MINFO_FUNCTION
</td>
272 <td class=
"paramtype">raphf
 </td>
273 <td class=
"paramname"></td><td>)
</td>
277 </div><div class=
"memdoc">
281 <a class=
"anchor" id=
"a98ef98eb514bf71723b22e93ef4fb099"></a>
282 <div class=
"memitem">
283 <div class=
"memproto">
284 <table class=
"memname">
286 <td class=
"memname">PHP_MINIT_FUNCTION
</td>
288 <td class=
"paramtype">raphf
 </td>
289 <td class=
"paramname"></td><td>)
</td>
293 </div><div class=
"memdoc">
297 <a class=
"anchor" id=
"a9bdad7e7a27b1cce6be5ec842da0c921"></a>
298 <div class=
"memitem">
299 <div class=
"memproto">
300 <table class=
"memname">
302 <td class=
"memname">PHP_MSHUTDOWN_FUNCTION
</td>
304 <td class=
"paramtype">raphf
 </td>
305 <td class=
"paramname"></td><td>)
</td>
309 </div><div class=
"memdoc">
313 <a class=
"anchor" id=
"ab12ec2da7189e16fbed40a3b73bc9ee2"></a>
314 <div class=
"memitem">
315 <div class=
"memproto">
316 <table class=
"memname">
318 <td class=
"memname">void php_persistent_handle_abandon
</td>
320 <td class=
"paramtype"><a class=
"el" href=
"php__raphf__api_8h.html#a833eaa62ffcc217e5749c26c18885b17">php_persistent_handle_factory_t
</a> *
 </td>
321 <td class=
"paramname"><em>a
</em></td><td>)
</td>
325 </div><div class=
"memdoc">
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>
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>
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"/>
351 <a class=
"anchor" id=
"ae8124f3f73e96e2193ae03c5519d2763"></a>
352 <div class=
"memitem">
353 <div class=
"memproto">
354 <table class=
"memname">
356 <td class=
"memname">void* php_persistent_handle_accrete
</td>
358 <td class=
"paramtype"><a class=
"el" href=
"php__raphf__api_8h.html#a833eaa62ffcc217e5749c26c18885b17">php_persistent_handle_factory_t
</a> *
 </td>
359 <td class=
"paramname"><em>a
</em>,
</td>
362 <td class=
"paramkey"></td>
364 <td class=
"paramtype">void *
 </td>
365 <td class=
"paramname"><em>handle
</em> </td>
373 </div><div class=
"memdoc">
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>
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"/>
397 <a class=
"anchor" id=
"af6636e870497be0699d2781e5fc8a2a9"></a>
398 <div class=
"memitem">
399 <div class=
"memproto">
400 <table class=
"memname">
402 <td class=
"memname">void* php_persistent_handle_acquire
</td>
404 <td class=
"paramtype"><a class=
"el" href=
"php__raphf__api_8h.html#a833eaa62ffcc217e5749c26c18885b17">php_persistent_handle_factory_t
</a> *
 </td>
405 <td class=
"paramname"><em>a
</em>,
</td>
408 <td class=
"paramkey"></td>
410 <td class=
"paramtype">void *
 </td>
411 <td class=
"paramname"><em>init_arg
</em> </td>
419 </div><div class=
"memdoc">
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>
431 <dl class=
"section return"><dt>Returns
</dt><dd>the acquired resource
</dd></dl>
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"/>
445 <a class=
"anchor" id=
"a0d661d1f880270146012eb8781e5343e"></a>
446 <div class=
"memitem">
447 <div class=
"memproto">
448 <table class=
"memname">
450 <td class=
"memname">void php_persistent_handle_cleanup
</td>
452 <td class=
"paramtype">const char *
 </td>
453 <td class=
"paramname"><em>name_str
</em>,
</td>
456 <td class=
"paramkey"></td>
458 <td class=
"paramtype">size_t
 </td>
459 <td class=
"paramname"><em>name_len
</em>,
</td>
462 <td class=
"paramkey"></td>
464 <td class=
"paramtype">const char *
 </td>
465 <td class=
"paramname"><em>ident_str
</em>,
</td>
468 <td class=
"paramkey"></td>
470 <td class=
"paramtype">size_t
 </td>
471 <td class=
"paramname"><em>ident_len
</em> </td>
479 </div><div class=
"memdoc">
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>
499 <a class=
"anchor" id=
"a0a266874dafb69cf2b040378d4033901"></a>
500 <div class=
"memitem">
501 <div class=
"memproto">
502 <table class=
"memname">
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>
506 <td class=
"paramtype"><a class=
"el" href=
"php__raphf__api_8h.html#a833eaa62ffcc217e5749c26c18885b17">php_persistent_handle_factory_t
</a> *
 </td>
507 <td class=
"paramname"><em>a
</em>,
</td>
510 <td class=
"paramkey"></td>
512 <td class=
"paramtype">const char *
 </td>
513 <td class=
"paramname"><em>name_str
</em>,
</td>
516 <td class=
"paramkey"></td>
518 <td class=
"paramtype">size_t
 </td>
519 <td class=
"paramname"><em>name_len
</em>,
</td>
522 <td class=
"paramkey"></td>
524 <td class=
"paramtype">const char *
 </td>
525 <td class=
"paramname"><em>ident_str
</em>,
</td>
528 <td class=
"paramkey"></td>
530 <td class=
"paramtype">size_t
 </td>
531 <td class=
"paramname"><em>ident_len
</em>,
</td>
534 <td class=
"paramkey"></td>
536 <td class=
"paramtype"><a class=
"el" href=
"php__raphf__api_8h.html#a59f5566ecc4c76e048ad53469eb20142">php_persistent_handle_wakeup_t
</a> </td>
537 <td class=
"paramname"><em>wakeup
</em>,
</td>
540 <td class=
"paramkey"></td>
542 <td class=
"paramtype"><a class=
"el" href=
"php__raphf__api_8h.html#a85e9e715d308dc5d98b980c9c57d02bf">php_persistent_handle_retire_t
</a> </td>
543 <td class=
"paramname"><em>retire
</em> </td>
551 </div><div class=
"memdoc">
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>
568 <dl class=
"section return"><dt>Returns
</dt><dd><em>a
</em> or an allocated persistent handle factory
</dd></dl>
572 <a class=
"anchor" id=
"a93458ab12d810f0fd545fb1464ba9eca"></a>
573 <div class=
"memitem">
574 <div class=
"memproto">
575 <table class=
"memname">
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>
579 <td class=
"paramtype">void
 </td>
580 <td class=
"paramname"></td><td>)
</td>
584 </div><div class=
"memdoc">
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">"my
"</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,
&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>
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"/>
623 <a class=
"anchor" id=
"aeeeb92e5e498b6f8c98b9ac6d5b695f3"></a>
624 <div class=
"memitem">
625 <div class=
"memproto">
626 <table class=
"memname">
628 <td class=
"memname"><a class=
"el" href=
"php__raphf__api_8c.html#a7e00ad2b6e2b119af6feea77ddfcc7e1">ZEND_RESULT_CODE
</a> php_persistent_handle_provide
</td>
630 <td class=
"paramtype">const char *
 </td>
631 <td class=
"paramname"><em>name_str
</em>,
</td>
634 <td class=
"paramkey"></td>
636 <td class=
"paramtype">size_t
 </td>
637 <td class=
"paramname"><em>name_len
</em>,
</td>
640 <td class=
"paramkey"></td>
642 <td class=
"paramtype"><a class=
"el" href=
"php__raphf__api_8h.html#a29e0d7a66e441a5265ddf2f0adbbb3af">php_resource_factory_ops_t
</a> *
 </td>
643 <td class=
"paramname"><em>fops
</em>,
</td>
646 <td class=
"paramkey"></td>
648 <td class=
"paramtype">void *
 </td>
649 <td class=
"paramname"><em>data
</em>,
</td>
652 <td class=
"paramkey"></td>
654 <td class=
"paramtype">void(*)(void *)
 </td>
655 <td class=
"paramname"><em>dtor
</em> </td>
663 </div><div class=
"memdoc">
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>
679 <dl class=
"section return"><dt>Returns
</dt><dd>SUCCESS/FAILURE
</dd></dl>
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"/>
694 <a class=
"anchor" id=
"af08ee05c51d52200755d24f6f52df144"></a>
695 <div class=
"memitem">
696 <div class=
"memproto">
697 <table class=
"memname">
699 <td class=
"memname">void php_persistent_handle_release
</td>
701 <td class=
"paramtype"><a class=
"el" href=
"php__raphf__api_8h.html#a833eaa62ffcc217e5749c26c18885b17">php_persistent_handle_factory_t
</a> *
 </td>
702 <td class=
"paramname"><em>a
</em>,
</td>
705 <td class=
"paramkey"></td>
707 <td class=
"paramtype">void *
 </td>
708 <td class=
"paramname"><em>handle
</em> </td>
716 </div><div class=
"memdoc">
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>
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"/>
741 <a class=
"anchor" id=
"ab754f4d59dab5de0edf702a9ab2f4e03"></a>
742 <div class=
"memitem">
743 <div class=
"memproto">
744 <table class=
"memname">
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>
748 <td class=
"paramtype"><a class=
"el" href=
"php__raphf__api_8h.html#a4817c4b3d4077c48dff36376487ba8d4">php_resource_factory_t
</a> *
 </td>
749 <td class=
"paramname"><em>a
</em>,
</td>
752 <td class=
"paramkey"></td>
754 <td class=
"paramtype"><a class=
"el" href=
"php__raphf__api_8h.html#a833eaa62ffcc217e5749c26c18885b17">php_persistent_handle_factory_t
</a> *
 </td>
755 <td class=
"paramname"><em>pf
</em> </td>
763 </div><div class=
"memdoc">
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>
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"/>
789 <a class=
"anchor" id=
"ae174fbe124d4cb6010e218a68379bd18"></a>
790 <div class=
"memitem">
791 <div class=
"memproto">
792 <table class=
"memname">
794 <td class=
"memname">HashTable* php_persistent_handle_statall
</td>
796 <td class=
"paramtype">HashTable *
 </td>
797 <td class=
"paramname"><em>ht
</em></td><td>)
</td>
801 </div><div class=
"memdoc">
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> [
</div>
805 <div class=
"line"><a name=
"l00002"></a><span class=
"lineno"> 2</span>  "name
" =
> [
</div>
806 <div class=
"line"><a name=
"l00003"></a><span class=
"lineno"> 3</span>  "ident
" =
> [
</div>
807 <div class=
"line"><a name=
"l00004"></a><span class=
"lineno"> 4</span>  "used
" =
> 1,
</div>
808 <div class=
"line"><a name=
"l00005"></a><span class=
"lineno"> 5</span>  "free
" =
> 0,
</div>
809 <div class=
"line"><a name=
"l00006"></a><span class=
"lineno"> 6</span>  ]
</div>
810 <div class=
"line"><a name=
"l00007"></a><span class=
"lineno"> 7</span>  ]
</div>
811 <div class=
"line"><a name=
"l00008"></a><span class=
"lineno"> 8</span> ]
</div>
812 </div><!-- fragment --> </dd></dl>
816 <a class=
"anchor" id=
"ae8be369197905047ffbd05c0ca80f245"></a>
817 <div class=
"memitem">
818 <div class=
"memproto">
819 <table class=
"memname">
821 <td class=
"memname">unsigned php_resource_factory_addref
</td>
823 <td class=
"paramtype"><a class=
"el" href=
"php__raphf__api_8h.html#a4817c4b3d4077c48dff36376487ba8d4">php_resource_factory_t
</a> *
 </td>
824 <td class=
"paramname"><em>rf
</em></td><td>)
</td>
828 </div><div class=
"memdoc">
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>
837 <dl class=
"section return"><dt>Returns
</dt><dd>the new refcount
</dd></dl>
841 <a class=
"anchor" id=
"a016b8a4159e698f915ab967711696847"></a>
842 <div class=
"memitem">
843 <div class=
"memproto">
844 <table class=
"memname">
846 <td class=
"memname">void php_resource_factory_dtor
</td>
848 <td class=
"paramtype"><a class=
"el" href=
"php__raphf__api_8h.html#a4817c4b3d4077c48dff36376487ba8d4">php_resource_factory_t
</a> *
 </td>
849 <td class=
"paramname"><em>f
</em></td><td>)
</td>
853 </div><div class=
"memdoc">
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>
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>
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"/>
879 <a class=
"anchor" id=
"a7f012d685f5f7c08f50288b61232e689"></a>
880 <div class=
"memitem">
881 <div class=
"memproto">
882 <table class=
"memname">
884 <td class=
"memname">void php_resource_factory_free
</td>
886 <td class=
"paramtype"><a class=
"el" href=
"php__raphf__api_8h.html#a4817c4b3d4077c48dff36376487ba8d4">php_resource_factory_t
</a> **
 </td>
887 <td class=
"paramname"><em>f
</em></td><td>)
</td>
891 </div><div class=
"memdoc">
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>
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"/>
914 <a class=
"anchor" id=
"a08db5f3698f2d0bf3d2f20dcf4e7b2b4"></a>
915 <div class=
"memitem">
916 <div class=
"memproto">
917 <table class=
"memname">
919 <td class=
"memname">void* php_resource_factory_handle_copy
</td>
921 <td class=
"paramtype"><a class=
"el" href=
"php__raphf__api_8h.html#a4817c4b3d4077c48dff36376487ba8d4">php_resource_factory_t
</a> *
 </td>
922 <td class=
"paramname"><em>f
</em>,
</td>
925 <td class=
"paramkey"></td>
927 <td class=
"paramtype">void *
 </td>
928 <td class=
"paramname"><em>handle
</em> </td>
936 </div><div class=
"memdoc">
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>
946 <dl class=
"section return"><dt>Returns
</dt><dd>the copy
</dd></dl>
948 <p>Referenced by
<a class=
"el" href=
"php__raphf__api_8h.html#ae8124f3f73e96e2193ae03c5519d2763">php_persistent_handle_accrete()
</a>.
</p>
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"/>
962 <a class=
"anchor" id=
"a98d02dc80dd83095b8f901954350840c"></a>
963 <div class=
"memitem">
964 <div class=
"memproto">
965 <table class=
"memname">
967 <td class=
"memname">void* php_resource_factory_handle_ctor
</td>
969 <td class=
"paramtype"><a class=
"el" href=
"php__raphf__api_8h.html#a4817c4b3d4077c48dff36376487ba8d4">php_resource_factory_t
</a> *
 </td>
970 <td class=
"paramname"><em>f
</em>,
</td>
973 <td class=
"paramkey"></td>
975 <td class=
"paramtype">void *
 </td>
976 <td class=
"paramname"><em>init_arg
</em> </td>
984 </div><div class=
"memdoc">
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>
994 <dl class=
"section return"><dt>Returns
</dt><dd>the new resource
</dd></dl>
996 <p>Referenced by
<a class=
"el" href=
"php__raphf__api_8h.html#af6636e870497be0699d2781e5fc8a2a9">php_persistent_handle_acquire()
</a>.
</p>
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"/>
1010 <a class=
"anchor" id=
"a97dbb9d342f33205b92374c586676bc6"></a>
1011 <div class=
"memitem">
1012 <div class=
"memproto">
1013 <table class=
"memname">
1015 <td class=
"memname">void php_resource_factory_handle_dtor
</td>
1017 <td class=
"paramtype"><a class=
"el" href=
"php__raphf__api_8h.html#a4817c4b3d4077c48dff36376487ba8d4">php_resource_factory_t
</a> *
 </td>
1018 <td class=
"paramname"><em>f
</em>,
</td>
1021 <td class=
"paramkey"></td>
1023 <td class=
"paramtype">void *
 </td>
1024 <td class=
"paramname"><em>handle
</em> </td>
1032 </div><div class=
"memdoc">
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>
1043 <p>Referenced by
<a class=
"el" href=
"php__raphf__api_8h.html#af08ee05c51d52200755d24f6f52df144">php_persistent_handle_release()
</a>.
</p>
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"/>
1057 <a class=
"anchor" id=
"ad20f10c53e3f33756638da98819367f0"></a>
1058 <div class=
"memitem">
1059 <div class=
"memproto">
1060 <table class=
"memname">
1062 <td class=
"memname"><a class=
"el" href=
"php__raphf__api_8h.html#a4817c4b3d4077c48dff36376487ba8d4">php_resource_factory_t
</a>* php_resource_factory_init
</td>
1064 <td class=
"paramtype"><a class=
"el" href=
"php__raphf__api_8h.html#a4817c4b3d4077c48dff36376487ba8d4">php_resource_factory_t
</a> *
 </td>
1065 <td class=
"paramname"><em>f
</em>,
</td>
1068 <td class=
"paramkey"></td>
1070 <td class=
"paramtype"><a class=
"el" href=
"php__raphf__api_8h.html#a29e0d7a66e441a5265ddf2f0adbbb3af">php_resource_factory_ops_t
</a> *
 </td>
1071 <td class=
"paramname"><em>fops
</em>,
</td>
1074 <td class=
"paramkey"></td>
1076 <td class=
"paramtype">void *
 </td>
1077 <td class=
"paramname"><em>data
</em>,
</td>
1080 <td class=
"paramkey"></td>
1082 <td class=
"paramtype">void(*)(void *data)
 </td>
1083 <td class=
"paramname"><em>dtor
</em> </td>
1091 </div><div class=
"memdoc">
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>
1104 <dl class=
"section return"><dt>Returns
</dt><dd><em>f
</em> or an allocated resource factory
</dd></dl>
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>
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"/>
1121 <a class=
"anchor" id=
"a617d2cc656ab6427388b938597194ebb"></a>
1122 <div class=
"memitem">
1123 <div class=
"memproto">
1124 <table class=
"memname">
1126 <td class=
"memname">zend_bool php_resource_factory_is_persistent
</td>
1128 <td class=
"paramtype"><a class=
"el" href=
"php__raphf__api_8h.html#a4817c4b3d4077c48dff36376487ba8d4">php_resource_factory_t
</a> *
 </td>
1129 <td class=
"paramname"><em>a
</em></td><td>)
</td>
1133 </div><div class=
"memdoc">
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>
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"/>
1155 <a class=
"anchor" id=
"ad2aba389e88a1e9e11b7dae021bfddfc"></a>
1156 <div class=
"memitem">
1157 <div class=
"memproto">
1158 <table class=
"memname">
1160 <td class=
"memname">STD_PHP_INI_ENTRY
</td>
1162 <td class=
"paramtype">"raphf.persistent_handle.limit
" </td>
1163 <td class=
"paramname">,
</td>
1166 <td class=
"paramkey"></td>
1168 <td class=
"paramtype">"-
1" </td>
1169 <td class=
"paramname">,
</td>
1172 <td class=
"paramkey"></td>
1174 <td class=
"paramtype">PHP_INI_SYSTEM
 </td>
1175 <td class=
"paramname">,
</td>
1178 <td class=
"paramkey"></td>
1180 <td class=
"paramtype">OnUpdateLong
 </td>
1181 <td class=
"paramname">,
</td>
1184 <td class=
"paramkey"></td>
1186 <td class=
"paramtype">persistent_handle.
 </td>
1187 <td class=
"paramname"><em>limit
</em>,
</td>
1190 <td class=
"paramkey"></td>
1192 <td class=
"paramtype">zend_raphf_globals
 </td>
1193 <td class=
"paramname">,
</td>
1196 <td class=
"paramkey"></td>
1198 <td class=
"paramtype">raphf_globals
 </td>
1199 <td class=
"paramname"> </td>
1207 </div><div class=
"memdoc">
1211 <a class=
"anchor" id=
"a9337bda6793399d5917999063e1aa636"></a>
1212 <div class=
"memitem">
1213 <div class=
"memproto">
1214 <table class=
"memname">
1216 <td class=
"memname">ZEND_END_ARG_INFO
</td>
1218 <td class=
"paramname"></td><td>)
</td>
1222 </div><div class=
"memdoc">
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">
1232 <td class=
"memname">struct php_persistent_handle_globals persistent_handle
</td>
1235 </div><div class=
"memdoc">
1239 <a class=
"anchor" id=
"a42f904573a2c5b1eba6ccd6604269f99"></a>
1240 <div class=
"memitem">
1241 <div class=
"memproto">
1242 <table class=
"memname">
1244 <td class=
"memname">zend_module_entry raphf_module_entry
</td>
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">"raphf
"</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">"1.1.0"</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 -->
1267 </div><!-- contents -->
1268 </div><!-- doc-content -->
1269 <!-- start footer part -->
1270 <div id=
"nav-path" class=
"navpath"><!-- id is needed for treeview function! -->
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>