Sophie

Sophie

distrib > Mandriva > current > x86_64 > by-pkgid > e68df492b0c9f27db58b721fc79af4ec > files > 16

apache-mod_spin-1.2.0-2mdv2010.1.x86_64.rpm

<!-- This comment will put IE 6, 7 and 8 in quirks mode -->
<!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"/>
<title>mod_spin: Connection functions</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javaScript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body onload='searchBox.OnSelectItem(0);'>
<!-- Generated by Doxygen 1.6.1 -->
<script type="text/javascript"><!--
var searchBox = new SearchBox("searchBox", "search",false,'Search');
--></script>
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <img id="MSearchSelect" src="search/search.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)"/>
        <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
        </div>
      </li>
    </ul>
  </div>
</div>
<div class="contents">
<h1>Connection functions</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td colspan="2"><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__rxv__spin__connection__functions.html#ga2243ecf7e6985db89146bea7737ece47">rxv_spin_conn_get</a> (<a class="el" href="group__rxv__spin__context__functions.html#ga30804b0a2d35ece781c2d23fead40600">rxv_spin_ctx_t</a> *ctx, const char *conninfo)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__rxv__spin__connection__functions.html#ga07c394d485807c684a15bbcbea9a9136">rxv_spin_conn_set</a> (<a class="el" href="group__rxv__spin__context__functions.html#ga30804b0a2d35ece781c2d23fead40600">rxv_spin_ctx_t</a> *ctx, const char *conninfo, void *conn, apr_status_t(*cleanup)(void *data))</td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>Connection functions (mod_spin API) </p>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="ga2243ecf7e6985db89146bea7737ece47"></a><!-- doxytag: member="rxv_spin.h::rxv_spin_conn_get" ref="ga2243ecf7e6985db89146bea7737ece47" args="(rxv_spin_ctx_t *ctx, const char *conninfo)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void* rxv_spin_conn_get </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__rxv__spin__context__functions.html#ga30804b0a2d35ece781c2d23fead40600">rxv_spin_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>conninfo</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Get a registered connection from the connection pool.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>ctx</em>&nbsp;</td><td>Context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>conninfo</em>&nbsp;</td><td>Connection string for this connection </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Pointer to the connection or NULL if not found </dd></dl>
<dl class="user"><dt><b>Example:</b></dt><dd><div class="fragment"><pre class="fragment"> <a class="code" href="group__rxv__spin__connection__functions.html#ga2243ecf7e6985db89146bea7737ece47">rxv_spin_conn_get</a>(ctx,<span class="stringliteral">&quot;openldap:ldap://ldap.example.com/dc=example,dc=com&quot;</span>);
</pre></div> </dd></dl>

</div>
</div>
<a class="anchor" id="ga07c394d485807c684a15bbcbea9a9136"></a><!-- doxytag: member="rxv_spin.h::rxv_spin_conn_set" ref="ga07c394d485807c684a15bbcbea9a9136" args="(rxv_spin_ctx_t *ctx, const char *conninfo, void *conn, apr_status_t(*cleanup)(void *data))" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void* rxv_spin_conn_set </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__rxv__spin__context__functions.html#ga30804b0a2d35ece781c2d23fead40600">rxv_spin_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>conninfo</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>conn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_status_t(*)(void *data)&nbsp;</td>
          <td class="paramname"> <em>cleanup</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Register a connection with the connection pool.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>ctx</em>&nbsp;</td><td>Context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>conninfo</em>&nbsp;</td><td>Connection string for this connection </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>conn</em>&nbsp;</td><td>Connection pointer </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>cleanup</em>&nbsp;</td><td>Cleanup function to call on pool destruction </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Pointer to the connection, NULL on error </dd></dl>
<dl class="user"><dt><b>Example:</b></dt><dd><div class="fragment"><pre class="fragment"> <a class="code" href="group__rxv__spin__connection__functions.html#ga07c394d485807c684a15bbcbea9a9136">rxv_spin_conn_set</a>(ctx,<span class="stringliteral">&quot;openldap:ldap://host.domain/dc=example,dc=com&quot;</span>,
                   ldapconn,ldap_cleanup);
</pre></div> </dd></dl>
<dl class="remark"><dt><b>Remarks:</b></dt><dd>This function will register the connection even if the connection with the same key already exists. This may lead to multiple cleanup functions being registered for the same connection and eventually segfaults. Use <a class="el" href="group__rxv__spin__connection__functions.html#ga2243ecf7e6985db89146bea7737ece47">rxv_spin_conn_get()</a> function to verify if the connection was registered before. </dd></dl>
<dl class="warning"><dt><b>Warning:</b></dt><dd>If you decide to close the connection by hand, you must remove the cleanup function from the thread specific pool (you can find out what that is by calling rxv_spin_tpool()). </dd>
<dd>
The lifetime of the connection and all other variables passed into this function has to be at least the lifetime of the connection pool you are registering the connection with. Normally, connection pools have thread lifetime, so if you have shorter lifetime for your connection (e.g. request, connection) or the connect string, you are setting yourself up for segfaults. Also, if the lifetime of the connection is longer than the one of the connection pool, for instance, if it has the lifetime of the process and you are registering it with the regular thread based connection pool, you may experience segfaults if you rely on that connection once the thread exited. </dd></dl>

</div>
</div>
</div>
<!--- 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">&nbsp;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&nbsp;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&nbsp;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&nbsp;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&nbsp;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&nbsp;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&nbsp;</span>Defines</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<hr size="1"/><address style="text-align: right;"><small>Generated on 29 Dec 2009 for mod_spin by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
</body>
</html>