doc
[m6w6/ext-propro] / html / php__propro_8h.html
diff --git a/html/php__propro_8h.html b/html/php__propro_8h.html
new file mode 100644 (file)
index 0000000..12ec79e
--- /dev/null
@@ -0,0 +1,464 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.5"/>
+<title>Property proxy API: php_propro.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+  $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Property proxy API
+   </div>
+   <div id="projectbrief">A facility to manage extension object properties tied to C-struct members</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.5 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)"
+               onblur="searchBox.OnSearchFieldFocus(false)"
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;"
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('php__propro_8h.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#typedef-members">Typedefs</a> &#124;
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">php_propro.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="php__propro_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<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_8h.html#structphp__property__proxy">php_property_proxy</a></td></tr>
+<tr class="memdesc:structphp__property__proxy"><td class="mdescLeft">&#160;</td><td class="mdescRight">The internal property proxy.  <a href="php__propro_8h.html#structphp__property__proxy">More...</a><br/></td></tr>
+<tr class="separator:structphp__property__proxy"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<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_8h.html#structphp__property__proxy__object">php_property_proxy_object</a></td></tr>
+<tr class="memdesc:structphp__property__proxy__object"><td class="mdescLeft">&#160;</td><td class="mdescRight">The userland object.  <a href="php__propro_8h.html#structphp__property__proxy__object">More...</a><br/></td></tr>
+<tr class="separator:structphp__property__proxy__object"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:ac27c374d9d0cf65b52b16ea407df9eac"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="php__propro_8h.html#structphp__property__proxy">php_property_proxy</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php__propro_8h.html#ac27c374d9d0cf65b52b16ea407df9eac">php_property_proxy_t</a></td></tr>
+<tr class="separator:ac27c374d9d0cf65b52b16ea407df9eac"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aaf59f3ba6014a701909054115f812451"><td class="memItemLeft" align="right" valign="top">typedef struct <br class="typebreak"/>
+<a class="el" href="php__propro_8h.html#structphp__property__proxy__object">php_property_proxy_object</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php__propro_8h.html#aaf59f3ba6014a701909054115f812451">php_property_proxy_object_t</a></td></tr>
+<tr class="separator:aaf59f3ba6014a701909054115f812451"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a83d5ddbca9a25a062eded906182f205c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="php__propro_8h.html#ac27c374d9d0cf65b52b16ea407df9eac">php_property_proxy_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php__propro_8h.html#a83d5ddbca9a25a062eded906182f205c">php_property_proxy_init</a> (zval *container, const char *member_str, size_t member_len)</td></tr>
+<tr class="memdesc:a83d5ddbca9a25a062eded906182f205c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a property proxy.  <a href="#a83d5ddbca9a25a062eded906182f205c">More...</a><br/></td></tr>
+<tr class="separator:a83d5ddbca9a25a062eded906182f205c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<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_8h.html#ae185a0f79aac26679cf1dd0de2e46f57">php_property_proxy_free</a> (<a class="el" href="php__propro_8h.html#ac27c374d9d0cf65b52b16ea407df9eac">php_property_proxy_t</a> **proxy)</td></tr>
+<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>
+<tr class="separator:ae185a0f79aac26679cf1dd0de2e46f57"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<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_8h.html#a15c4fce513dc952c575cd72332835aa4">php_property_proxy_get_class_entry</a> (void)</td></tr>
+<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>
+<tr class="separator:a15c4fce513dc952c575cd72332835aa4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<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_8h.html#a35874bda7876fa60b796a9fd90623c1f">php_property_proxy_object_new</a> (zend_class_entry *ce)</td></tr>
+<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>
+<tr class="separator:a35874bda7876fa60b796a9fd90623c1f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<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_8h.html#a8972f05941efb141dd78c42bef70db2f">php_property_proxy_object_new_ex</a> (zend_class_entry *ce, <a class="el" href="php__propro_8h.html#ac27c374d9d0cf65b52b16ea407df9eac">php_property_proxy_t</a> *proxy, <a class="el" href="php__propro_8h.html#aaf59f3ba6014a701909054115f812451">php_property_proxy_object_t</a> **ptr)</td></tr>
+<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>
+<tr class="separator:a8972f05941efb141dd78c42bef70db2f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<hr/><h2 class="groupheader">Data Structure Documentation</h2>
+<a name="structphp__property__proxy" id="structphp__property__proxy"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">struct php_property_proxy</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<div class="textblock"><p>The internal property proxy. </p>
+<p>Container for the object/array holding the proxied property. </p>
+</div><table class="fieldtable">
+<tr><th colspan="3">Data Fields</th></tr>
+<tr><td class="fieldtype">
+<a class="anchor" id="ac0fdbd3fa8f961d7732b89ad81d83f4f"></a>zval *</td>
+<td class="fieldname">
+container</td>
+<td class="fielddoc">
+The container holding the property. </td></tr>
+<tr><td class="fieldtype">
+<a class="anchor" id="ab9d36c8980c76898ce3f4c08f5c8748e"></a>size_t</td>
+<td class="fieldname">
+member_len</td>
+<td class="fielddoc">
+The length of the name. </td></tr>
+<tr><td class="fieldtype">
+<a class="anchor" id="ad6a7b61daa9561ff8bfc13e99dd68f51"></a>char *</td>
+<td class="fieldname">
+member_str</td>
+<td class="fielddoc">
+The name of the proxied property. </td></tr>
+</table>
+
+</div>
+</div>
+<a name="structphp__property__proxy__object" id="structphp__property__proxy__object"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">struct php_property_proxy_object</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<div class="textblock"><p>The userland object. </p>
+<p>Return an object instance of php\PropertyProxy to make your C-struct member accessible by reference from PHP userland.</p>
+<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>
+<div class="line">{</div>
+<div class="line">    my_object_t *obj = zend_object_store_get_object(<span class="keywordtype">object</span> TSRMLS_CC);</div>
+<div class="line">    my_prophandler_t *handler;</div>
+<div class="line">    zval *return_value, *copy = my_cast(IS_STRING, member);</div>
+<div class="line"></div>
+<div class="line">    <span class="keywordflow">if</span> (SUCCESS == my_get_prophandler(Z_STRVAL_P(copy), Z_STRLEN_P(copy), &amp;handler)) {</div>
+<div class="line">        ALLOC_ZVAL(return_value);</div>
+<div class="line">        Z_SET_REFCOUNT_P(return_value, 0);</div>
+<div class="line">        Z_UNSET_ISREF_P(return_value);</div>
+<div class="line"></div>
+<div class="line">        <span class="keywordflow">if</span> (type == BP_VAR_R) {</div>
+<div class="line">            handler-&gt;read(obj, return_value TSRMLS_CC);</div>
+<div class="line">        } <span class="keywordflow">else</span> {</div>
+<div class="line">            <span class="comment">//</span></div>
+<div class="line">            <span class="comment">// This is the interesting part</span></div>
+<div class="line">            <span class="comment">//</span></div>
+<div class="line">            <a class="code" href="php__propro_8h.html#structphp__property__proxy">php_property_proxy_t</a> *<a class="code" href="php__propro_8h.html#a87b08fb8c8dd5a44bccfac6fb81d2103">proxy</a>;</div>
+<div class="line">            zend_object_value proxy_ov;</div>
+<div class="line">            zend_class_entry *proxy_ce;</div>
+<div class="line"></div>
+<div class="line">            proxy = <a class="code" href="php__propro_8h.html#a83d5ddbca9a25a062eded906182f205c">php_property_proxy_init</a>(<span class="keywordtype">object</span>, Z_STRVAL_P(copy), Z_STRLEN_P(copy) TSRMLS_CC);</div>
+<div class="line">            proxy_ce = <a class="code" href="php__propro_8h.html#a15c4fce513dc952c575cd72332835aa4">php_property_proxy_get_class_entry</a>();</div>
+<div class="line">            proxy_ov = <a class="code" href="php__propro_8h.html#a8972f05941efb141dd78c42bef70db2f">php_property_proxy_object_new_ex</a>(proxy_ce, proxy, NULL TSRMLS_CC);</div>
+<div class="line">            RETVAL_OBJVAL(proxy_ov, 0);</div>
+<div class="line">        }</div>
+<div class="line">    } <span class="keywordflow">else</span> {</div>
+<div class="line">        zend_object_handlers *oh = zend_get_std_object_handlers();</div>
+<div class="line">        return_value = oh-&gt;read_property(<span class="keywordtype">object</span>, member, type, key TSRMLS_CC);</div>
+<div class="line">    }</div>
+<div class="line"></div>
+<div class="line">    zval_ptr_dtor(&amp;copy);</div>
+<div class="line"></div>
+<div class="line">    <span class="keywordflow">return</span> return_value;</div>
+<div class="line">}</div>
+</div><!-- fragment --> </div><div class="dynheader">
+Collaboration diagram for php_property_proxy_object:</div>
+<div class="dyncontent">
+<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>
+<map name="php__property__proxy__object_coll__map" id="php__property__proxy__object_coll__map">
+<area shape="rect" id="node2" href="php__propro_8h.html#structphp__property__proxy" title="The internal property proxy. " alt="" coords="4,5,139,32"/></map>
+<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
+<table class="fieldtable">
+<tr><th colspan="3">Data Fields</th></tr>
+<tr><td class="fieldtype">
+<a class="anchor" id="acc1787566cbeff6448101dc27c274294"></a>struct <a class="el" href="php__propro_8h.html#structphp__property__proxy__object">php_property_proxy_object</a> *</td>
+<td class="fieldname">
+parent</td>
+<td class="fielddoc">
+A reference to any parent property proxy object. </td></tr>
+<tr><td class="fieldtype">
+<a class="anchor" id="a87b08fb8c8dd5a44bccfac6fb81d2103"></a><a class="el" href="php__propro_8h.html#ac27c374d9d0cf65b52b16ea407df9eac">php_property_proxy_t</a> *</td>
+<td class="fieldname">
+proxy</td>
+<td class="fielddoc">
+The actual property proxy. </td></tr>
+<tr><td class="fieldtype">
+<a class="anchor" id="a613d3470bf10261b3903e12d1b94f635"></a>zend_object</td>
+<td class="fieldname">
+zo</td>
+<td class="fielddoc">
+The std zend_object. </td></tr>
+<tr><td class="fieldtype">
+<a class="anchor" id="aefc91dcb332c026b37d3c222d338fe34"></a>zend_object_value</td>
+<td class="fieldname">
+zv</td>
+<td class="fielddoc">
+The object value for easy zval creation. </td></tr>
+</table>
+
+</div>
+</div>
+<h2 class="groupheader">Typedef Documentation</h2>
+<a class="anchor" id="aaf59f3ba6014a701909054115f812451"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="php__propro_8h.html#structphp__property__proxy__object">php_property_proxy_object</a> <a class="el" href="php__propro_8h.html#aaf59f3ba6014a701909054115f812451">php_property_proxy_object_t</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ac27c374d9d0cf65b52b16ea407df9eac"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="php__propro_8h.html#structphp__property__proxy">php_property_proxy</a> <a class="el" href="php__propro_8h.html#ac27c374d9d0cf65b52b16ea407df9eac">php_property_proxy_t</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ae185a0f79aac26679cf1dd0de2e46f57"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void php_property_proxy_free </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="php__propro_8h.html#ac27c374d9d0cf65b52b16ea407df9eac">php_property_proxy_t</a> **&#160;</td>
+          <td class="paramname"><em>proxy</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Destroy and free a property proxy. </p>
+<p>The destruction of the property proxy object calls this.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">proxy</td><td>a pointer to the allocated property proxy </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a15c4fce513dc952c575cd72332835aa4"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">zend_class_entry* php_property_proxy_get_class_entry </td>
+          <td>(</td>
+          <td class="paramtype">void&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Get the zend_class_entry of php\PropertyProxy. </p>
+<dl class="section return"><dt>Returns</dt><dd>the class entry pointer </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a83d5ddbca9a25a062eded906182f205c"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="php__propro_8h.html#ac27c374d9d0cf65b52b16ea407df9eac">php_property_proxy_t</a>* php_property_proxy_init </td>
+          <td>(</td>
+          <td class="paramtype">zval *&#160;</td>
+          <td class="paramname"><em>container</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>member_str</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>member_len</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Create a property proxy. </p>
+<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>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">container</td><td>the container holding the property </td></tr>
+    <tr><td class="paramname">member_str</td><td>the name of the proxied property </td></tr>
+    <tr><td class="paramname">member_len</td><td>the length of the name </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>a new property proxy </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a35874bda7876fa60b796a9fd90623c1f"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">zend_object_value php_property_proxy_object_new </td>
+          <td>(</td>
+          <td class="paramtype">zend_class_entry *&#160;</td>
+          <td class="paramname"><em>ce</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Instantiate a new php\PropertyProxy. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">ce</td><td>the property proxy or derived class entry </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>the zval object value </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a8972f05941efb141dd78c42bef70db2f"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">zend_object_value php_property_proxy_object_new_ex </td>
+          <td>(</td>
+          <td class="paramtype">zend_class_entry *&#160;</td>
+          <td class="paramname"><em>ce</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="php__propro_8h.html#ac27c374d9d0cf65b52b16ea407df9eac">php_property_proxy_t</a> *&#160;</td>
+          <td class="paramname"><em>proxy</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="php__propro_8h.html#aaf59f3ba6014a701909054115f812451">php_property_proxy_object_t</a> **&#160;</td>
+          <td class="paramname"><em>ptr</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Instantiate a new php\PropertyProxy with <em>proxy</em>. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">ce</td><td>the property proxy or derived class entry </td></tr>
+    <tr><td class="paramname">proxy</td><td>the internal property proxy </td></tr>
+    <tr><td class="paramname">ptr</td><td>a pointer to store the resulting property proxy object </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>the zval object value </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="php__propro_8h.html">php_propro.h</a></li>
+    <li class="footer">Generated by
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.5 </li>
+  </ul>
+</div>
+</body>
+</html>