2 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
3 <?xml-stylesheet type="text/xsl" href="../style/manual.en.xsl"?>
4 <!-- $LastChangedRevision: 559006 $ -->
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.
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>
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.
44 <p><code>mod_slotmem</code> provides the following
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>