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