Sophie

Sophie

distrib > Mageia > 4 > x86_64 > by-pkgid > 57c367c233a564c968ad389089aceff6 > files > 232

lib64apr-devel-1.5.0-1.mga4.x86_64.rpm

<!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>Apache Portable Runtime: General Purpose Library Routines</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="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">Apache Portable Runtime
   </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="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li><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><!-- top -->
<!-- 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><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Pages</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="#define-members">Macros</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">General Purpose Library Routines<div class="ingroups"><a class="el" href="group___a_p_r.html">Apache Portability Runtime library</a></div></div>  </div>
</div><!--header-->
<div class="contents">
<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:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structapr__vformatter__buff__t.html">apr_vformatter_buff_t</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ga0c9dd98f46b90b5bcd4cbf75e252d0da"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__lib.html#ga0c9dd98f46b90b5bcd4cbf75e252d0da">HUGE_STRING_LEN</a>&#160;&#160;&#160;8192</td></tr>
<tr class="separator:ga0c9dd98f46b90b5bcd4cbf75e252d0da"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa3b0264aadbd9f8d805252fb1ca1cd0e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__lib.html#gaa3b0264aadbd9f8d805252fb1ca1cd0e">apr_killpg</a>(x, y)&#160;&#160;&#160;(killpg ((x), (y)))</td></tr>
<tr class="separator:gaa3b0264aadbd9f8d805252fb1ca1cd0e"><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:ga5e9986deebda40f2d1cf8364fa03c3c5"><td class="memItemLeft" align="right" valign="top">typedef struct <br class="typebreak"/>
<a class="el" href="structapr__vformatter__buff__t.html">apr_vformatter_buff_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__lib.html#ga5e9986deebda40f2d1cf8364fa03c3c5">apr_vformatter_buff_t</a></td></tr>
<tr class="separator:ga5e9986deebda40f2d1cf8364fa03c3c5"><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:ga241e929df23aede34eb3f2651cf56bc9"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__lib.html#ga241e929df23aede34eb3f2651cf56bc9">apr_filepath_name_get</a> (const char *pathname)</td></tr>
<tr class="separator:ga241e929df23aede34eb3f2651cf56bc9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad2cd3594aeaafd45931d1034965f48c1"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__lib.html#gad2cd3594aeaafd45931d1034965f48c1">apr_vformatter</a> (int(*flush_func)(<a class="el" href="structapr__vformatter__buff__t.html">apr_vformatter_buff_t</a> *b), <a class="el" href="structapr__vformatter__buff__t.html">apr_vformatter_buff_t</a> *c, const char *fmt, va_list ap)</td></tr>
<tr class="separator:gad2cd3594aeaafd45931d1034965f48c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga377e0677598745769ec6f80fecf8f859"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__lib.html#ga377e0677598745769ec6f80fecf8f859">apr_password_get</a> (const char *prompt, char *pwbuf, apr_size_t *bufsize)</td></tr>
<tr class="separator:ga377e0677598745769ec6f80fecf8f859"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>This is collection of oddballs that didn't fit anywhere else, and might move to more appropriate headers with the release of APR 1.0. </p>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="gaa3b0264aadbd9f8d805252fb1ca1cd0e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define apr_killpg</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">x, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">y&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;(killpg ((x), (y)))</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>apr_killpg Small utility macros to make things easier to read. Not usually a goal, to be sure.. </p>

</div>
</div>
<a class="anchor" id="ga0c9dd98f46b90b5bcd4cbf75e252d0da"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define HUGE_STRING_LEN&#160;&#160;&#160;8192</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>A constant representing a 'large' string. </p>

</div>
</div>
<h2 class="groupheader">Typedef Documentation</h2>
<a class="anchor" id="ga5e9986deebda40f2d1cf8364fa03c3c5"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structapr__vformatter__buff__t.html">apr_vformatter_buff_t</a> <a class="el" href="structapr__vformatter__buff__t.html">apr_vformatter_buff_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="structapr__vformatter__buff__t.html">apr_vformatter_buff_t</a> </dd></dl>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="ga241e929df23aede34eb3f2651cf56bc9"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* apr_filepath_name_get </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>pathname</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>return the final element of the pathname </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">pathname</td><td>The path to get the final element of </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the final element of the path </dd></dl>
<dl class="section remark"><dt>Remarks</dt><dd><pre>
For example:
                "/foo/bar/gum"    -&gt; "gum"
                "/foo/bar/gum/"   -&gt; ""
                "gum"             -&gt; "gum"
                "bs\\path\\stuff" -&gt; "stuff"
</pre> </dd></dl>

</div>
</div>
<a class="anchor" id="ga377e0677598745769ec6f80fecf8f859"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a> apr_password_get </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>prompt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>pwbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_size_t *&#160;</td>
          <td class="paramname"><em>bufsize</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Display a prompt and read in the password from stdin. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">prompt</td><td>The prompt to display </td></tr>
    <tr><td class="paramname">pwbuf</td><td>Buffer to store the password </td></tr>
    <tr><td class="paramname">bufsize</td><td>The length of the password buffer. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section remark"><dt>Remarks</dt><dd>If the password entered must be truncated to fit in the provided buffer, APR_ENAMETOOLONG will be returned. Note that the bufsize paramater is passed by reference for no reason; its value will never be modified by the <a class="el" href="group__apr__lib.html#ga377e0677598745769ec6f80fecf8f859">apr_password_get()</a> function. </dd></dl>

</div>
</div>
<a class="anchor" id="gad2cd3594aeaafd45931d1034965f48c1"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int apr_vformatter </td>
          <td>(</td>
          <td class="paramtype">int(*)(<a class="el" href="structapr__vformatter__buff__t.html">apr_vformatter_buff_t</a> *b)&#160;</td>
          <td class="paramname"><em>flush_func</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structapr__vformatter__buff__t.html">apr_vformatter_buff_t</a> *&#160;</td>
          <td class="paramname"><em>c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>fmt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">va_list&#160;</td>
          <td class="paramname"><em>ap</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p><a class="el" href="group__apr__lib.html#gad2cd3594aeaafd45931d1034965f48c1">apr_vformatter()</a> is a generic printf-style formatting routine with some extensions. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">flush_func</td><td>The function to call when the buffer is full </td></tr>
    <tr><td class="paramname">c</td><td>The buffer to write to </td></tr>
    <tr><td class="paramname">fmt</td><td>The format string </td></tr>
    <tr><td class="paramname">ap</td><td>The arguments to use to fill out the format string.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section remark"><dt>Remarks</dt><dd><pre>
The extensions are:</pre></dd></dl>
<p>%pA takes a struct in_addr *, and prints it as a.b.c.d %pI takes an <a class="el" href="structapr__sockaddr__t.html">apr_sockaddr_t</a> * and prints it as a.b.c.d:port or %pT takes an apr_os_thread_t * and prints it in decimal ('0' is printed if !APR_HAS_THREADS) %pt takes an apr_os_thread_t * and prints it in hexadecimal ('0' is printed if !APR_HAS_THREADS) %pm takes an apr_status_t * and prints the appropriate error string (from apr_strerror) corresponding to that error code. %pp takes a void * and outputs it in hex %pB takes a apr_uint32_t * as bytes and outputs it's apr_strfsize %pF same as above, but takes a apr_off_t * %pS same as above, but takes a apr_size_t *</p>
<pre>%pA, %pI, %pT, %pp are available from APR 1.0.0 onwards (and in 0.9.x).
%pt is only available from APR 1.2.0 onwards.
%pm, %pB, %pF and %pS are only available from APR 1.3.0 onwards.</pre><pre>The %p hacks are to force gcc's printf warning code to skip
over a pointer argument without complaining.  This does
mean that the ANSI-style %p (output a void * in hex format) won't
work as expected at all, but that seems to be a fair trade-off
for the increased robustness of having printf-warnings work.</pre><pre>Additionally, apr_vformatter allows for arbitrary output methods
using the apr_vformatter_buff and flush_func.</pre><pre>The apr_vformatter_buff has two elements curpos and endpos.
curpos is where apr_vformatter will write the next byte of output.
It proceeds writing output to curpos, and updating curpos, until
either the end of output is reached, or curpos == endpos (i.e. the
buffer is full).</pre><pre>If the end of output is reached, apr_vformatter returns the
number of bytes written.</pre><pre>When the buffer is full, the flush_func is called.  The flush_func
can return -1 to indicate that no further output should be attempted,
and apr_vformatter will return immediately with -1.  Otherwise
the flush_func should flush the buffer in whatever manner is
appropriate, re apr_pool_t nitialize curpos and endpos, and return 0.</pre><pre>Note that flush_func is only invoked as a result of attempting to
write another byte at curpos when curpos &gt;= endpos.  So for
example, it's possible when the output exactly matches the buffer
space available that curpos == endpos will be true when
apr_vformatter returns.</pre><pre>apr_vformatter does not call out to any other code, it is entirely
self-contained.  This allows the callers to do things which are
otherwise "unsafe".  For example, apr_psprintf uses the "scratch"
space at the unallocated end of a block, and doesn't actually
complete the allocation until apr_vformatter returns.  apr_psprintf
would be completely broken if apr_vformatter were to call anything
that used this same pool.  Similarly http_bprintf() uses the "scratch"
space at the end of its output buffer, and doesn't actually note
that the space is in use until it either has to flush the buffer
or until apr_vformatter returns.
</pre> 
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Sat Nov 30 2013 15:32:17 for Apache Portable Runtime by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.5
</small></address>
</body>
</html>