update v1.0.x docs
[m6w6/ext-propro] / v1.0.x / php__propro__api_8h.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2 <html xmlns="http://www.w3.org/1999/xhtml">
3 <head>
4 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
6 <meta name="generator" content="Doxygen 1.8.10"/>
7 <title>Property proxy API: src/php_propro_api.h File Reference</title>
8 <link href="tabs.css" rel="stylesheet" type="text/css"/>
9 <script type="text/javascript" src="jquery.js"></script>
10 <script type="text/javascript" src="dynsections.js"></script>
11 <link href="navtree.css" rel="stylesheet" type="text/css"/>
12 <script type="text/javascript" src="resize.js"></script>
13 <script type="text/javascript" src="navtreedata.js"></script>
14 <script type="text/javascript" src="navtree.js"></script>
15 <script type="text/javascript">
16 $(document).ready(initResizable);
17 $(window).load(resizeHeight);
18 </script>
19 <link href="search/search.css" rel="stylesheet" type="text/css"/>
20 <script type="text/javascript" src="search/searchdata.js"></script>
21 <script type="text/javascript" src="search/search.js"></script>
22 <script type="text/javascript">
23 $(document).ready(function() { init_search(); });
24 </script>
25 <link href="doxygen.css" rel="stylesheet" type="text/css" />
26 </head>
27 <body>
28 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
29 <div id="titlearea">
30 <table cellspacing="0" cellpadding="0">
31 <tbody>
32 <tr style="height: 56px;">
33 <td id="projectalign" style="padding-left: 0.5em;">
34 <div id="projectname">Property proxy API
35 </div>
36 <div id="projectbrief">A facility to manage extension object properties tied to C-struct members</div>
37 </td>
38 </tr>
39 </tbody>
40 </table>
41 </div>
42 <!-- end header part -->
43 <!-- Generated by Doxygen 1.8.10 -->
44 <script type="text/javascript">
45 var searchBox = new SearchBox("searchBox", "search",false,'Search');
46 </script>
47 <div id="navrow1" class="tabs">
48 <ul class="tablist">
49 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
50 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
51 <li class="current"><a href="files.html"><span>Files</span></a></li>
52 <li>
53 <div id="MSearchBox" class="MSearchBoxInactive">
54 <span class="left">
55 <img id="MSearchSelect" src="search/mag_sel.png"
56 onmouseover="return searchBox.OnSearchSelectShow()"
57 onmouseout="return searchBox.OnSearchSelectHide()"
58 alt=""/>
59 <input type="text" id="MSearchField" value="Search" accesskey="S"
60 onfocus="searchBox.OnSearchFieldFocus(true)"
61 onblur="searchBox.OnSearchFieldFocus(false)"
62 onkeyup="searchBox.OnSearchFieldChange(event)"/>
63 </span><span class="right">
64 <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
65 </span>
66 </div>
67 </li>
68 </ul>
69 </div>
70 <div id="navrow2" class="tabs2">
71 <ul class="tablist">
72 <li><a href="files.html"><span>File&#160;List</span></a></li>
73 <li><a href="globals.html"><span>Globals</span></a></li>
74 </ul>
75 </div>
76 </div><!-- top -->
77 <div id="side-nav" class="ui-resizable side-nav-resizable">
78 <div id="nav-tree">
79 <div id="nav-tree-contents">
80 <div id="nav-sync" class="sync"></div>
81 </div>
82 </div>
83 <div id="splitbar" style="-moz-user-select:none;"
84 class="ui-resizable-handle">
85 </div>
86 </div>
87 <script type="text/javascript">
88 $(document).ready(function(){initNavTree('php__propro__api_8h.html','');});
89 </script>
90 <div id="doc-content">
91 <!-- window showing the filter options -->
92 <div id="MSearchSelectWindow"
93 onmouseover="return searchBox.OnSearchSelectShow()"
94 onmouseout="return searchBox.OnSearchSelectHide()"
95 onkeydown="return searchBox.OnSearchSelectKey(event)">
96 </div>
97
98 <!-- iframe showing the search results (closed by default) -->
99 <div id="MSearchResultsWindow">
100 <iframe src="javascript:void(0)" frameborder="0"
101 name="MSearchResults" id="MSearchResults">
102 </iframe>
103 </div>
104
105 <div class="header">
106 <div class="summary">
107 <a href="#nested-classes">Data Structures</a> &#124;
108 <a href="#typedef-members">Typedefs</a> &#124;
109 <a href="#func-members">Functions</a> </div>
110 <div class="headertitle">
111 <div class="title">php_propro_api.h File Reference</div> </div>
112 </div><!--header-->
113 <div class="contents">
114 <div class="textblock"><code>#include &quot;<a class="el" href="php__propro_8h_source.html">php_propro.h</a>&quot;</code><br />
115 </div><div class="textblock"><div class="dynheader">
116 Include dependency graph for php_propro_api.h:</div>
117 <div class="dyncontent">
118 <div class="center"><img src="php__propro__api_8h__incl.png" border="0" usemap="#src_2php__propro__api_8h" alt=""/></div>
119 <map name="src_2php__propro__api_8h" id="src_2php__propro__api_8h">
120 <area shape="rect" id="node2" href="php__propro_8h.html" title="php_propro.h" alt="" coords="28,80,125,107"/>
121 </map>
122 </div>
123 </div><div class="textblock"><div class="dynheader">
124 This graph shows which files directly or indirectly include this file:</div>
125 <div class="dyncontent">
126 <div class="center"><img src="php__propro__api_8h__dep__incl.png" border="0" usemap="#src_2php__propro__api_8hdep" alt=""/></div>
127 <map name="src_2php__propro__api_8hdep" id="src_2php__propro__api_8hdep">
128 <area shape="rect" id="node2" href="php__propro_8h.html" title="php_propro.h" alt="" coords="28,80,125,107"/>
129 <area shape="rect" id="node3" href="php__propro__api_8c.html" title="src/php_propro_api.c" alt="" coords="149,80,292,107"/>
130 </map>
131 </div>
132 </div>
133 <p><a href="php__propro__api_8h_source.html">Go to the source code of this file.</a></p>
134 <table class="memberdecls">
135 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
136 Data Structures</h2></td></tr>
137 <tr class="memitem:structphp__property__proxy"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php__propro__api_8h.html#structphp__property__proxy">php_property_proxy</a></td></tr>
138 <tr class="memdesc:structphp__property__proxy"><td class="mdescLeft">&#160;</td><td class="mdescRight">The internal property proxy. <a href="php__propro__api_8h.html#structphp__property__proxy">More...</a><br /></td></tr>
139 <tr class="separator:structphp__property__proxy"><td class="memSeparator" colspan="2">&#160;</td></tr>
140 <tr class="memitem:structphp__property__proxy__object"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php__propro__api_8h.html#structphp__property__proxy__object">php_property_proxy_object</a></td></tr>
141 <tr class="memdesc:structphp__property__proxy__object"><td class="mdescLeft">&#160;</td><td class="mdescRight">The userland object. <a href="php__propro__api_8h.html#structphp__property__proxy__object">More...</a><br /></td></tr>
142 <tr class="separator:structphp__property__proxy__object"><td class="memSeparator" colspan="2">&#160;</td></tr>
143 </table><table class="memberdecls">
144 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
145 Typedefs</h2></td></tr>
146 <tr class="memitem:ac27c374d9d0cf65b52b16ea407df9eac"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="php__propro__api_8h.html#structphp__property__proxy">php_property_proxy</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php__propro__api_8h.html#ac27c374d9d0cf65b52b16ea407df9eac">php_property_proxy_t</a></td></tr>
147 <tr class="separator:ac27c374d9d0cf65b52b16ea407df9eac"><td class="memSeparator" colspan="2">&#160;</td></tr>
148 <tr class="memitem:aaf59f3ba6014a701909054115f812451"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="php__propro__api_8h.html#structphp__property__proxy__object">php_property_proxy_object</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php__propro__api_8h.html#aaf59f3ba6014a701909054115f812451">php_property_proxy_object_t</a></td></tr>
149 <tr class="separator:aaf59f3ba6014a701909054115f812451"><td class="memSeparator" colspan="2">&#160;</td></tr>
150 </table><table class="memberdecls">
151 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
152 Functions</h2></td></tr>
153 <tr class="memitem:a83d5ddbca9a25a062eded906182f205c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="php__propro__api_8h.html#ac27c374d9d0cf65b52b16ea407df9eac">php_property_proxy_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php__propro__api_8h.html#a83d5ddbca9a25a062eded906182f205c">php_property_proxy_init</a> (zval *container, const char *member_str, size_t member_len)</td></tr>
154 <tr class="memdesc:a83d5ddbca9a25a062eded906182f205c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a property proxy. <a href="#a83d5ddbca9a25a062eded906182f205c">More...</a><br /></td></tr>
155 <tr class="separator:a83d5ddbca9a25a062eded906182f205c"><td class="memSeparator" colspan="2">&#160;</td></tr>
156 <tr class="memitem:ae185a0f79aac26679cf1dd0de2e46f57"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php__propro__api_8h.html#ae185a0f79aac26679cf1dd0de2e46f57">php_property_proxy_free</a> (<a class="el" href="php__propro__api_8h.html#ac27c374d9d0cf65b52b16ea407df9eac">php_property_proxy_t</a> **proxy)</td></tr>
157 <tr class="memdesc:ae185a0f79aac26679cf1dd0de2e46f57"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroy and free a property proxy. <a href="#ae185a0f79aac26679cf1dd0de2e46f57">More...</a><br /></td></tr>
158 <tr class="separator:ae185a0f79aac26679cf1dd0de2e46f57"><td class="memSeparator" colspan="2">&#160;</td></tr>
159 <tr class="memitem:a15c4fce513dc952c575cd72332835aa4"><td class="memItemLeft" align="right" valign="top">zend_class_entry *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php__propro__api_8h.html#a15c4fce513dc952c575cd72332835aa4">php_property_proxy_get_class_entry</a> (void)</td></tr>
160 <tr class="memdesc:a15c4fce513dc952c575cd72332835aa4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the zend_class_entry of php\PropertyProxy. <a href="#a15c4fce513dc952c575cd72332835aa4">More...</a><br /></td></tr>
161 <tr class="separator:a15c4fce513dc952c575cd72332835aa4"><td class="memSeparator" colspan="2">&#160;</td></tr>
162 <tr class="memitem:a35874bda7876fa60b796a9fd90623c1f"><td class="memItemLeft" align="right" valign="top">zend_object_value&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php__propro__api_8h.html#a35874bda7876fa60b796a9fd90623c1f">php_property_proxy_object_new</a> (zend_class_entry *ce)</td></tr>
163 <tr class="memdesc:a35874bda7876fa60b796a9fd90623c1f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Instantiate a new php\PropertyProxy. <a href="#a35874bda7876fa60b796a9fd90623c1f">More...</a><br /></td></tr>
164 <tr class="separator:a35874bda7876fa60b796a9fd90623c1f"><td class="memSeparator" colspan="2">&#160;</td></tr>
165 <tr class="memitem:a8972f05941efb141dd78c42bef70db2f"><td class="memItemLeft" align="right" valign="top">zend_object_value&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php__propro__api_8h.html#a8972f05941efb141dd78c42bef70db2f">php_property_proxy_object_new_ex</a> (zend_class_entry *ce, <a class="el" href="php__propro__api_8h.html#ac27c374d9d0cf65b52b16ea407df9eac">php_property_proxy_t</a> *proxy, <a class="el" href="php__propro__api_8h.html#aaf59f3ba6014a701909054115f812451">php_property_proxy_object_t</a> **ptr)</td></tr>
166 <tr class="memdesc:a8972f05941efb141dd78c42bef70db2f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Instantiate a new php\PropertyProxy with <em>proxy</em>. <a href="#a8972f05941efb141dd78c42bef70db2f">More...</a><br /></td></tr>
167 <tr class="separator:a8972f05941efb141dd78c42bef70db2f"><td class="memSeparator" colspan="2">&#160;</td></tr>
168 </table>
169 <hr/><h2 class="groupheader">Data Structure Documentation</h2>
170 <a name="structphp__property__proxy" id="structphp__property__proxy"></a>
171 <div class="memitem">
172 <div class="memproto">
173 <table class="memname">
174 <tr>
175 <td class="memname">struct php_property_proxy</td>
176 </tr>
177 </table>
178 </div><div class="memdoc">
179 <div class="textblock"><p>The internal property proxy. </p>
180 <p>Container for the object/array holding the proxied property. </p>
181 </div><table class="fieldtable">
182 <tr><th colspan="3">Data Fields</th></tr>
183 <tr><td class="fieldtype">
184 <a class="anchor" id="ac0fdbd3fa8f961d7732b89ad81d83f4f"></a>zval *</td>
185 <td class="fieldname">
186 container</td>
187 <td class="fielddoc">
188 The container holding the property. </td></tr>
189 <tr><td class="fieldtype">
190 <a class="anchor" id="ab9d36c8980c76898ce3f4c08f5c8748e"></a>size_t</td>
191 <td class="fieldname">
192 member_len</td>
193 <td class="fielddoc">
194 The length of the name. </td></tr>
195 <tr><td class="fieldtype">
196 <a class="anchor" id="ad6a7b61daa9561ff8bfc13e99dd68f51"></a>char *</td>
197 <td class="fieldname">
198 member_str</td>
199 <td class="fielddoc">
200 The name of the proxied property. </td></tr>
201 </table>
202
203 </div>
204 </div>
205 <a name="structphp__property__proxy__object" id="structphp__property__proxy__object"></a>
206 <div class="memitem">
207 <div class="memproto">
208 <table class="memname">
209 <tr>
210 <td class="memname">struct php_property_proxy_object</td>
211 </tr>
212 </table>
213 </div><div class="memdoc">
214 <div class="textblock"><p>The userland object. </p>
215 <p>Return an object instance of php\PropertyProxy to make your C-struct member accessible by reference from PHP userland.</p>
216 <p>Example: </p><div class="fragment"><div class="line"><span class="keyword">static</span> zval *my_read_prop(zval *<span class="keywordtype">object</span>, zval *member, <span class="keywordtype">int</span> type, zend_literal *key TSRMLS_DC)</div>
217 <div class="line">{</div>
218 <div class="line"> my_object_t *obj = zend_object_store_get_object(<span class="keywordtype">object</span> TSRMLS_CC);</div>
219 <div class="line"> my_prophandler_t *handler;</div>
220 <div class="line"> zval *return_value, *copy = my_cast(IS_STRING, member);</div>
221 <div class="line"></div>
222 <div class="line"> <span class="keywordflow">if</span> (<a class="code" href="php__propro__api_8c.html#a7e00ad2b6e2b119af6feea77ddfcc7e1ac7f69f7c9e5aea9b8f54cf02870e2bf8">SUCCESS</a> == my_get_prophandler(Z_STRVAL_P(copy), Z_STRLEN_P(copy), &amp;handler)) {</div>
223 <div class="line"> ALLOC_ZVAL(return_value);</div>
224 <div class="line"> Z_SET_REFCOUNT_P(return_value, 0);</div>
225 <div class="line"> Z_UNSET_ISREF_P(return_value);</div>
226 <div class="line"></div>
227 <div class="line"> <span class="keywordflow">if</span> (type == BP_VAR_R) {</div>
228 <div class="line"> handler-&gt;read(obj, return_value TSRMLS_CC);</div>
229 <div class="line"> } <span class="keywordflow">else</span> {</div>
230 <div class="line"> <span class="comment">//</span></div>
231 <div class="line"> <span class="comment">// This is the interesting part</span></div>
232 <div class="line"> <span class="comment">//</span></div>
233 <div class="line"> <a class="code" href="php__propro__api_8h.html#structphp__property__proxy">php_property_proxy_t</a> *<a class="code" href="php__propro__api_8h.html#a87b08fb8c8dd5a44bccfac6fb81d2103">proxy</a>;</div>
234 <div class="line"> zend_object_value proxy_ov;</div>
235 <div class="line"> zend_class_entry *proxy_ce;</div>
236 <div class="line"></div>
237 <div class="line"> proxy = <a class="code" href="php__propro__api_8c.html#a83d5ddbca9a25a062eded906182f205c">php_property_proxy_init</a>(<span class="keywordtype">object</span>, Z_STRVAL_P(copy), Z_STRLEN_P(copy) TSRMLS_CC);</div>
238 <div class="line"> proxy_ce = <a class="code" href="php__propro__api_8c.html#a15c4fce513dc952c575cd72332835aa4">php_property_proxy_get_class_entry</a>();</div>
239 <div class="line"> proxy_ov = <a class="code" href="php__propro__api_8c.html#a8972f05941efb141dd78c42bef70db2f">php_property_proxy_object_new_ex</a>(proxy_ce, proxy, NULL TSRMLS_CC);</div>
240 <div class="line"> RETVAL_OBJVAL(proxy_ov, 0);</div>
241 <div class="line"> }</div>
242 <div class="line"> } <span class="keywordflow">else</span> {</div>
243 <div class="line"> zend_object_handlers *oh = zend_get_std_object_handlers();</div>
244 <div class="line"> return_value = oh-&gt;read_property(<span class="keywordtype">object</span>, member, type, key TSRMLS_CC);</div>
245 <div class="line"> }</div>
246 <div class="line"></div>
247 <div class="line"> zval_ptr_dtor(&amp;copy);</div>
248 <div class="line"></div>
249 <div class="line"> <span class="keywordflow">return</span> return_value;</div>
250 <div class="line">}</div>
251 </div><!-- fragment --> </div><div class="dynheader">
252 Collaboration diagram for php_property_proxy_object:</div>
253 <div class="dyncontent">
254 <div class="center"><img src="structphp__property__proxy__object__coll__graph.png" border="0" usemap="#php__property__proxy__object_coll__map" alt="Collaboration graph"/></div>
255 <map name="php__property__proxy__object_coll__map" id="php__property__proxy__object_coll__map">
256 <area shape="rect" id="node2" href="php__propro__api_8h.html#structphp__property__proxy" title="The internal property proxy. " alt="" coords="5,5,141,32"/>
257 </map>
258 <center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
259 <table class="fieldtable">
260 <tr><th colspan="3">Data Fields</th></tr>
261 <tr><td class="fieldtype">
262 <a class="anchor" id="acc1787566cbeff6448101dc27c274294"></a>struct <a class="el" href="php__propro__api_8h.html#structphp__property__proxy__object">php_property_proxy_object</a> *</td>
263 <td class="fieldname">
264 parent</td>
265 <td class="fielddoc">
266 A reference to any parent property proxy object. </td></tr>
267 <tr><td class="fieldtype">
268 <a class="anchor" id="a87b08fb8c8dd5a44bccfac6fb81d2103"></a><a class="el" href="php__propro__api_8h.html#ac27c374d9d0cf65b52b16ea407df9eac">php_property_proxy_t</a> *</td>
269 <td class="fieldname">
270 proxy</td>
271 <td class="fielddoc">
272 The actual property proxy. </td></tr>
273 <tr><td class="fieldtype">
274 <a class="anchor" id="a613d3470bf10261b3903e12d1b94f635"></a>zend_object</td>
275 <td class="fieldname">
276 zo</td>
277 <td class="fielddoc">
278 The std zend_object. </td></tr>
279 <tr><td class="fieldtype">
280 <a class="anchor" id="aefc91dcb332c026b37d3c222d338fe34"></a>zend_object_value</td>
281 <td class="fieldname">
282 zv</td>
283 <td class="fielddoc">
284 The object value for easy zval creation. </td></tr>
285 </table>
286
287 </div>
288 </div>
289 <h2 class="groupheader">Typedef Documentation</h2>
290 <a class="anchor" id="aaf59f3ba6014a701909054115f812451"></a>
291 <div class="memitem">
292 <div class="memproto">
293 <table class="memname">
294 <tr>
295 <td class="memname">typedef struct <a class="el" href="php__propro__api_8h.html#structphp__property__proxy__object">php_property_proxy_object</a> <a class="el" href="php__propro__api_8h.html#aaf59f3ba6014a701909054115f812451">php_property_proxy_object_t</a></td>
296 </tr>
297 </table>
298 </div><div class="memdoc">
299
300 </div>
301 </div>
302 <a class="anchor" id="ac27c374d9d0cf65b52b16ea407df9eac"></a>
303 <div class="memitem">
304 <div class="memproto">
305 <table class="memname">
306 <tr>
307 <td class="memname">typedef struct <a class="el" href="php__propro__api_8h.html#structphp__property__proxy">php_property_proxy</a> <a class="el" href="php__propro__api_8h.html#ac27c374d9d0cf65b52b16ea407df9eac">php_property_proxy_t</a></td>
308 </tr>
309 </table>
310 </div><div class="memdoc">
311
312 </div>
313 </div>
314 <h2 class="groupheader">Function Documentation</h2>
315 <a class="anchor" id="ae185a0f79aac26679cf1dd0de2e46f57"></a>
316 <div class="memitem">
317 <div class="memproto">
318 <table class="memname">
319 <tr>
320 <td class="memname">void php_property_proxy_free </td>
321 <td>(</td>
322 <td class="paramtype"><a class="el" href="php__propro__api_8h.html#ac27c374d9d0cf65b52b16ea407df9eac">php_property_proxy_t</a> **&#160;</td>
323 <td class="paramname"><em>proxy</em></td><td>)</td>
324 <td></td>
325 </tr>
326 </table>
327 </div><div class="memdoc">
328
329 <p>Destroy and free a property proxy. </p>
330 <p>The destruction of the property proxy object calls this.</p>
331 <dl class="params"><dt>Parameters</dt><dd>
332 <table class="params">
333 <tr><td class="paramname">proxy</td><td>a pointer to the allocated property proxy </td></tr>
334 </table>
335 </dd>
336 </dl>
337
338 </div>
339 </div>
340 <a class="anchor" id="a15c4fce513dc952c575cd72332835aa4"></a>
341 <div class="memitem">
342 <div class="memproto">
343 <table class="memname">
344 <tr>
345 <td class="memname">zend_class_entry* php_property_proxy_get_class_entry </td>
346 <td>(</td>
347 <td class="paramtype">void&#160;</td>
348 <td class="paramname"></td><td>)</td>
349 <td></td>
350 </tr>
351 </table>
352 </div><div class="memdoc">
353
354 <p>Get the zend_class_entry of php\PropertyProxy. </p>
355 <dl class="section return"><dt>Returns</dt><dd>the class entry pointer </dd></dl>
356
357 </div>
358 </div>
359 <a class="anchor" id="a83d5ddbca9a25a062eded906182f205c"></a>
360 <div class="memitem">
361 <div class="memproto">
362 <table class="memname">
363 <tr>
364 <td class="memname"><a class="el" href="php__propro__api_8h.html#ac27c374d9d0cf65b52b16ea407df9eac">php_property_proxy_t</a>* php_property_proxy_init </td>
365 <td>(</td>
366 <td class="paramtype">zval *&#160;</td>
367 <td class="paramname"><em>container</em>, </td>
368 </tr>
369 <tr>
370 <td class="paramkey"></td>
371 <td></td>
372 <td class="paramtype">const char *&#160;</td>
373 <td class="paramname"><em>member_str</em>, </td>
374 </tr>
375 <tr>
376 <td class="paramkey"></td>
377 <td></td>
378 <td class="paramtype">size_t&#160;</td>
379 <td class="paramname"><em>member_len</em>&#160;</td>
380 </tr>
381 <tr>
382 <td></td>
383 <td>)</td>
384 <td></td><td></td>
385 </tr>
386 </table>
387 </div><div class="memdoc">
388
389 <p>Create a property proxy. </p>
390 <p>The property proxy will forward reads and writes to itself to the proxied property with name <em>member_str</em> of <em>container</em>.</p>
391 <dl class="params"><dt>Parameters</dt><dd>
392 <table class="params">
393 <tr><td class="paramname">container</td><td>the container holding the property </td></tr>
394 <tr><td class="paramname">member_str</td><td>the name of the proxied property </td></tr>
395 <tr><td class="paramname">member_len</td><td>the length of the name </td></tr>
396 </table>
397 </dd>
398 </dl>
399 <dl class="section return"><dt>Returns</dt><dd>a new property proxy </dd></dl>
400
401 </div>
402 </div>
403 <a class="anchor" id="a35874bda7876fa60b796a9fd90623c1f"></a>
404 <div class="memitem">
405 <div class="memproto">
406 <table class="memname">
407 <tr>
408 <td class="memname">zend_object_value php_property_proxy_object_new </td>
409 <td>(</td>
410 <td class="paramtype">zend_class_entry *&#160;</td>
411 <td class="paramname"><em>ce</em></td><td>)</td>
412 <td></td>
413 </tr>
414 </table>
415 </div><div class="memdoc">
416
417 <p>Instantiate a new php\PropertyProxy. </p>
418 <dl class="params"><dt>Parameters</dt><dd>
419 <table class="params">
420 <tr><td class="paramname">ce</td><td>the property proxy or derived class entry </td></tr>
421 </table>
422 </dd>
423 </dl>
424 <dl class="section return"><dt>Returns</dt><dd>the zval object value </dd></dl>
425
426 <p><div class="dynheader">
427 Here is the call graph for this function:</div>
428 <div class="dyncontent">
429 <div class="center"><img src="php__propro__api_8h_a35874bda7876fa60b796a9fd90623c1f_cgraph.png" border="0" usemap="#php__propro__api_8h_a35874bda7876fa60b796a9fd90623c1f_cgraph" alt=""/></div>
430 <map name="php__propro__api_8h_a35874bda7876fa60b796a9fd90623c1f_cgraph" id="php__propro__api_8h_a35874bda7876fa60b796a9fd90623c1f_cgraph">
431 <area shape="rect" id="node2" href="php__propro__api_8c.html#a8972f05941efb141dd78c42bef70db2f" title="Instantiate a new php\PropertyProxy with proxy. " alt="" coords="189,5,325,47"/>
432 </map>
433 </div>
434 </p>
435
436 </div>
437 </div>
438 <a class="anchor" id="a8972f05941efb141dd78c42bef70db2f"></a>
439 <div class="memitem">
440 <div class="memproto">
441 <table class="memname">
442 <tr>
443 <td class="memname">zend_object_value php_property_proxy_object_new_ex </td>
444 <td>(</td>
445 <td class="paramtype">zend_class_entry *&#160;</td>
446 <td class="paramname"><em>ce</em>, </td>
447 </tr>
448 <tr>
449 <td class="paramkey"></td>
450 <td></td>
451 <td class="paramtype"><a class="el" href="php__propro__api_8h.html#ac27c374d9d0cf65b52b16ea407df9eac">php_property_proxy_t</a> *&#160;</td>
452 <td class="paramname"><em>proxy</em>, </td>
453 </tr>
454 <tr>
455 <td class="paramkey"></td>
456 <td></td>
457 <td class="paramtype"><a class="el" href="php__propro__api_8h.html#aaf59f3ba6014a701909054115f812451">php_property_proxy_object_t</a> **&#160;</td>
458 <td class="paramname"><em>ptr</em>&#160;</td>
459 </tr>
460 <tr>
461 <td></td>
462 <td>)</td>
463 <td></td><td></td>
464 </tr>
465 </table>
466 </div><div class="memdoc">
467
468 <p>Instantiate a new php\PropertyProxy with <em>proxy</em>. </p>
469 <dl class="params"><dt>Parameters</dt><dd>
470 <table class="params">
471 <tr><td class="paramname">ce</td><td>the property proxy or derived class entry </td></tr>
472 <tr><td class="paramname">proxy</td><td>the internal property proxy </td></tr>
473 <tr><td class="paramname">ptr</td><td>a pointer to store the resulting property proxy object </td></tr>
474 </table>
475 </dd>
476 </dl>
477 <dl class="section return"><dt>Returns</dt><dd>the zval object value </dd></dl>
478
479 <p>Referenced by <a class="el" href="php__propro__api_8h.html#a35874bda7876fa60b796a9fd90623c1f">php_property_proxy_object_new()</a>.</p>
480
481 <p><div class="dynheader">
482 Here is the caller graph for this function:</div>
483 <div class="dyncontent">
484 <div class="center"><img src="php__propro__api_8h_a8972f05941efb141dd78c42bef70db2f_icgraph.png" border="0" usemap="#php__propro__api_8h_a8972f05941efb141dd78c42bef70db2f_icgraph" alt=""/></div>
485 <map name="php__propro__api_8h_a8972f05941efb141dd78c42bef70db2f_icgraph" id="php__propro__api_8h_a8972f05941efb141dd78c42bef70db2f_icgraph">
486 <area shape="rect" id="node2" href="php__propro__api_8h.html#a35874bda7876fa60b796a9fd90623c1f" title="Instantiate a new php\PropertyProxy. " alt="" coords="189,5,325,47"/>
487 </map>
488 </div>
489 </p>
490
491 </div>
492 </div>
493 </div><!-- contents -->
494 </div><!-- doc-content -->
495 <!-- start footer part -->
496 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
497 <ul>
498 <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="php__propro__api_8h.html">php_propro_api.h</a></li>
499 <li class="footer">Generated by
500 <a href="http://www.doxygen.org/index.html">
501 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.10 </li>
502 </ul>
503 </div>
504 </body>
505 </html>