Moved apache code into a folder to help prepare for packaging where we dont want...
[httpd-crcsyncproxy.git] / apache / docs / manual / mod / mod_slotmem.xml
blob2bf673cb123f5e524a991f1637aad8e7e6ec4a32
1 <?xml version="1.0"?>
2 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
3 <?xml-stylesheet type="text/xsl" href="../style/manual.en.xsl"?>
4 <!-- $LastChangedRevision: 559006 $ -->
6 <!--
7  Licensed to the Apache Software Foundation (ASF) under one or more
8  contributor license agreements.  See the NOTICE file distributed with
9  this work for additional information regarding copyright ownership.
10  The ASF licenses this file to You under the Apache License, Version 2.0
11  (the "License"); you may not use this file except in compliance with
12  the License.  You may obtain a copy of the License at
14      http://www.apache.org/licenses/LICENSE-2.0
16  Unless required by applicable law or agreed to in writing, software
17  distributed under the License is distributed on an "AS IS" BASIS,
18  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19  See the License for the specific language governing permissions and
20  limitations under the License.
21 -->
23 <modulesynopsis metafile="mod_slotmem.xml.meta">
25 <name>mod_slotmem</name>
26 <description>Slot-based memory implementation API.</description>
27 <status>Extension</status>
28 <sourcefile>mod_slotmem.c</sourcefile>
29 <identifier>slotmem_module</identifier>
31 <summary>
32     <p><code>mod_slotmem</code> provides an interface to a
33     memory allocation implementation which is based on the
34     concept of datasets being in various "slots" within
35     a larger memory segment. As such, it is similar in
36     concept to a generic table or array. The real use of
37     the module is as a front-end to various providers
38     (such as <module>mod_sharedmem</module>) which deal
39     with the actual implementations. This allows modules
40     to use a single API for memory usage, to matter what
41     the underlying implementation is.
42     </p>
44     <p><code>mod_slotmem</code> provides the following
45     API functions:
46     </p>
48     <dl>
49       <dt>ap_slotmem_storage_method *ap_slotmem_method(const char *provider)</dt>
50       <dd>obtain the provider method desired</dd>
52       <dt>apr_status_t ap_slotmem_do(ap_slotmem_storage_method *sm, ap_slotmem_t *s, ap_slotmem_callback_fn_t *func, void *data, apr_pool_t *pool)</dt>
53       <dd>call the callback on all worker slots</dd>
55       <dt>apr_status_t ap_slotmem_create(ap_slotmem_storage_method *sm, ap_slotmem_t **new, const char *name, apr_size_t item_size, int item_num, apr_pool_t *pool)</dt>
56       <dd>create a new slotmem with each item size is item_size.</dd>
58       <dt>apr_status_t ap_slotmem_attach(ap_slotmem_storage_method *sm, ap_slotmem_t **new, const char *name, apr_size_t *item_size, int *item_num, apr_pool_t *pool)</dt>
59       <dd>attach to an existing slotmem.</dd>
61       <dt>apr_status_t ap_slotmem_mem(ap_slotmem_storage_method *sm, ap_slotmem_t *s, int item_id, void**mem)</dt>
62       <dd>get the memory associated with this worker slot.</dd>
64       <dt>apr_status_t ap_slotmem_lock(ap_slotmem_storage_method *sm, ap_slotmem_t *s)</dt>
65       <dd>lock the memory segment</dd>
67       <dt>(apr_status_t ap_slotmem_unlock(ap_slotmem_storage_method *sm, ap_slotmem_t *s)</dt>
68       <dd>unlock the memory segment</dd>
69     </dl>
71 </summary>
73 </modulesynopsis>