Modified: apr/site/trunk/docs/docs/apr/apr__lib_8h-source.html URL: http://svn.apache.org/viewcvs/apr/site/trunk/docs/docs/apr/apr__lib_8h-source.html?view=diff&r1=151767&r2=151768 ============================================================================== --- apr/site/trunk/docs/docs/apr/apr__lib_8h-source.html (original) +++ apr/site/trunk/docs/docs/apr/apr__lib_8h-source.html Mon Feb 7 15:10:17 2005 @@ -3,234 +3,240 @@ <title>Apache Portable Runtime: apr_lib.h Source File</title> <link href="doxygen.css" rel="stylesheet" type="text/css"> </head><body> -<!-- Generated by Doxygen 1.3.8 --> +<!-- Generated by Doxygen 1.3.7 --> <div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="annotated.html">Data Structures</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Data Fields</a> | <a class="qindex" href="globals.html">Globals</a> | <a class="qindex" href="pages.html">Related Pages</a></div> -<h1>apr_lib.h</h1><a href="apr__lib_8h.html">Go to the documentation of this file.</a><pre class="fragment"><div>00001 <span class="comment">/* Copyright 2000-2004 The Apache Software Foundation</span> -00002 <span class="comment"> *</span> -00003 <span class="comment"> * Licensed under the Apache License, Version 2.0 (the "License");</span> -00004 <span class="comment"> * you may not use this file except in compliance with the License.</span> -00005 <span class="comment"> * You may obtain a copy of the License at</span> -00006 <span class="comment"> *</span> -00007 <span class="comment"> * http://www.apache.org/licenses/LICENSE-2.0</span> -00008 <span class="comment"> *</span> -00009 <span class="comment"> * Unless required by applicable law or agreed to in writing, software</span> -00010 <span class="comment"> * distributed under the License is distributed on an "AS IS" BASIS,</span> -00011 <span class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span> -00012 <span class="comment"> * See the License for the specific language governing permissions and</span> -00013 <span class="comment"> * limitations under the License.</span> -00014 <span class="comment"> */</span> -00015 -00016 <span class="preprocessor">#ifndef APR_LIB_H</span> -00017 <span class="preprocessor"></span><span class="preprocessor">#define APR_LIB_H</span> -00018 <span class="preprocessor"></span><span class="comment"></span> -00019 <span class="comment">/**</span> -00020 <span class="comment"> * @file apr_lib.h</span> -00021 <span class="comment"> * This is collection of oddballs that didn't fit anywhere else,</span> -00022 <span class="comment"> * and might move to more appropriate headers with the release</span> -00023 <span class="comment"> * of APR 1.0.</span> -00024 <span class="comment"> * @brief APR general purpose library routines</span> -00025 <span class="comment"> */</span> -00026 -00027 <span class="preprocessor">#include "apr.h"</span> -00028 <span class="preprocessor">#include "<a class="code" href="apr__errno_8h.html">apr_errno.h</a>"</span> -00029 -00030 <span class="preprocessor">#if APR_HAVE_CTYPE_H</span> -00031 <span class="preprocessor"></span><span class="preprocessor">#include <ctype.h></span> -00032 <span class="preprocessor">#endif</span> -00033 <span class="preprocessor"></span><span class="preprocessor">#if APR_HAVE_STDARG_H</span> -00034 <span class="preprocessor"></span><span class="preprocessor">#include <stdarg.h></span> -00035 <span class="preprocessor">#endif</span> -00036 <span class="preprocessor"></span> -00037 <span class="preprocessor">#ifdef __cplusplus</span> -00038 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span> { -00039 <span class="preprocessor">#endif </span><span class="comment">/* __cplusplus */</span> -00040 <span class="comment"></span> -00041 <span class="comment">/**</span> -00042 <span class="comment"> * @defgroup apr_lib General Purpose Library Routines</span> -00043 <span class="comment"> * @ingroup APR </span> -00044 <span class="comment"> * This is collection of oddballs that didn't fit anywhere else,</span> -00045 <span class="comment"> * and might move to more appropriate headers with the release</span> -00046 <span class="comment"> * of APR 1.0.</span> -00047 <span class="comment"> * @{</span> -00048 <span class="comment"> */</span> -00049 <span class="comment"></span> -00050 <span class="comment">/** A constant representing a 'large' string. */</span> -<a name="l00051"></a><a class="code" href="group__apr__lib.html#ga4">00051</a> <span class="preprocessor">#define HUGE_STRING_LEN 8192</span> -00052 <span class="preprocessor"></span> -00053 <span class="comment">/*</span> -00054 <span class="comment"> * Define the structures used by the APR general-purpose library.</span> -00055 <span class="comment"> */</span> -00056 <span class="comment"></span> -00057 <span class="comment">/** @see apr_vformatter_buff_t */</span> -<a name="l00058"></a><a class="code" href="group__apr__lib.html#ga0">00058</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structapr__vformatter__buff__t.html">apr_vformatter_buff_t</a> <a class="code" href="group__apr__lib.html#ga0">apr_vformatter_buff_t</a>; -00059 <span class="comment"></span> -00060 <span class="comment">/**</span> -00061 <span class="comment"> * Structure used by the variable-formatter routines.</span> -00062 <span class="comment"> */</span> -<a name="l00063"></a><a class="code" href="structapr__vformatter__buff__t.html">00063</a> <span class="keyword">struct </span><a class="code" href="group__apr__lib.html#ga0">apr_vformatter_buff_t</a> {<span class="comment"></span> -00064 <span class="comment"> /** The current position */</span> -<a name="l00065"></a><a class="code" href="structapr__vformatter__buff__t.html#o0">00065</a> <span class="keywordtype">char</span> *<a class="code" href="structapr__vformatter__buff__t.html#o0">curpos</a>;<span class="comment"></span> -00066 <span class="comment"> /** The end position of the format string */</span> -<a name="l00067"></a><a class="code" href="structapr__vformatter__buff__t.html#o1">00067</a> <span class="keywordtype">char</span> *<a class="code" href="structapr__vformatter__buff__t.html#o1">endpos</a>; -00068 }; -00069 <span class="comment"></span> -00070 <span class="comment">/**</span> -00071 <span class="comment"> * return the final element of the pathname</span> -00072 <span class="comment"> * @param pathname The path to get the final element of</span> -00073 <span class="comment"> * @return the final element of the path</span> -00074 <span class="comment"> * @remark</span> -00075 <span class="comment"> * <PRE></span> -00076 <span class="comment"> * For example:</span> -00077 <span class="comment"> * "/foo/bar/gum" -> "gum"</span> -00078 <span class="comment"> * "/foo/bar/gum/" -> ""</span> -00079 <span class="comment"> * "gum" -> "gum"</span> -00080 <span class="comment"> * "bs\\path\\stuff" -> "stuff"</span> -00081 <span class="comment"> * </PRE></span> -00082 <span class="comment"> */</span> -00083 APR_DECLARE(<span class="keyword">const</span> <span class="keywordtype">char</span> *) apr_filepath_name_get(const <span class="keywordtype">char</span> *pathname); -00084 <span class="comment"></span> -00085 <span class="comment">/**</span> -00086 <span class="comment"> * apr_killpg</span> -00087 <span class="comment"> * Small utility macros to make things easier to read. Not usually a</span> -00088 <span class="comment"> * goal, to be sure..</span> -00089 <span class="comment"> */</span> -00090 -00091 #ifdef WIN32 -00092 #define apr_killpg(x, y) -00093 #else <span class="comment">/* WIN32 */</span> -00094 #ifdef NO_KILLPG -00095 #define apr_killpg(x, y) (kill (-(x), (y))) -00096 #else <span class="comment">/* NO_KILLPG */</span> -<a name="l00097"></a><a class="code" href="group__apr__lib.html#ga5">00097</a> #define apr_killpg(x, y) (killpg ((x), (y))) -00098 #endif <span class="comment">/* NO_KILLPG */</span> -00099 #endif <span class="comment">/* WIN32 */</span> -00100 <span class="comment"></span> -00101 <span class="comment">/**</span> -00102 <span class="comment"> * apr_vformatter() is a generic printf-style formatting routine</span> -00103 <span class="comment"> * with some extensions.</span> -00104 <span class="comment"> * @param flush_func The function to call when the buffer is full</span> -00105 <span class="comment"> * @param c The buffer to write to</span> -00106 <span class="comment"> * @param fmt The format string</span> -00107 <span class="comment"> * @param ap The arguments to use to fill out the format string.</span> -00108 <span class="comment"> *</span> -00109 <span class="comment"> * @remark</span> -00110 <span class="comment"> * <PRE></span> -00111 <span class="comment"> * The extensions are:</span> -00112 <span class="comment"> *</span> -00113 <span class="comment"> * %%pA takes a struct in_addr *, and prints it as a.b.c.d</span> -00114 <span class="comment"> * %%pI takes an apr_sockaddr_t * and prints it as a.b.c.d:port or</span> -00115 <span class="comment"> * [ipv6-address]:port</span> -00116 <span class="comment"> * %%pT takes an apr_os_thread_t * and prints it in decimal</span> -00117 <span class="comment"> * ('0' is printed if !APR_HAS_THREADS)</span> -00118 <span class="comment"> * %%pp takes a void * and outputs it in hex</span> -00119 <span class="comment"> *</span> -00120 <span class="comment"> * The %%p hacks are to force gcc's printf warning code to skip</span> -00121 <span class="comment"> * over a pointer argument without complaining. This does</span> -00122 <span class="comment"> * mean that the ANSI-style %%p (output a void * in hex format) won't</span> -00123 <span class="comment"> * work as expected at all, but that seems to be a fair trade-off</span> -00124 <span class="comment"> * for the increased robustness of having printf-warnings work.</span> -00125 <span class="comment"> *</span> -00126 <span class="comment"> * Additionally, apr_vformatter allows for arbitrary output methods</span> -00127 <span class="comment"> * using the apr_vformatter_buff and flush_func.</span> -00128 <span class="comment"> *</span> -00129 <span class="comment"> * The apr_vformatter_buff has two elements curpos and endpos.</span> -00130 <span class="comment"> * curpos is where apr_vformatter will write the next byte of output.</span> -00131 <span class="comment"> * It proceeds writing output to curpos, and updating curpos, until</span> -00132 <span class="comment"> * either the end of output is reached, or curpos == endpos (i.e. the</span> -00133 <span class="comment"> * buffer is full).</span> -00134 <span class="comment"> *</span> -00135 <span class="comment"> * If the end of output is reached, apr_vformatter returns the</span> -00136 <span class="comment"> * number of bytes written.</span> -00137 <span class="comment"> *</span> -00138 <span class="comment"> * When the buffer is full, the flush_func is called. The flush_func</span> -00139 <span class="comment"> * can return -1 to indicate that no further output should be attempted,</span> -00140 <span class="comment"> * and apr_vformatter will return immediately with -1. Otherwise</span> -00141 <span class="comment"> * the flush_func should flush the buffer in whatever manner is</span> -00142 <span class="comment"> * appropriate, re apr_pool_t nitialize curpos and endpos, and return 0.</span> -00143 <span class="comment"> *</span> -00144 <span class="comment"> * Note that flush_func is only invoked as a result of attempting to</span> -00145 <span class="comment"> * write another byte at curpos when curpos >= endpos. So for</span> -00146 <span class="comment"> * example, it's possible when the output exactly matches the buffer</span> -00147 <span class="comment"> * space available that curpos == endpos will be true when</span> -00148 <span class="comment"> * apr_vformatter returns.</span> -00149 <span class="comment"> *</span> -00150 <span class="comment"> * apr_vformatter does not call out to any other code, it is entirely</span> -00151 <span class="comment"> * self-contained. This allows the callers to do things which are</span> -00152 <span class="comment"> * otherwise "unsafe". For example, apr_psprintf uses the "scratch"</span> -00153 <span class="comment"> * space at the unallocated end of a block, and doesn't actually</span> -00154 <span class="comment"> * complete the allocation until apr_vformatter returns. apr_psprintf</span> -00155 <span class="comment"> * would be completely broken if apr_vformatter were to call anything</span> -00156 <span class="comment"> * that used this same pool. Similarly http_bprintf() uses the "scratch"</span> -00157 <span class="comment"> * space at the end of its output buffer, and doesn't actually note</span> -00158 <span class="comment"> * that the space is in use until it either has to flush the buffer</span> -00159 <span class="comment"> * or until apr_vformatter returns.</span> -00160 <span class="comment"> * </PRE></span> -00161 <span class="comment"> */</span> -00162 APR_DECLARE(<span class="keywordtype">int</span>) apr_vformatter(<span class="keywordtype">int</span> (*flush_func)(apr_vformatter_buff_t *b), -00163 apr_vformatter_buff_t *c, const <span class="keywordtype">char</span> *fmt, -00164 va_list ap); -00165 <span class="comment"></span> -00166 <span class="comment">/**</span> -00167 <span class="comment"> * Display a prompt and read in the password from stdin.</span> -00168 <span class="comment"> * @param prompt The prompt to display</span> -00169 <span class="comment"> * @param pwbuf Buffer to store the password</span> -00170 <span class="comment"> * @param bufsize The length of the password buffer.</span> -00171 <span class="comment"> */</span> -00172 APR_DECLARE(<a class="code" href="group__apr__errno.html#ga0">apr_status_t</a>) apr_password_get(const <span class="keywordtype">char</span> *prompt, <span class="keywordtype">char</span> *pwbuf, -00173 apr_size_t *bufsize); -00174 <span class="comment"></span> -00175 <span class="comment">/** @} */</span> -00176 <span class="comment"></span> -00177 <span class="comment">/**</span> -00178 <span class="comment"> * @defgroup apr_ctype ctype functions</span> -00179 <span class="comment"> * These macros allow correct support of 8-bit characters on systems which</span> -00180 <span class="comment"> * support 8-bit characters. Pretty dumb how the cast is required, but</span> -00181 <span class="comment"> * that's legacy libc for ya. These new macros do not support EOF like</span> -00182 <span class="comment"> * the standard macros do. Tough.</span> -00183 <span class="comment"> * @{</span> -00184 <span class="comment"> */</span><span class="comment"></span> -00185 <span class="comment">/** @see isalnum */</span> -<a name="l00186"></a><a class="code" href="group__apr__ctype.html#ga0">00186</a> #define apr_isalnum(c) (isalnum(((<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>)(c))))<span class="comment"></span> -00187 <span class="comment">/** @see isalpha */</span> -<a name="l00188"></a><a class="code" href="group__apr__ctype.html#ga1">00188</a> #define apr_isalpha(c) (isalpha(((<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>)(c))))<span class="comment"></span> -00189 <span class="comment">/** @see iscntrl */</span> -<a name="l00190"></a><a class="code" href="group__apr__ctype.html#ga2">00190</a> #define apr_iscntrl(c) (iscntrl(((<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>)(c))))<span class="comment"></span> -00191 <span class="comment">/** @see isdigit */</span> -<a name="l00192"></a><a class="code" href="group__apr__ctype.html#ga3">00192</a> #define apr_isdigit(c) (isdigit(((<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>)(c))))<span class="comment"></span> -00193 <span class="comment">/** @see isgraph */</span> -<a name="l00194"></a><a class="code" href="group__apr__ctype.html#ga4">00194</a> #define apr_isgraph(c) (isgraph(((<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>)(c))))<span class="comment"></span> -00195 <span class="comment">/** @see islower*/</span> -<a name="l00196"></a><a class="code" href="group__apr__ctype.html#ga5">00196</a> #define apr_islower(c) (islower(((<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>)(c))))<span class="comment"></span> -00197 <span class="comment">/** @see isascii */</span> -00198 #ifdef isascii -00199 #define apr_isascii(c) (isascii(((<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>)(c)))) -00200 #else -<a name="l00201"></a><a class="code" href="group__apr__ctype.html#ga6">00201</a> #define apr_isascii(c) (((c) & ~0x7f)==0) -00202 #endif<span class="comment"></span> -00203 <span class="comment">/** @see isprint */</span> -<a name="l00204"></a><a class="code" href="group__apr__ctype.html#ga7">00204</a> #define apr_isprint(c) (isprint(((<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>)(c))))<span class="comment"></span> -00205 <span class="comment">/** @see ispunct */</span> -<a name="l00206"></a><a class="code" href="group__apr__ctype.html#ga8">00206</a> #define apr_ispunct(c) (ispunct(((<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>)(c))))<span class="comment"></span> -00207 <span class="comment">/** @see isspace */</span> -<a name="l00208"></a><a class="code" href="group__apr__ctype.html#ga9">00208</a> #define apr_isspace(c) (isspace(((<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>)(c))))<span class="comment"></span> -00209 <span class="comment">/** @see isupper */</span> -<a name="l00210"></a><a class="code" href="group__apr__ctype.html#ga10">00210</a> #define apr_isupper(c) (isupper(((<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>)(c))))<span class="comment"></span> -00211 <span class="comment">/** @see isxdigit */</span> -<a name="l00212"></a><a class="code" href="group__apr__ctype.html#ga11">00212</a> #define apr_isxdigit(c) (isxdigit(((<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>)(c))))<span class="comment"></span> -00213 <span class="comment">/** @see tolower */</span> -<a name="l00214"></a><a class="code" href="group__apr__ctype.html#ga12">00214</a> #define apr_tolower(c) (tolower(((<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>)(c))))<span class="comment"></span> -00215 <span class="comment">/** @see toupper */</span> -<a name="l00216"></a><a class="code" href="group__apr__ctype.html#ga13">00216</a> #define apr_toupper(c) (toupper(((<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>)(c)))) -00217 <span class="comment"></span> -00218 <span class="comment">/** @} */</span> -00219 -00220 #ifdef __cplusplus -00221 } -00222 #endif -00223 -00224 #endif <span class="comment">/* ! APR_LIB_H */</span> -</div></pre><hr size="1"><address style="align: right;"><small>Generated on Wed Sep 1 21:36:05 2004 for Apache Portable Runtime by +<h1>apr_lib.h</h1><a href="apr__lib_8h.html">Go to the documentation of this file.</a><pre class="fragment"><div>00001 <span class="comment">/* Copyright 2000-2005 The Apache Software Foundation or its licensors, as</span> +00002 <span class="comment"> * applicable.</span> +00003 <span class="comment"> *</span> +00004 <span class="comment"> * Licensed under the Apache License, Version 2.0 (the "License");</span> +00005 <span class="comment"> * you may not use this file except in compliance with the License.</span> +00006 <span class="comment"> * You may obtain a copy of the License at</span> +00007 <span class="comment"> *</span> +00008 <span class="comment"> * http://www.apache.org/licenses/LICENSE-2.0</span> +00009 <span class="comment"> *</span> +00010 <span class="comment"> * Unless required by applicable law or agreed to in writing, software</span> +00011 <span class="comment"> * distributed under the License is distributed on an "AS IS" BASIS,</span> +00012 <span class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span> +00013 <span class="comment"> * See the License for the specific language governing permissions and</span> +00014 <span class="comment"> * limitations under the License.</span> +00015 <span class="comment"> */</span> +00016 +00017 <span class="preprocessor">#ifndef APR_LIB_H</span> +00018 <span class="preprocessor"></span><span class="preprocessor">#define APR_LIB_H</span> +00019 <span class="preprocessor"></span><span class="comment"></span> +00020 <span class="comment">/**</span> +00021 <span class="comment"> * @file apr_lib.h</span> +00022 <span class="comment"> * This is collection of oddballs that didn't fit anywhere else,</span> +00023 <span class="comment"> * and might move to more appropriate headers with the release</span> +00024 <span class="comment"> * of APR 1.0.</span> +00025 <span class="comment"> * @brief APR general purpose library routines</span> +00026 <span class="comment"> */</span> +00027 +00028 <span class="preprocessor">#include "apr.h"</span> +00029 <span class="preprocessor">#include "<a class="code" href="apr__errno_8h.html">apr_errno.h</a>"</span> +00030 +00031 <span class="preprocessor">#if APR_HAVE_CTYPE_H</span> +00032 <span class="preprocessor"></span><span class="preprocessor">#include <ctype.h></span> +00033 <span class="preprocessor">#endif</span> +00034 <span class="preprocessor"></span><span class="preprocessor">#if APR_HAVE_STDARG_H</span> +00035 <span class="preprocessor"></span><span class="preprocessor">#include <stdarg.h></span> +00036 <span class="preprocessor">#endif</span> +00037 <span class="preprocessor"></span> +00038 <span class="preprocessor">#ifdef __cplusplus</span> +00039 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span> { +00040 <span class="preprocessor">#endif </span><span class="comment">/* __cplusplus */</span> +00041 <span class="comment"></span> +00042 <span class="comment">/**</span> +00043 <span class="comment"> * @defgroup apr_lib General Purpose Library Routines</span> +00044 <span class="comment"> * @ingroup APR </span> +00045 <span class="comment"> * This is collection of oddballs that didn't fit anywhere else,</span> +00046 <span class="comment"> * and might move to more appropriate headers with the release</span> +00047 <span class="comment"> * of APR 1.0.</span> +00048 <span class="comment"> * @{</span> +00049 <span class="comment"> */</span> +00050 <span class="comment"></span> +00051 <span class="comment">/** A constant representing a 'large' string. */</span> +<a name="l00052"></a><a class="code" href="group__apr__lib.html#ga4">00052</a> <span class="preprocessor">#define HUGE_STRING_LEN 8192</span> +00053 <span class="preprocessor"></span> +00054 <span class="comment">/*</span> +00055 <span class="comment"> * Define the structures used by the APR general-purpose library.</span> +00056 <span class="comment"> */</span> +00057 <span class="comment"></span> +00058 <span class="comment">/** @see apr_vformatter_buff_t */</span> +<a name="l00059"></a><a class="code" href="group__apr__lib.html#ga0">00059</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structapr__vformatter__buff__t.html">apr_vformatter_buff_t</a> <a class="code" href="group__apr__lib.html#ga0">apr_vformatter_buff_t</a>; +00060 <span class="comment"></span> +00061 <span class="comment">/**</span> +00062 <span class="comment"> * Structure used by the variable-formatter routines.</span> +00063 <span class="comment"> */</span> +<a name="l00064"></a><a class="code" href="structapr__vformatter__buff__t.html">00064</a> <span class="keyword">struct </span><a class="code" href="group__apr__lib.html#ga0">apr_vformatter_buff_t</a> {<span class="comment"></span> +00065 <span class="comment"> /** The current position */</span> +<a name="l00066"></a><a class="code" href="structapr__vformatter__buff__t.html#o0">00066</a> <span class="keywordtype">char</span> *<a class="code" href="structapr__vformatter__buff__t.html#o0">curpos</a>;<span class="comment"></span> +00067 <span class="comment"> /** The end position of the format string */</span> +<a name="l00068"></a><a class="code" href="structapr__vformatter__buff__t.html#o1">00068</a> <span class="keywordtype">char</span> *<a class="code" href="structapr__vformatter__buff__t.html#o1">endpos</a>; +00069 }; +00070 <span class="comment"></span> +00071 <span class="comment">/**</span> +00072 <span class="comment"> * return the final element of the pathname</span> +00073 <span class="comment"> * @param pathname The path to get the final element of</span> +00074 <span class="comment"> * @return the final element of the path</span> +00075 <span class="comment"> * @remark</span> +00076 <span class="comment"> * <PRE></span> +00077 <span class="comment"> * For example:</span> +00078 <span class="comment"> * "/foo/bar/gum" -> "gum"</span> +00079 <span class="comment"> * "/foo/bar/gum/" -> ""</span> +00080 <span class="comment"> * "gum" -> "gum"</span> +00081 <span class="comment"> * "bs\\path\\stuff" -> "stuff"</span> +00082 <span class="comment"> * </PRE></span> +00083 <span class="comment"> */</span> +00084 APR_DECLARE(<span class="keyword">const</span> <span class="keywordtype">char</span> *) apr_filepath_name_get(const <span class="keywordtype">char</span> *pathname); +00085 <span class="comment"></span> +00086 <span class="comment">/**</span> +00087 <span class="comment"> * apr_killpg</span> +00088 <span class="comment"> * Small utility macros to make things easier to read. Not usually a</span> +00089 <span class="comment"> * goal, to be sure..</span> +00090 <span class="comment"> */</span> +00091 +00092 #ifdef WIN32 +00093 #define apr_killpg(x, y) +00094 #else <span class="comment">/* WIN32 */</span> +00095 #ifdef NO_KILLPG +00096 #define apr_killpg(x, y) (kill (-(x), (y))) +00097 #else <span class="comment">/* NO_KILLPG */</span> +<a name="l00098"></a><a class="code" href="group__apr__lib.html#ga5">00098</a> #define apr_killpg(x, y) (killpg ((x), (y))) +00099 #endif <span class="comment">/* NO_KILLPG */</span> +00100 #endif <span class="comment">/* WIN32 */</span> +00101 <span class="comment"></span> +00102 <span class="comment">/**</span> +00103 <span class="comment"> * apr_vformatter() is a generic printf-style formatting routine</span> +00104 <span class="comment"> * with some extensions.</span> +00105 <span class="comment"> * @param flush_func The function to call when the buffer is full</span> +00106 <span class="comment"> * @param c The buffer to write to</span> +00107 <span class="comment"> * @param fmt The format string</span> +00108 <span class="comment"> * @param ap The arguments to use to fill out the format string.</span> +00109 <span class="comment"> *</span> +00110 <span class="comment"> * @remark</span> +00111 <span class="comment"> * <PRE></span> +00112 <span class="comment"> * The extensions are:</span> +00113 <span class="comment"> *</span> +00114 <span class="comment"> * %%pA takes a struct in_addr *, and prints it as a.b.c.d</span> +00115 <span class="comment"> * %%pI takes an apr_sockaddr_t * and prints it as a.b.c.d:port or</span> +00116 <span class="comment"> * [ipv6-address]:port</span> +00117 <span class="comment"> * %%pT takes an apr_os_thread_t * and prints it in decimal</span> +00118 <span class="comment"> * ('0' is printed if !APR_HAS_THREADS)</span> +00119 <span class="comment"> * %%pp takes a void * and outputs it in hex</span> +00120 <span class="comment"> *</span> +00121 <span class="comment"> * The %%p hacks are to force gcc's printf warning code to skip</span> +00122 <span class="comment"> * over a pointer argument without complaining. This does</span> +00123 <span class="comment"> * mean that the ANSI-style %%p (output a void * in hex format) won't</span> +00124 <span class="comment"> * work as expected at all, but that seems to be a fair trade-off</span> +00125 <span class="comment"> * for the increased robustness of having printf-warnings work.</span> +00126 <span class="comment"> *</span> +00127 <span class="comment"> * Additionally, apr_vformatter allows for arbitrary output methods</span> +00128 <span class="comment"> * using the apr_vformatter_buff and flush_func.</span> +00129 <span class="comment"> *</span> +00130 <span class="comment"> * The apr_vformatter_buff has two elements curpos and endpos.</span> +00131 <span class="comment"> * curpos is where apr_vformatter will write the next byte of output.</span> +00132 <span class="comment"> * It proceeds writing output to curpos, and updating curpos, until</span> +00133 <span class="comment"> * either the end of output is reached, or curpos == endpos (i.e. the</span> +00134 <span class="comment"> * buffer is full).</span> +00135 <span class="comment"> *</span> +00136 <span class="comment"> * If the end of output is reached, apr_vformatter returns the</span> +00137 <span class="comment"> * number of bytes written.</span> +00138 <span class="comment"> *</span> +00139 <span class="comment"> * When the buffer is full, the flush_func is called. The flush_func</span> +00140 <span class="comment"> * can return -1 to indicate that no further output should be attempted,</span> +00141 <span class="comment"> * and apr_vformatter will return immediately with -1. Otherwise</span> +00142 <span class="comment"> * the flush_func should flush the buffer in whatever manner is</span> +00143 <span class="comment"> * appropriate, re apr_pool_t nitialize curpos and endpos, and return 0.</span> +00144 <span class="comment"> *</span> +00145 <span class="comment"> * Note that flush_func is only invoked as a result of attempting to</span> +00146 <span class="comment"> * write another byte at curpos when curpos >= endpos. So for</span> +00147 <span class="comment"> * example, it's possible when the output exactly matches the buffer</span> +00148 <span class="comment"> * space available that curpos == endpos will be true when</span> +00149 <span class="comment"> * apr_vformatter returns.</span> +00150 <span class="comment"> *</span> +00151 <span class="comment"> * apr_vformatter does not call out to any other code, it is entirely</span> +00152 <span class="comment"> * self-contained. This allows the callers to do things which are</span> +00153 <span class="comment"> * otherwise "unsafe". For example, apr_psprintf uses the "scratch"</span> +00154 <span class="comment"> * space at the unallocated end of a block, and doesn't actually</span> +00155 <span class="comment"> * complete the allocation until apr_vformatter returns. apr_psprintf</span> +00156 <span class="comment"> * would be completely broken if apr_vformatter were to call anything</span> +00157 <span class="comment"> * that used this same pool. Similarly http_bprintf() uses the "scratch"</span> +00158 <span class="comment"> * space at the end of its output buffer, and doesn't actually note</span> +00159 <span class="comment"> * that the space is in use until it either has to flush the buffer</span> +00160 <span class="comment"> * or until apr_vformatter returns.</span> +00161 <span class="comment"> * </PRE></span> +00162 <span class="comment"> */</span> +00163 APR_DECLARE(<span class="keywordtype">int</span>) apr_vformatter(<span class="keywordtype">int</span> (*flush_func)(apr_vformatter_buff_t *b), +00164 apr_vformatter_buff_t *c, const <span class="keywordtype">char</span> *fmt, +00165 va_list ap); +00166 <span class="comment"></span> +00167 <span class="comment">/**</span> +00168 <span class="comment"> * Display a prompt and read in the password from stdin.</span> +00169 <span class="comment"> * @param prompt The prompt to display</span> +00170 <span class="comment"> * @param pwbuf Buffer to store the password</span> +00171 <span class="comment"> * @param bufsize The length of the password buffer.</span> +00172 <span class="comment"> * @remark If the password entered must be truncated to fit in</span> +00173 <span class="comment"> * the provided buffer, APR_ENAMETOOLONG will be returned.</span> +00174 <span class="comment"> * Note that the bufsize paramater is passed by reference for no</span> +00175 <span class="comment"> * reason; its value will never be modified by the apr_password_get()</span> +00176 <span class="comment"> * function.</span> +00177 <span class="comment"> */</span> +00178 APR_DECLARE(apr_status_t) apr_password_get(const <span class="keywordtype">char</span> *prompt, <span class="keywordtype">char</span> *pwbuf, +00179 apr_size_t *bufsize); +00180 <span class="comment"></span> +00181 <span class="comment">/** @} */</span> +00182 <span class="comment"></span> +00183 <span class="comment">/**</span> +00184 <span class="comment"> * @defgroup apr_ctype ctype functions</span> +00185 <span class="comment"> * These macros allow correct support of 8-bit characters on systems which</span> +00186 <span class="comment"> * support 8-bit characters. Pretty dumb how the cast is required, but</span> +00187 <span class="comment"> * that's legacy libc for ya. These new macros do not support EOF like</span> +00188 <span class="comment"> * the standard macros do. Tough.</span> +00189 <span class="comment"> * @{</span> +00190 <span class="comment"> */</span><span class="comment"></span> +00191 <span class="comment">/** @see isalnum */</span> +<a name="l00192"></a><a class="code" href="group__apr__ctype.html#ga0">00192</a> #define apr_isalnum(c) (isalnum(((<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>)(c))))<span class="comment"></span> +00193 <span class="comment">/** @see isalpha */</span> +<a name="l00194"></a><a class="code" href="group__apr__ctype.html#ga1">00194</a> #define apr_isalpha(c) (isalpha(((<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>)(c))))<span class="comment"></span> +00195 <span class="comment">/** @see iscntrl */</span> +<a name="l00196"></a><a class="code" href="group__apr__ctype.html#ga2">00196</a> #define apr_iscntrl(c) (iscntrl(((<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>)(c))))<span class="comment"></span> +00197 <span class="comment">/** @see isdigit */</span> +<a name="l00198"></a><a class="code" href="group__apr__ctype.html#ga3">00198</a> #define apr_isdigit(c) (isdigit(((<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>)(c))))<span class="comment"></span> +00199 <span class="comment">/** @see isgraph */</span> +<a name="l00200"></a><a class="code" href="group__apr__ctype.html#ga4">00200</a> #define apr_isgraph(c) (isgraph(((<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>)(c))))<span class="comment"></span> +00201 <span class="comment">/** @see islower*/</span> +<a name="l00202"></a><a class="code" href="group__apr__ctype.html#ga5">00202</a> #define apr_islower(c) (islower(((<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>)(c))))<span class="comment"></span> +00203 <span class="comment">/** @see isascii */</span> +00204 #ifdef isascii +00205 #define apr_isascii(c) (isascii(((<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>)(c)))) +00206 #else +<a name="l00207"></a><a class="code" href="group__apr__ctype.html#ga6">00207</a> #define apr_isascii(c) (((c) & ~0x7f)==0) +00208 #endif<span class="comment"></span> +00209 <span class="comment">/** @see isprint */</span> +<a name="l00210"></a><a class="code" href="group__apr__ctype.html#ga7">00210</a> #define apr_isprint(c) (isprint(((<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>)(c))))<span class="comment"></span> +00211 <span class="comment">/** @see ispunct */</span> +<a name="l00212"></a><a class="code" href="group__apr__ctype.html#ga8">00212</a> #define apr_ispunct(c) (ispunct(((<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>)(c))))<span class="comment"></span> +00213 <span class="comment">/** @see isspace */</span> +<a name="l00214"></a><a class="code" href="group__apr__ctype.html#ga9">00214</a> #define apr_isspace(c) (isspace(((<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>)(c))))<span class="comment"></span> +00215 <span class="comment">/** @see isupper */</span> +<a name="l00216"></a><a class="code" href="group__apr__ctype.html#ga10">00216</a> #define apr_isupper(c) (isupper(((<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>)(c))))<span class="comment"></span> +00217 <span class="comment">/** @see isxdigit */</span> +<a name="l00218"></a><a class="code" href="group__apr__ctype.html#ga11">00218</a> #define apr_isxdigit(c) (isxdigit(((<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>)(c))))<span class="comment"></span> +00219 <span class="comment">/** @see tolower */</span> +<a name="l00220"></a><a class="code" href="group__apr__ctype.html#ga12">00220</a> #define apr_tolower(c) (tolower(((<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>)(c))))<span class="comment"></span> +00221 <span class="comment">/** @see toupper */</span> +<a name="l00222"></a><a class="code" href="group__apr__ctype.html#ga13">00222</a> #define apr_toupper(c) (toupper(((<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>)(c)))) +00223 <span class="comment"></span> +00224 <span class="comment">/** @} */</span> +00225 +00226 #ifdef __cplusplus +00227 } +00228 #endif +00229 +00230 #endif <span class="comment">/* ! APR_LIB_H */</span> +</div></pre><hr size="1"><address style="align: right;"><small>Generated on Mon Feb 7 13:18:25 2005 for Apache Portable Runtime by <a href="http://www.doxygen.org/index.html"> -<img src="doxygen.png" alt="doxygen" align="middle" border=0 ></a> 1.3.8 </small></address> +<img src="doxygen.png" alt="doxygen" align="middle" border=0 ></a> 1.3.7 </small></address> </body> </html>
Modified: apr/site/trunk/docs/docs/apr/apr__lib_8h.html URL: http://svn.apache.org/viewcvs/apr/site/trunk/docs/docs/apr/apr__lib_8h.html?view=diff&r1=151767&r2=151768 ============================================================================== --- apr/site/trunk/docs/docs/apr/apr__lib_8h.html (original) +++ apr/site/trunk/docs/docs/apr/apr__lib_8h.html Mon Feb 7 15:10:17 2005 @@ -3,9 +3,10 @@ <title>Apache Portable Runtime: apr_lib.h File Reference</title> <link href="doxygen.css" rel="stylesheet" type="text/css"> </head><body> -<!-- Generated by Doxygen 1.3.8 --> +<!-- Generated by Doxygen 1.3.7 --> <div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="annotated.html">Data Structures</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Data Fields</a> | <a class="qindex" href="globals.html">Globals</a> | <a class="qindex" href="pages.html">Related Pages</a></div> -<h1>apr_lib.h File Reference</h1>APR general purpose library routines. <a href="#_details">More...</a> +<h1>apr_lib.h File Reference</h1>APR general purpose library routines. +<a href="#_details">More...</a> <p> <code>#include "apr.h"</code><br> <code>#include "<a class="el" href="apr__errno_8h-source.html">apr_errno.h</a>"</code><br> @@ -63,8 +64,8 @@ <hr><a name="_details"></a><h2>Detailed Description</h2> APR general purpose library routines. <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. <hr size="1"><address style="align: right;"><small>Generated on Wed Sep 1 21:36:05 2004 for Apache Portable Runtime by +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. <hr size="1"><address style="align: right;"><small>Generated on Mon Feb 7 13:18:25 2005 for Apache Portable Runtime by <a href="http://www.doxygen.org/index.html"> -<img src="doxygen.png" alt="doxygen" align="middle" border=0 ></a> 1.3.8 </small></address> +<img src="doxygen.png" alt="doxygen" align="middle" border=0 ></a> 1.3.7 </small></address> </body> </html> Modified: apr/site/trunk/docs/docs/apr/apr__mmap_8h-source.html URL: http://svn.apache.org/viewcvs/apr/site/trunk/docs/docs/apr/apr__mmap_8h-source.html?view=diff&r1=151767&r2=151768 ============================================================================== --- apr/site/trunk/docs/docs/apr/apr__mmap_8h-source.html (original) +++ apr/site/trunk/docs/docs/apr/apr__mmap_8h-source.html Mon Feb 7 15:10:17 2005 @@ -3,180 +3,181 @@ <title>Apache Portable Runtime: apr_mmap.h Source File</title> <link href="doxygen.css" rel="stylesheet" type="text/css"> </head><body> -<!-- Generated by Doxygen 1.3.8 --> +<!-- Generated by Doxygen 1.3.7 --> <div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="annotated.html">Data Structures</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Data Fields</a> | <a class="qindex" href="globals.html">Globals</a> | <a class="qindex" href="pages.html">Related Pages</a></div> -<h1>apr_mmap.h</h1><a href="apr__mmap_8h.html">Go to the documentation of this file.</a><pre class="fragment"><div>00001 <span class="comment">/* Copyright 2000-2004 The Apache Software Foundation</span> -00002 <span class="comment"> *</span> -00003 <span class="comment"> * Licensed under the Apache License, Version 2.0 (the "License");</span> -00004 <span class="comment"> * you may not use this file except in compliance with the License.</span> -00005 <span class="comment"> * You may obtain a copy of the License at</span> -00006 <span class="comment"> *</span> -00007 <span class="comment"> * http://www.apache.org/licenses/LICENSE-2.0</span> -00008 <span class="comment"> *</span> -00009 <span class="comment"> * Unless required by applicable law or agreed to in writing, software</span> -00010 <span class="comment"> * distributed under the License is distributed on an "AS IS" BASIS,</span> -00011 <span class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span> -00012 <span class="comment"> * See the License for the specific language governing permissions and</span> -00013 <span class="comment"> * limitations under the License.</span> -00014 <span class="comment"> */</span> -00015 -00016 <span class="preprocessor">#ifndef APR_MMAP_H</span> -00017 <span class="preprocessor"></span><span class="preprocessor">#define APR_MMAP_H</span> -00018 <span class="preprocessor"></span><span class="comment"></span> -00019 <span class="comment">/**</span> -00020 <span class="comment"> * @file apr_mmap.h</span> -00021 <span class="comment"> * @brief APR MMAP routines</span> -00022 <span class="comment"> */</span> -00023 -00024 <span class="preprocessor">#include "apr.h"</span> -00025 <span class="preprocessor">#include "<a class="code" href="apr__pools_8h.html">apr_pools.h</a>"</span> -00026 <span class="preprocessor">#include "<a class="code" href="apr__errno_8h.html">apr_errno.h</a>"</span> -00027 <span class="preprocessor">#include "<a class="code" href="apr__ring_8h.html">apr_ring.h</a>"</span> -00028 <span class="preprocessor">#include "<a class="code" href="apr__file__io_8h.html">apr_file_io.h</a>"</span> <span class="comment">/* for apr_file_t */</span> -00029 -00030 <span class="preprocessor">#ifdef BEOS</span> -00031 <span class="preprocessor"></span><span class="preprocessor">#include <kernel/OS.h></span> -00032 <span class="preprocessor">#endif</span> -00033 <span class="preprocessor"></span> -00034 <span class="preprocessor">#ifdef __cplusplus</span> -00035 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span> { -00036 <span class="preprocessor">#endif </span><span class="comment">/* __cplusplus */</span> -00037 <span class="comment"></span> -00038 <span class="comment">/**</span> -00039 <span class="comment"> * @defgroup apr_mmap MMAP (Memory Map) Routines</span> -00040 <span class="comment"> * @ingroup APR </span> -00041 <span class="comment"> * @{</span> -00042 <span class="comment"> */</span> -00043 <span class="comment"></span> -00044 <span class="comment">/** MMap opened for reading */</span> -<a name="l00045"></a><a class="code" href="group__apr__mmap.html#ga5">00045</a> <span class="preprocessor">#define APR_MMAP_READ 1</span> -00046 <span class="preprocessor"></span><span class="comment">/** MMap opened for writing */</span> -<a name="l00047"></a><a class="code" href="group__apr__mmap.html#ga6">00047</a> <span class="preprocessor">#define APR_MMAP_WRITE 2</span> -00048 <span class="preprocessor"></span><span class="comment"></span> -00049 <span class="comment">/** @see apr_mmap_t */</span> -<a name="l00050"></a><a class="code" href="group__apr__mmap.html#ga0">00050</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structapr__mmap__t.html">apr_mmap_t</a> <a class="code" href="group__apr__mmap.html#ga0">apr_mmap_t</a>; -00051 <span class="comment"></span> -00052 <span class="comment">/**</span> -00053 <span class="comment"> * @remark</span> -00054 <span class="comment"> * As far as I can tell the only really sane way to store an MMAP is as a</span> -00055 <span class="comment"> * void * and a length. BeOS requires this area_id, but that's just a little</span> -00056 <span class="comment"> * something extra. I am exposing this type, because it doesn't make much</span> -00057 <span class="comment"> * sense to keep it private, and opening it up makes some stuff easier in</span> -00058 <span class="comment"> * Apache.</span> -00059 <span class="comment"> */</span><span class="comment"></span> -00060 <span class="comment">/** The MMAP structure */</span> -<a name="l00061"></a><a class="code" href="structapr__mmap__t.html">00061</a> <span class="keyword">struct </span><a class="code" href="group__apr__mmap.html#ga0">apr_mmap_t</a> {<span class="comment"></span> -00062 <span class="comment"> /** The pool the mmap structure was allocated out of. */</span> -<a name="l00063"></a><a class="code" href="structapr__mmap__t.html#o0">00063</a> <a class="code" href="group__apr__pools.html#ga0">apr_pool_t</a> *<a class="code" href="structapr__mmap__t.html#o0">cntxt</a>; -00064 <span class="preprocessor">#ifdef BEOS</span> -00065 <span class="preprocessor"></span><span class="comment"> /** An area ID. Only valid on BeOS */</span> -00066 area_id area; -00067 <span class="preprocessor">#endif</span> -00068 <span class="preprocessor"></span><span class="preprocessor">#ifdef WIN32</span> -00069 <span class="preprocessor"></span><span class="comment"> /** The handle of the file mapping */</span> -00070 HANDLE mhandle;<span class="comment"></span> -00071 <span class="comment"> /** The start of the real memory page area (mapped view) */</span> -00072 <span class="keywordtype">void</span> *mv;<span class="comment"></span> -00073 <span class="comment"> /** The physical start, size and offset */</span> -00074 apr_off_t pstart; -00075 apr_size_t psize; -00076 apr_off_t poffset; -00077 <span class="preprocessor">#endif</span> -00078 <span class="preprocessor"></span><span class="comment"> /** The start of the memory mapped area */</span> -<a name="l00079"></a><a class="code" href="structapr__mmap__t.html#o1">00079</a> <span class="keywordtype">void</span> *<a class="code" href="structapr__mmap__t.html#o1">mm</a>;<span class="comment"></span> -00080 <span class="comment"> /** The amount of data in the mmap */</span> -<a name="l00081"></a><a class="code" href="structapr__mmap__t.html#o2">00081</a> apr_size_t <a class="code" href="structapr__mmap__t.html#o2">size</a>;<span class="comment"></span> -00082 <span class="comment"> /** ring of apr_mmap_t's that reference the same</span> -00083 <span class="comment"> * mmap'ed region; acts in place of a reference count */</span> -00084 <a class="code" href="structapr__mmap__t.html#a0">APR_RING_ENTRY</a>(apr_mmap_t) link; -00085 }; -00086 -00087 #if APR_HAS_MMAP || defined(DOXYGEN) -00088 <span class="comment"></span> -00089 <span class="comment">/** @def APR_MMAP_THRESHOLD </span> -00090 <span class="comment"> * Files have to be at least this big before they're mmap()d. This is to deal</span> -00091 <span class="comment"> * with systems where the expense of doing an mmap() and an munmap() outweighs</span> -00092 <span class="comment"> * the benefit for small files. It shouldn't be set lower than 1.</span> -00093 <span class="comment"> */</span> -00094 #ifdef MMAP_THRESHOLD -00095 # define APR_MMAP_THRESHOLD MMAP_THRESHOLD -00096 #else -00097 # ifdef SUNOS4 -00098 # define APR_MMAP_THRESHOLD (8*1024) -00099 # else -<a name="l00100"></a><a class="code" href="group__apr__mmap.html#ga7">00100</a> # define APR_MMAP_THRESHOLD 1 -00101 # endif <span class="comment">/* SUNOS4 */</span> -00102 #endif <span class="comment">/* MMAP_THRESHOLD */</span> -00103 <span class="comment"></span> -00104 <span class="comment">/** @def APR_MMAP_LIMIT</span> -00105 <span class="comment"> * Maximum size of MMap region</span> -00106 <span class="comment"> */</span> -00107 #ifdef MMAP_LIMIT -00108 # define APR_MMAP_LIMIT MMAP_LIMIT -00109 #else -<a name="l00110"></a><a class="code" href="group__apr__mmap.html#ga8">00110</a> # define APR_MMAP_LIMIT (4*1024*1024) -00111 #endif <span class="comment">/* MMAP_LIMIT */</span> -00112 <span class="comment"></span> -00113 <span class="comment">/** Can this file be MMaped */</span> -<a name="l00114"></a><a class="code" href="group__apr__mmap.html#ga9">00114</a> #define APR_MMAP_CANDIDATE(filelength) \ -00115 ((filelength >= APR_MMAP_THRESHOLD) && (filelength < APR_MMAP_LIMIT)) -00116 -00117 <span class="comment">/* Function definitions */</span> -00118 <span class="comment"></span> -00119 <span class="comment">/** </span> -00120 <span class="comment"> * Create a new mmap'ed file out of an existing APR file.</span> -00121 <span class="comment"> * @param newmmap The newly created mmap'ed file.</span> -00122 <span class="comment"> * @param file The file turn into an mmap.</span> -00123 <span class="comment"> * @param offset The offset into the file to start the data pointer at.</span> -00124 <span class="comment"> * @param size The size of the file</span> -00125 <span class="comment"> * @param flag bit-wise or of:</span> -00126 <span class="comment"> * <PRE></span> -00127 <span class="comment"> * APR_MMAP_READ MMap opened for reading</span> -00128 <span class="comment"> * APR_MMAP_WRITE MMap opened for writing</span> -00129 <span class="comment"> * </PRE></span> -00130 <span class="comment"> * @param cntxt The pool to use when creating the mmap.</span> -00131 <span class="comment"> */</span> -00132 APR_DECLARE(<a class="code" href="group__apr__errno.html#ga0">apr_status_t</a>) apr_mmap_create(apr_mmap_t **newmmap, -00133 <a class="code" href="group__apr__file__io.html#ga2">apr_file_t</a> *file, apr_off_t offset, -00134 apr_size_t size, apr_int32_t flag, -00135 <a class="code" href="group__apr__pools.html#ga0">apr_pool_t</a> *cntxt); -00136 <span class="comment"></span> -00137 <span class="comment">/**</span> -00138 <span class="comment"> * Duplicate the specified MMAP.</span> -00139 <span class="comment"> * @param new_mmap The structure to duplicate into. </span> -00140 <span class="comment"> * @param old_mmap The mmap to duplicate.</span> -00141 <span class="comment"> * @param p The pool to use for new_mmap.</span> -00142 <span class="comment"> */</span> -00143 APR_DECLARE(<a class="code" href="group__apr__errno.html#ga0">apr_status_t</a>) apr_mmap_dup(apr_mmap_t **new_mmap, -00144 apr_mmap_t *old_mmap, -00145 <a class="code" href="group__apr__pools.html#ga0">apr_pool_t</a> *p); -00146 <span class="comment"></span> -00147 <span class="comment">/**</span> -00148 <span class="comment"> * Remove a mmap'ed.</span> -00149 <span class="comment"> * @param mm The mmap'ed file.</span> -00150 <span class="comment"> */</span> -00151 APR_DECLARE(<a class="code" href="group__apr__errno.html#ga0">apr_status_t</a>) apr_mmap_delete(apr_mmap_t *mm); -00152 <span class="comment"></span> -00153 <span class="comment">/** </span> -00154 <span class="comment"> * Move the pointer into the mmap'ed file to the specified offset.</span> -00155 <span class="comment"> * @param addr The pointer to the offset specified.</span> -00156 <span class="comment"> * @param mm The mmap'ed file.</span> -00157 <span class="comment"> * @param offset The offset to move to.</span> -00158 <span class="comment"> */</span> -00159 APR_DECLARE(<a class="code" href="group__apr__errno.html#ga0">apr_status_t</a>) apr_mmap_offset(<span class="keywordtype">void</span> **addr, apr_mmap_t *mm, -00160 apr_off_t offset); -00161 -00162 #endif <span class="comment">/* APR_HAS_MMAP */</span> -00163 <span class="comment"></span> -00164 <span class="comment">/** @} */</span> -00165 -00166 #ifdef __cplusplus -00167 } -00168 #endif -00169 -00170 #endif <span class="comment">/* ! APR_MMAP_H */</span> -</div></pre><hr size="1"><address style="align: right;"><small>Generated on Wed Sep 1 21:36:05 2004 for Apache Portable Runtime by +<h1>apr_mmap.h</h1><a href="apr__mmap_8h.html">Go to the documentation of this file.</a><pre class="fragment"><div>00001 <span class="comment">/* Copyright 2000-2005 The Apache Software Foundation or its licensors, as</span> +00002 <span class="comment"> * applicable.</span> +00003 <span class="comment"> *</span> +00004 <span class="comment"> * Licensed under the Apache License, Version 2.0 (the "License");</span> +00005 <span class="comment"> * you may not use this file except in compliance with the License.</span> +00006 <span class="comment"> * You may obtain a copy of the License at</span> +00007 <span class="comment"> *</span> +00008 <span class="comment"> * http://www.apache.org/licenses/LICENSE-2.0</span> +00009 <span class="comment"> *</span> +00010 <span class="comment"> * Unless required by applicable law or agreed to in writing, software</span> +00011 <span class="comment"> * distributed under the License is distributed on an "AS IS" BASIS,</span> +00012 <span class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span> +00013 <span class="comment"> * See the License for the specific language governing permissions and</span> +00014 <span class="comment"> * limitations under the License.</span> +00015 <span class="comment"> */</span> +00016 +00017 <span class="preprocessor">#ifndef APR_MMAP_H</span> +00018 <span class="preprocessor"></span><span class="preprocessor">#define APR_MMAP_H</span> +00019 <span class="preprocessor"></span><span class="comment"></span> +00020 <span class="comment">/**</span> +00021 <span class="comment"> * @file apr_mmap.h</span> +00022 <span class="comment"> * @brief APR MMAP routines</span> +00023 <span class="comment"> */</span> +00024 +00025 <span class="preprocessor">#include "apr.h"</span> +00026 <span class="preprocessor">#include "<a class="code" href="apr__pools_8h.html">apr_pools.h</a>"</span> +00027 <span class="preprocessor">#include "<a class="code" href="apr__errno_8h.html">apr_errno.h</a>"</span> +00028 <span class="preprocessor">#include "<a class="code" href="apr__ring_8h.html">apr_ring.h</a>"</span> +00029 <span class="preprocessor">#include "<a class="code" href="apr__file__io_8h.html">apr_file_io.h</a>"</span> <span class="comment">/* for apr_file_t */</span> +00030 +00031 <span class="preprocessor">#ifdef BEOS</span> +00032 <span class="preprocessor"></span><span class="preprocessor">#include <kernel/OS.h></span> +00033 <span class="preprocessor">#endif</span> +00034 <span class="preprocessor"></span> +00035 <span class="preprocessor">#ifdef __cplusplus</span> +00036 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span> { +00037 <span class="preprocessor">#endif </span><span class="comment">/* __cplusplus */</span> +00038 <span class="comment"></span> +00039 <span class="comment">/**</span> +00040 <span class="comment"> * @defgroup apr_mmap MMAP (Memory Map) Routines</span> +00041 <span class="comment"> * @ingroup APR </span> +00042 <span class="comment"> * @{</span> +00043 <span class="comment"> */</span> +00044 <span class="comment"></span> +00045 <span class="comment">/** MMap opened for reading */</span> +<a name="l00046"></a><a class="code" href="group__apr__mmap.html#ga5">00046</a> <span class="preprocessor">#define APR_MMAP_READ 1</span> +00047 <span class="preprocessor"></span><span class="comment">/** MMap opened for writing */</span> +<a name="l00048"></a><a class="code" href="group__apr__mmap.html#ga6">00048</a> <span class="preprocessor">#define APR_MMAP_WRITE 2</span> +00049 <span class="preprocessor"></span><span class="comment"></span> +00050 <span class="comment">/** @see apr_mmap_t */</span> +<a name="l00051"></a><a class="code" href="group__apr__mmap.html#ga0">00051</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structapr__mmap__t.html">apr_mmap_t</a> <a class="code" href="group__apr__mmap.html#ga0">apr_mmap_t</a>; +00052 <span class="comment"></span> +00053 <span class="comment">/**</span> +00054 <span class="comment"> * @remark</span> +00055 <span class="comment"> * As far as I can tell the only really sane way to store an MMAP is as a</span> +00056 <span class="comment"> * void * and a length. BeOS requires this area_id, but that's just a little</span> +00057 <span class="comment"> * something extra. I am exposing this type, because it doesn't make much</span> +00058 <span class="comment"> * sense to keep it private, and opening it up makes some stuff easier in</span> +00059 <span class="comment"> * Apache.</span> +00060 <span class="comment"> */</span><span class="comment"></span> +00061 <span class="comment">/** The MMAP structure */</span> +<a name="l00062"></a><a class="code" href="structapr__mmap__t.html">00062</a> <span class="keyword">struct </span><a class="code" href="group__apr__mmap.html#ga0">apr_mmap_t</a> {<span class="comment"></span> +00063 <span class="comment"> /** The pool the mmap structure was allocated out of. */</span> +<a name="l00064"></a><a class="code" href="structapr__mmap__t.html#o0">00064</a> <a class="code" href="group__apr__pools.html#ga0">apr_pool_t</a> *<a class="code" href="structapr__mmap__t.html#o0">cntxt</a>; +00065 <span class="preprocessor">#ifdef BEOS</span> +00066 <span class="preprocessor"></span><span class="comment"> /** An area ID. Only valid on BeOS */</span> +00067 area_id area; +00068 <span class="preprocessor">#endif</span> +00069 <span class="preprocessor"></span><span class="preprocessor">#ifdef WIN32</span> +00070 <span class="preprocessor"></span><span class="comment"> /** The handle of the file mapping */</span> +00071 HANDLE mhandle;<span class="comment"></span> +00072 <span class="comment"> /** The start of the real memory page area (mapped view) */</span> +00073 <span class="keywordtype">void</span> *mv;<span class="comment"></span> +00074 <span class="comment"> /** The physical start, size and offset */</span> +00075 apr_off_t pstart; +00076 apr_size_t psize; +00077 apr_off_t poffset; +00078 <span class="preprocessor">#endif</span> +00079 <span class="preprocessor"></span><span class="comment"> /** The start of the memory mapped area */</span> +<a name="l00080"></a><a class="code" href="structapr__mmap__t.html#o1">00080</a> <span class="keywordtype">void</span> *<a class="code" href="structapr__mmap__t.html#o1">mm</a>;<span class="comment"></span> +00081 <span class="comment"> /** The amount of data in the mmap */</span> +<a name="l00082"></a><a class="code" href="structapr__mmap__t.html#o2">00082</a> apr_size_t <a class="code" href="structapr__mmap__t.html#o2">size</a>;<span class="comment"></span> +00083 <span class="comment"> /** ring of apr_mmap_t's that reference the same</span> +00084 <span class="comment"> * mmap'ed region; acts in place of a reference count */</span> +00085 <a class="code" href="group__apr__ring.html#ga0">APR_RING_ENTRY</a>(apr_mmap_t) link; +00086 }; +00087 +00088 #if APR_HAS_MMAP || defined(DOXYGEN) +00089 <span class="comment"></span> +00090 <span class="comment">/** @def APR_MMAP_THRESHOLD </span> +00091 <span class="comment"> * Files have to be at least this big before they're mmap()d. This is to deal</span> +00092 <span class="comment"> * with systems where the expense of doing an mmap() and an munmap() outweighs</span> +00093 <span class="comment"> * the benefit for small files. It shouldn't be set lower than 1.</span> +00094 <span class="comment"> */</span> +00095 #ifdef MMAP_THRESHOLD +00096 # define APR_MMAP_THRESHOLD MMAP_THRESHOLD +00097 #else +00098 # ifdef SUNOS4 +00099 # define APR_MMAP_THRESHOLD (8*1024) +00100 # else +<a name="l00101"></a><a class="code" href="group__apr__mmap.html#ga7">00101</a> # define APR_MMAP_THRESHOLD 1 +00102 # endif <span class="comment">/* SUNOS4 */</span> +00103 #endif <span class="comment">/* MMAP_THRESHOLD */</span> +00104 <span class="comment"></span> +00105 <span class="comment">/** @def APR_MMAP_LIMIT</span> +00106 <span class="comment"> * Maximum size of MMap region</span> +00107 <span class="comment"> */</span> +00108 #ifdef MMAP_LIMIT +00109 # define APR_MMAP_LIMIT MMAP_LIMIT +00110 #else +<a name="l00111"></a><a class="code" href="group__apr__mmap.html#ga8">00111</a> # define APR_MMAP_LIMIT (4*1024*1024) +00112 #endif <span class="comment">/* MMAP_LIMIT */</span> +00113 <span class="comment"></span> +00114 <span class="comment">/** Can this file be MMaped */</span> +<a name="l00115"></a><a class="code" href="group__apr__mmap.html#ga9">00115</a> #define APR_MMAP_CANDIDATE(filelength) \ +00116 ((filelength >= APR_MMAP_THRESHOLD) && (filelength < APR_MMAP_LIMIT)) +00117 +00118 <span class="comment">/* Function definitions */</span> +00119 <span class="comment"></span> +00120 <span class="comment">/** </span> +00121 <span class="comment"> * Create a new mmap'ed file out of an existing APR file.</span> +00122 <span class="comment"> * @param newmmap The newly created mmap'ed file.</span> +00123 <span class="comment"> * @param file The file turn into an mmap.</span> +00124 <span class="comment"> * @param offset The offset into the file to start the data pointer at.</span> +00125 <span class="comment"> * @param size The size of the file</span> +00126 <span class="comment"> * @param flag bit-wise or of:</span> +00127 <span class="comment"> * <PRE></span> +00128 <span class="comment"> * APR_MMAP_READ MMap opened for reading</span> +00129 <span class="comment"> * APR_MMAP_WRITE MMap opened for writing</span> +00130 <span class="comment"> * </PRE></span> +00131 <span class="comment"> * @param cntxt The pool to use when creating the mmap.</span> +00132 <span class="comment"> */</span> +00133 APR_DECLARE(apr_status_t) apr_mmap_create(apr_mmap_t **newmmap, +00134 apr_file_t *file, apr_off_t offset, +00135 apr_size_t size, apr_int32_t flag, +00136 apr_pool_t *cntxt); +00137 <span class="comment"></span> +00138 <span class="comment">/**</span> +00139 <span class="comment"> * Duplicate the specified MMAP.</span> +00140 <span class="comment"> * @param new_mmap The structure to duplicate into. </span> +00141 <span class="comment"> * @param old_mmap The mmap to duplicate.</span> +00142 <span class="comment"> * @param p The pool to use for new_mmap.</span> +00143 <span class="comment"> */</span> +00144 APR_DECLARE(apr_status_t) apr_mmap_dup(apr_mmap_t **new_mmap, +00145 apr_mmap_t *old_mmap, +00146 apr_pool_t *p); +00147 <span class="comment"></span> +00148 <span class="comment">/**</span> +00149 <span class="comment"> * Remove a mmap'ed.</span> +00150 <span class="comment"> * @param mm The mmap'ed file.</span> +00151 <span class="comment"> */</span> +00152 APR_DECLARE(apr_status_t) apr_mmap_delete(apr_mmap_t *mm); +00153 <span class="comment"></span> +00154 <span class="comment">/** </span> +00155 <span class="comment"> * Move the pointer into the mmap'ed file to the specified offset.</span> +00156 <span class="comment"> * @param addr The pointer to the offset specified.</span> +00157 <span class="comment"> * @param mm The mmap'ed file.</span> +00158 <span class="comment"> * @param offset The offset to move to.</span> +00159 <span class="comment"> */</span> +00160 APR_DECLARE(apr_status_t) apr_mmap_offset(<span class="keywordtype">void</span> **addr, apr_mmap_t *mm, +00161 apr_off_t offset); +00162 +00163 #endif <span class="comment">/* APR_HAS_MMAP */</span> +00164 <span class="comment"></span> +00165 <span class="comment">/** @} */</span> +00166 +00167 #ifdef __cplusplus +00168 } +00169 #endif +00170 +00171 #endif <span class="comment">/* ! APR_MMAP_H */</span> +</div></pre><hr size="1"><address style="align: right;"><small>Generated on Mon Feb 7 13:18:25 2005 for Apache Portable Runtime by <a href="http://www.doxygen.org/index.html"> -<img src="doxygen.png" alt="doxygen" align="middle" border=0 ></a> 1.3.8 </small></address> +<img src="doxygen.png" alt="doxygen" align="middle" border=0 ></a> 1.3.7 </small></address> </body> </html> Modified: apr/site/trunk/docs/docs/apr/apr__mmap_8h.html URL: http://svn.apache.org/viewcvs/apr/site/trunk/docs/docs/apr/apr__mmap_8h.html?view=diff&r1=151767&r2=151768 ============================================================================== --- apr/site/trunk/docs/docs/apr/apr__mmap_8h.html (original) +++ apr/site/trunk/docs/docs/apr/apr__mmap_8h.html Mon Feb 7 15:10:17 2005 @@ -3,9 +3,10 @@ <title>Apache Portable Runtime: apr_mmap.h File Reference</title> <link href="doxygen.css" rel="stylesheet" type="text/css"> </head><body> -<!-- Generated by Doxygen 1.3.8 --> +<!-- Generated by Doxygen 1.3.7 --> <div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="annotated.html">Data Structures</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Data Fields</a> | <a class="qindex" href="globals.html">Globals</a> | <a class="qindex" href="pages.html">Related Pages</a></div> -<h1>apr_mmap.h File Reference</h1>APR MMAP routines. <a href="#_details">More...</a> +<h1>apr_mmap.h File Reference</h1>APR MMAP routines. +<a href="#_details">More...</a> <p> <code>#include "apr.h"</code><br> <code>#include "<a class="el" href="apr__pools_8h-source.html">apr_pools.h</a>"</code><br> @@ -46,8 +47,8 @@ <hr><a name="_details"></a><h2>Detailed Description</h2> APR MMAP routines. <p> -<hr size="1"><address style="align: right;"><small>Generated on Wed Sep 1 21:36:05 2004 for Apache Portable Runtime by +<hr size="1"><address style="align: right;"><small>Generated on Mon Feb 7 13:18:25 2005 for Apache Portable Runtime by <a href="http://www.doxygen.org/index.html"> -<img src="doxygen.png" alt="doxygen" align="middle" border=0 ></a> 1.3.8 </small></address> +<img src="doxygen.png" alt="doxygen" align="middle" border=0 ></a> 1.3.7 </small></address> </body> </html>