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.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); });
16 <link href=
"doxygen.css" rel=
"stylesheet" type=
"text/css" />
19 <div id=
"top"><!-- do not remove this div, it is closed by doxygen! -->
21 <table cellspacing=
"0" cellpadding=
"0">
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
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>
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');
39 <div id=
"navrow1" class=
"tabs">
41 <li><a href=
"index.html"><span>Main
 Page
</span></a></li>
42 <li><a href=
"annotated.html"><span>Data
 Structures
</span></a></li>
43 <li class=
"current"><a href=
"files.html"><span>Files
</span></a></li>
45 <div id=
"MSearchBox" class=
"MSearchBoxInactive">
47 <img id=
"MSearchSelect" src=
"search/mag_sel.png"
48 onmouseover=
"return searchBox.OnSearchSelectShow()"
49 onmouseout=
"return searchBox.OnSearchSelectHide()"
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>
62 <div id=
"navrow2" class=
"tabs2">
64 <li><a href=
"files.html"><span>File
 List
</span></a></li>
65 <li><a href=
"globals.html"><span>Globals
</span></a></li>
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"> </span>All
</a><a class=
"SelectItem" href=
"javascript:void(0)" onclick=
"searchBox.OnSelectItem(1)"><span class=
"SelectionMark"> </span>Data Structures
</a><a class=
"SelectItem" href=
"javascript:void(0)" onclick=
"searchBox.OnSelectItem(2)"><span class=
"SelectionMark"> </span>Files
</a><a class=
"SelectItem" href=
"javascript:void(0)" onclick=
"searchBox.OnSelectItem(3)"><span class=
"SelectionMark"> </span>Functions
</a><a class=
"SelectItem" href=
"javascript:void(0)" onclick=
"searchBox.OnSelectItem(4)"><span class=
"SelectionMark"> </span>Variables
</a><a class=
"SelectItem" href=
"javascript:void(0)" onclick=
"searchBox.OnSelectItem(5)"><span class=
"SelectionMark"> </span>Typedefs
</a><a class=
"SelectItem" href=
"javascript:void(0)" onclick=
"searchBox.OnSelectItem(6)"><span class=
"SelectionMark"> </span>Macros
</a></div>
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">
85 <a href=
"#define-members">Macros
</a> |
86 <a href=
"#typedef-members">Typedefs
</a> |
87 <a href=
"#func-members">Functions
</a> |
88 <a href=
"#var-members">Variables
</a> </div>
89 <div class=
"headertitle">
90 <div class=
"title">php_raphf.c File Reference
</div> </div>
92 <div class=
"contents">
93 <div class=
"textblock"><code>#include
"php.h
"</code><br/>
94 <code>#include
"php_ini.h
"</code><br/>
95 <code>#include
"ext/standard/info.h
"</code><br/>
96 <code>#include
"<a class=
"el" href=
"php__raphf_8h_source.html">php_raphf.h
</a>"</code><br/>
97 </div><table class=
"memberdecls">
98 <tr class=
"heading"><td colspan=
"2"><h2 class=
"groupheader"><a name=
"define-members"></a>
100 <tr class=
"memitem:a5a6099bca8801bd4a502806ab49c1d1c"><td class=
"memItemLeft" align=
"right" valign=
"top">#define
 </td><td class=
"memItemRight" valign=
"bottom"><a class=
"el" href=
"php__raphf_8c.html#a5a6099bca8801bd4a502806ab49c1d1c">PHP_RAPHF_G
</a>   (
&raphf_globals)
</td></tr>
101 <tr class=
"separator:a5a6099bca8801bd4a502806ab49c1d1c"><td class=
"memSeparator" colspan=
"2"> </td></tr>
102 <tr class=
"memitem:a4ac4e8587a25a7617a3bb1b2b246fe7f"><td class=
"memItemLeft" align=
"right" valign=
"top">#define
 </td><td class=
"memItemRight" valign=
"bottom"><a class=
"el" href=
"php__raphf_8c.html#a4ac4e8587a25a7617a3bb1b2b246fe7f">PHP_RAPHF_DEBUG_PHANDLES
</a>   0</td></tr>
103 <tr class=
"separator:a4ac4e8587a25a7617a3bb1b2b246fe7f"><td class=
"memSeparator" colspan=
"2"> </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
 </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"> </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> *
 </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"> </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"> </td></tr>
115 <tr class=
"memitem:ae8be369197905047ffbd05c0ca80f245"><td class=
"memItemLeft" align=
"right" valign=
"top">unsigned
 </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"> </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"> </td></tr>
118 <tr class=
"memitem:a016b8a4159e698f915ab967711696847"><td class=
"memItemLeft" align=
"right" valign=
"top">void
 </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"> </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"> </td></tr>
121 <tr class=
"memitem:a7f012d685f5f7c08f50288b61232e689"><td class=
"memItemLeft" align=
"right" valign=
"top">void
 </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"> </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"> </td></tr>
124 <tr class=
"memitem:a98d02dc80dd83095b8f901954350840c"><td class=
"memItemLeft" align=
"right" valign=
"top">void *
 </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"> </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"> </td></tr>
127 <tr class=
"memitem:a08db5f3698f2d0bf3d2f20dcf4e7b2b4"><td class=
"memItemLeft" align=
"right" valign=
"top">void *
 </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"> </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"> </td></tr>
130 <tr class=
"memitem:a97dbb9d342f33205b92374c586676bc6"><td class=
"memItemLeft" align=
"right" valign=
"top">void
 </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"> </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"> </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> </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"> </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"> </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> *
 </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"> </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"> </td></tr>
139 <tr class=
"memitem:a54fe24355a9575afec9d07673addc021"><td class=
"memItemLeft" align=
"right" valign=
"top">PHP_RAPHF_API void
 </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"> </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"> </td></tr>
142 <tr class=
"memitem:af6636e870497be0699d2781e5fc8a2a9"><td class=
"memItemLeft" align=
"right" valign=
"top">void *
 </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"> </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"> </td></tr>
145 <tr class=
"memitem:ae8124f3f73e96e2193ae03c5519d2763"><td class=
"memItemLeft" align=
"right" valign=
"top">void *
 </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"> </td></tr>
147 <tr class=
"memitem:af08ee05c51d52200755d24f6f52df144"><td class=
"memItemLeft" align=
"right" valign=
"top">void
 </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"> </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"> </td></tr>
150 <tr class=
"memitem:a0d661d1f880270146012eb8781e5343e"><td class=
"memItemLeft" align=
"right" valign=
"top">void
 </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"> </td></tr>
152 <tr class=
"memitem:ae174fbe124d4cb6010e218a68379bd18"><td class=
"memItemLeft" align=
"right" valign=
"top">HashTable *
 </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"> </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> *
 </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"> </td></tr>
156 <tr class=
"memitem:a9337bda6793399d5917999063e1aa636"><td class=
"memItemLeft" align=
"right" valign=
"top"> </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"> </td></tr>
158 <tr class=
"memitem:ad2aba389e88a1e9e11b7dae021bfddfc"><td class=
"memItemLeft" align=
"right" valign=
"top"> </td><td class=
"memItemRight" valign=
"bottom"><a class=
"el" href=
"php__raphf_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>
159 <tr class=
"separator:ad2aba389e88a1e9e11b7dae021bfddfc"><td class=
"memSeparator" colspan=
"2"> </td></tr>
160 <tr class=
"memitem:a98ef98eb514bf71723b22e93ef4fb099"><td class=
"memItemLeft" align=
"right" valign=
"top"> </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"> </td></tr>
162 <tr class=
"memitem:a9bdad7e7a27b1cce6be5ec842da0c921"><td class=
"memItemLeft" align=
"right" valign=
"top"> </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"> </td></tr>
164 <tr class=
"memitem:afe0b826f07940e0297395eb758b6dc63"><td class=
"memItemLeft" align=
"right" valign=
"top"> </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"> </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
 </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"> </td></tr>
172 <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_8c.html#a42f904573a2c5b1eba6ccd6604269f99">raphf_module_entry
</a></td></tr>
173 <tr class=
"separator:a42f904573a2c5b1eba6ccd6604269f99"><td class=
"memSeparator" colspan=
"2"> </td></tr>
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">
181 <td class=
"memname">#define PHP_RAPHF_DEBUG_PHANDLES
   0</td>
184 </div><div class=
"memdoc">
188 <a class=
"anchor" id=
"a5a6099bca8801bd4a502806ab49c1d1c"></a>
189 <div class=
"memitem">
190 <div class=
"memproto">
191 <table class=
"memname">
193 <td class=
"memname">#define PHP_RAPHF_G
   (
&raphf_globals)
</td>
196 </div><div class=
"memdoc">
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>
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">
208 <td class=
"memname">typedef int
<a class=
"el" href=
"php__raphf_8c.html#a0cb9c7fae5afe4237eb4d5d43318fa18">STATUS
</a></td>
211 </div><div class=
"memdoc">
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">
221 <td class=
"memname">PHP_MINFO_FUNCTION
</td>
223 <td class=
"paramtype">raphf
 </td>
224 <td class=
"paramname"></td><td>)
</td>
228 </div><div class=
"memdoc">
232 <a class=
"anchor" id=
"a98ef98eb514bf71723b22e93ef4fb099"></a>
233 <div class=
"memitem">
234 <div class=
"memproto">
235 <table class=
"memname">
237 <td class=
"memname">PHP_MINIT_FUNCTION
</td>
239 <td class=
"paramtype">raphf
 </td>
240 <td class=
"paramname"></td><td>)
</td>
244 </div><div class=
"memdoc">
248 <a class=
"anchor" id=
"a9bdad7e7a27b1cce6be5ec842da0c921"></a>
249 <div class=
"memitem">
250 <div class=
"memproto">
251 <table class=
"memname">
253 <td class=
"memname">PHP_MSHUTDOWN_FUNCTION
</td>
255 <td class=
"paramtype">raphf
 </td>
256 <td class=
"paramname"></td><td>)
</td>
260 </div><div class=
"memdoc">
264 <a class=
"anchor" id=
"a54fe24355a9575afec9d07673addc021"></a>
265 <div class=
"memitem">
266 <div class=
"memproto">
267 <table class=
"memname">
269 <td class=
"memname">PHP_RAPHF_API void php_persistent_handle_abandon
</td>
271 <td class=
"paramtype"><a class=
"el" href=
"php__raphf_8h.html#a833eaa62ffcc217e5749c26c18885b17">php_persistent_handle_factory_t
</a> *
 </td>
272 <td class=
"paramname"><em>a
</em></td><td>)
</td>
276 </div><div class=
"memdoc">
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>
289 <a class=
"anchor" id=
"ae8124f3f73e96e2193ae03c5519d2763"></a>
290 <div class=
"memitem">
291 <div class=
"memproto">
292 <table class=
"memname">
294 <td class=
"memname">void* php_persistent_handle_accrete
</td>
296 <td class=
"paramtype"><a class=
"el" href=
"php__raphf_8h.html#a833eaa62ffcc217e5749c26c18885b17">php_persistent_handle_factory_t
</a> *
 </td>
297 <td class=
"paramname"><em>a
</em>,
</td>
300 <td class=
"paramkey"></td>
302 <td class=
"paramtype">void *
 </td>
303 <td class=
"paramname"><em>handle
</em> </td>
311 </div><div class=
"memdoc">
315 <a class=
"anchor" id=
"af6636e870497be0699d2781e5fc8a2a9"></a>
316 <div class=
"memitem">
317 <div class=
"memproto">
318 <table class=
"memname">
320 <td class=
"memname">void* php_persistent_handle_acquire
</td>
322 <td class=
"paramtype"><a class=
"el" href=
"php__raphf_8h.html#a833eaa62ffcc217e5749c26c18885b17">php_persistent_handle_factory_t
</a> *
 </td>
323 <td class=
"paramname"><em>a
</em>,
</td>
326 <td class=
"paramkey"></td>
328 <td class=
"paramtype">void *
 </td>
329 <td class=
"paramname"><em>init_arg
</em> </td>
337 </div><div class=
"memdoc">
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>
349 <dl class=
"section return"><dt>Returns
</dt><dd>the acquired resource
</dd></dl>
353 <a class=
"anchor" id=
"a0d661d1f880270146012eb8781e5343e"></a>
354 <div class=
"memitem">
355 <div class=
"memproto">
356 <table class=
"memname">
358 <td class=
"memname">void php_persistent_handle_cleanup
</td>
360 <td class=
"paramtype">const char *
 </td>
361 <td class=
"paramname"><em>name_str
</em>,
</td>
364 <td class=
"paramkey"></td>
366 <td class=
"paramtype">size_t
 </td>
367 <td class=
"paramname"><em>name_len
</em>,
</td>
370 <td class=
"paramkey"></td>
372 <td class=
"paramtype">const char *
 </td>
373 <td class=
"paramname"><em>ident_str
</em>,
</td>
376 <td class=
"paramkey"></td>
378 <td class=
"paramtype">size_t
 </td>
379 <td class=
"paramname"><em>ident_len
</em> </td>
387 </div><div class=
"memdoc">
391 <a class=
"anchor" id=
"a0a266874dafb69cf2b040378d4033901"></a>
392 <div class=
"memitem">
393 <div class=
"memproto">
394 <table class=
"memname">
396 <td class=
"memname"><a class=
"el" href=
"php__raphf_8h.html#a833eaa62ffcc217e5749c26c18885b17">php_persistent_handle_factory_t
</a>* php_persistent_handle_concede
</td>
398 <td class=
"paramtype"><a class=
"el" href=
"php__raphf_8h.html#a833eaa62ffcc217e5749c26c18885b17">php_persistent_handle_factory_t
</a> *
 </td>
399 <td class=
"paramname"><em>a
</em>,
</td>
402 <td class=
"paramkey"></td>
404 <td class=
"paramtype">const char *
 </td>
405 <td class=
"paramname"><em>name_str
</em>,
</td>
408 <td class=
"paramkey"></td>
410 <td class=
"paramtype">size_t
 </td>
411 <td class=
"paramname"><em>name_len
</em>,
</td>
414 <td class=
"paramkey"></td>
416 <td class=
"paramtype">const char *
 </td>
417 <td class=
"paramname"><em>ident_str
</em>,
</td>
420 <td class=
"paramkey"></td>
422 <td class=
"paramtype">size_t
 </td>
423 <td class=
"paramname"><em>ident_len
</em>,
</td>
426 <td class=
"paramkey"></td>
428 <td class=
"paramtype"><a class=
"el" href=
"php__raphf_8h.html#a681ca1f7c1249199b45270be60c721c6">php_persistent_handle_wakeup_t
</a> </td>
429 <td class=
"paramname"><em>wakeup
</em>,
</td>
432 <td class=
"paramkey"></td>
434 <td class=
"paramtype"><a class=
"el" href=
"php__raphf_8h.html#a8f7d6389c67478ca0b99729a5dd3d305">php_persistent_handle_retire_t
</a> </td>
435 <td class=
"paramname"><em>retire
</em> </td>
443 </div><div class=
"memdoc">
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>
460 <dl class=
"section return"><dt>Returns
</dt><dd><em>a
</em> or an allocated persistent handle factory
</dd></dl>
464 <a class=
"anchor" id=
"a93458ab12d810f0fd545fb1464ba9eca"></a>
465 <div class=
"memitem">
466 <div class=
"memproto">
467 <table class=
"memname">
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>
471 <td class=
"paramtype">void
 </td>
472 <td class=
"paramname"></td><td>)
</td>
476 </div><div class=
"memdoc">
480 <a class=
"anchor" id=
"a8e7e29a2450650ad87f927bb9d516762"></a>
481 <div class=
"memitem">
482 <div class=
"memproto">
483 <table class=
"memname">
485 <td class=
"memname">PHP_RAPHF_API
<a class=
"el" href=
"php__raphf_8c.html#a0cb9c7fae5afe4237eb4d5d43318fa18">STATUS
</a> php_persistent_handle_provide
</td>
487 <td class=
"paramtype">const char *
 </td>
488 <td class=
"paramname"><em>name_str
</em>,
</td>
491 <td class=
"paramkey"></td>
493 <td class=
"paramtype">size_t
 </td>
494 <td class=
"paramname"><em>name_len
</em>,
</td>
497 <td class=
"paramkey"></td>
499 <td class=
"paramtype"><a class=
"el" href=
"php__raphf_8h.html#a29e0d7a66e441a5265ddf2f0adbbb3af">php_resource_factory_ops_t
</a> *
 </td>
500 <td class=
"paramname"><em>fops
</em>,
</td>
503 <td class=
"paramkey"></td>
505 <td class=
"paramtype">void *
 </td>
506 <td class=
"paramname"><em>data
</em>,
</td>
509 <td class=
"paramkey"></td>
511 <td class=
"paramtype">void(*)(void *)
 </td>
512 <td class=
"paramname"><em>dtor
</em> </td>
520 </div><div class=
"memdoc">
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>
536 <dl class=
"section return"><dt>Returns
</dt><dd>SUCCESS/FAILURE
</dd></dl>
540 <a class=
"anchor" id=
"af08ee05c51d52200755d24f6f52df144"></a>
541 <div class=
"memitem">
542 <div class=
"memproto">
543 <table class=
"memname">
545 <td class=
"memname">void php_persistent_handle_release
</td>
547 <td class=
"paramtype"><a class=
"el" href=
"php__raphf_8h.html#a833eaa62ffcc217e5749c26c18885b17">php_persistent_handle_factory_t
</a> *
 </td>
548 <td class=
"paramname"><em>a
</em>,
</td>
551 <td class=
"paramkey"></td>
553 <td class=
"paramtype">void *
 </td>
554 <td class=
"paramname"><em>handle
</em> </td>
562 </div><div class=
"memdoc">
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>
577 <a class=
"anchor" id=
"ae174fbe124d4cb6010e218a68379bd18"></a>
578 <div class=
"memitem">
579 <div class=
"memproto">
580 <table class=
"memname">
582 <td class=
"memname">HashTable* php_persistent_handle_statall
</td>
584 <td class=
"paramtype">HashTable *
 </td>
585 <td class=
"paramname"><em>ht
</em></td><td>)
</td>
589 </div><div class=
"memdoc">
593 <a class=
"anchor" id=
"ae8be369197905047ffbd05c0ca80f245"></a>
594 <div class=
"memitem">
595 <div class=
"memproto">
596 <table class=
"memname">
598 <td class=
"memname">unsigned php_resource_factory_addref
</td>
600 <td class=
"paramtype"><a class=
"el" href=
"php__raphf_8h.html#a4817c4b3d4077c48dff36376487ba8d4">php_resource_factory_t
</a> *
 </td>
601 <td class=
"paramname"><em>rf
</em></td><td>)
</td>
605 </div><div class=
"memdoc">
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>
614 <dl class=
"section return"><dt>Returns
</dt><dd>the new refcount
</dd></dl>
618 <a class=
"anchor" id=
"a016b8a4159e698f915ab967711696847"></a>
619 <div class=
"memitem">
620 <div class=
"memproto">
621 <table class=
"memname">
623 <td class=
"memname">void php_resource_factory_dtor
</td>
625 <td class=
"paramtype"><a class=
"el" href=
"php__raphf_8h.html#a4817c4b3d4077c48dff36376487ba8d4">php_resource_factory_t
</a> *
 </td>
626 <td class=
"paramname"><em>f
</em></td><td>)
</td>
630 </div><div class=
"memdoc">
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>
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>
645 <a class=
"anchor" id=
"a7f012d685f5f7c08f50288b61232e689"></a>
646 <div class=
"memitem">
647 <div class=
"memproto">
648 <table class=
"memname">
650 <td class=
"memname">void php_resource_factory_free
</td>
652 <td class=
"paramtype"><a class=
"el" href=
"php__raphf_8h.html#a4817c4b3d4077c48dff36376487ba8d4">php_resource_factory_t
</a> **
 </td>
653 <td class=
"paramname"><em>f
</em></td><td>)
</td>
657 </div><div class=
"memdoc">
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>
670 <a class=
"anchor" id=
"a08db5f3698f2d0bf3d2f20dcf4e7b2b4"></a>
671 <div class=
"memitem">
672 <div class=
"memproto">
673 <table class=
"memname">
675 <td class=
"memname">void* php_resource_factory_handle_copy
</td>
677 <td class=
"paramtype"><a class=
"el" href=
"php__raphf_8h.html#a4817c4b3d4077c48dff36376487ba8d4">php_resource_factory_t
</a> *
 </td>
678 <td class=
"paramname"><em>f
</em>,
</td>
681 <td class=
"paramkey"></td>
683 <td class=
"paramtype">void *
 </td>
684 <td class=
"paramname"><em>handle
</em> </td>
692 </div><div class=
"memdoc">
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>
702 <dl class=
"section return"><dt>Returns
</dt><dd>the copy
</dd></dl>
704 <p>Referenced by
<a class=
"el" href=
"php__raphf_8h.html#abb8ec716a84a90515bffbe255cd860f5">php_persistent_handle_accrete()
</a>.
</p>
708 <a class=
"anchor" id=
"a98d02dc80dd83095b8f901954350840c"></a>
709 <div class=
"memitem">
710 <div class=
"memproto">
711 <table class=
"memname">
713 <td class=
"memname">void* php_resource_factory_handle_ctor
</td>
715 <td class=
"paramtype"><a class=
"el" href=
"php__raphf_8h.html#a4817c4b3d4077c48dff36376487ba8d4">php_resource_factory_t
</a> *
 </td>
716 <td class=
"paramname"><em>f
</em>,
</td>
719 <td class=
"paramkey"></td>
721 <td class=
"paramtype">void *
 </td>
722 <td class=
"paramname"><em>init_arg
</em> </td>
730 </div><div class=
"memdoc">
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>
740 <dl class=
"section return"><dt>Returns
</dt><dd>the new resource
</dd></dl>
742 <p>Referenced by
<a class=
"el" href=
"php__raphf_8h.html#a3193fbab8f776563e158e38b7b02cbe5">php_persistent_handle_acquire()
</a>.
</p>
746 <a class=
"anchor" id=
"a97dbb9d342f33205b92374c586676bc6"></a>
747 <div class=
"memitem">
748 <div class=
"memproto">
749 <table class=
"memname">
751 <td class=
"memname">void php_resource_factory_handle_dtor
</td>
753 <td class=
"paramtype"><a class=
"el" href=
"php__raphf_8h.html#a4817c4b3d4077c48dff36376487ba8d4">php_resource_factory_t
</a> *
 </td>
754 <td class=
"paramname"><em>f
</em>,
</td>
757 <td class=
"paramkey"></td>
759 <td class=
"paramtype">void *
 </td>
760 <td class=
"paramname"><em>handle
</em> </td>
768 </div><div class=
"memdoc">
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>
779 <p>Referenced by
<a class=
"el" href=
"php__raphf_8h.html#aa9c1037af893d6007d936c59b51ec7f3">php_persistent_handle_release()
</a>.
</p>
783 <a class=
"anchor" id=
"ad20f10c53e3f33756638da98819367f0"></a>
784 <div class=
"memitem">
785 <div class=
"memproto">
786 <table class=
"memname">
788 <td class=
"memname"><a class=
"el" href=
"php__raphf_8h.html#a4817c4b3d4077c48dff36376487ba8d4">php_resource_factory_t
</a>* php_resource_factory_init
</td>
790 <td class=
"paramtype"><a class=
"el" href=
"php__raphf_8h.html#a4817c4b3d4077c48dff36376487ba8d4">php_resource_factory_t
</a> *
 </td>
791 <td class=
"paramname"><em>f
</em>,
</td>
794 <td class=
"paramkey"></td>
796 <td class=
"paramtype"><a class=
"el" href=
"php__raphf_8h.html#a29e0d7a66e441a5265ddf2f0adbbb3af">php_resource_factory_ops_t
</a> *
 </td>
797 <td class=
"paramname"><em>fops
</em>,
</td>
800 <td class=
"paramkey"></td>
802 <td class=
"paramtype">void *
 </td>
803 <td class=
"paramname"><em>data
</em>,
</td>
806 <td class=
"paramkey"></td>
808 <td class=
"paramtype">void(*)(void *data)
 </td>
809 <td class=
"paramname"><em>dtor
</em> </td>
817 </div><div class=
"memdoc">
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>
830 <dl class=
"section return"><dt>Returns
</dt><dd><em>f
</em> or an allocated resource factory
</dd></dl>
832 <p>Referenced by
<a class=
"el" href=
"php__raphf_8h.html#a43b726e36541ce353e77c641cd21cbc4">php_persistent_handle_provide()
</a>.
</p>
836 <a class=
"anchor" id=
"ad2aba389e88a1e9e11b7dae021bfddfc"></a>
837 <div class=
"memitem">
838 <div class=
"memproto">
839 <table class=
"memname">
841 <td class=
"memname">STD_PHP_INI_ENTRY
</td>
843 <td class=
"paramtype">"raphf.persistent_handle.limit
" </td>
844 <td class=
"paramname">,
</td>
847 <td class=
"paramkey"></td>
849 <td class=
"paramtype">"-
1" </td>
850 <td class=
"paramname">,
</td>
853 <td class=
"paramkey"></td>
855 <td class=
"paramtype">PHP_INI_SYSTEM
 </td>
856 <td class=
"paramname">,
</td>
859 <td class=
"paramkey"></td>
861 <td class=
"paramtype">OnUpdateLong
 </td>
862 <td class=
"paramname">,
</td>
865 <td class=
"paramkey"></td>
867 <td class=
"paramtype">persistent_handle.
 </td>
868 <td class=
"paramname"><em>limit
</em>,
</td>
871 <td class=
"paramkey"></td>
873 <td class=
"paramtype">zend_raphf_globals
 </td>
874 <td class=
"paramname">,
</td>
877 <td class=
"paramkey"></td>
879 <td class=
"paramtype">raphf_globals
 </td>
880 <td class=
"paramname"> </td>
888 </div><div class=
"memdoc">
892 <a class=
"anchor" id=
"a9337bda6793399d5917999063e1aa636"></a>
893 <div class=
"memitem">
894 <div class=
"memproto">
895 <table class=
"memname">
897 <td class=
"memname">ZEND_END_ARG_INFO
</td>
899 <td class=
"paramname"></td><td>)
</td>
903 </div><div class=
"memdoc">
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">
913 <td class=
"memname">struct php_persistent_handle_globals persistent_handle
</td>
916 </div><div class=
"memdoc">
920 <a class=
"anchor" id=
"a42f904573a2c5b1eba6ccd6604269f99"></a>
921 <div class=
"memitem">
922 <div class=
"memproto">
923 <table class=
"memname">
925 <td class=
"memname">zend_module_entry raphf_module_entry
</td>
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">"raphf
"</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 -->
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
 <a href=
"http://www.doxygen.org/index.html">
952 <img class=
"footer" src=
"doxygen.png" alt=
"doxygen"/>