2 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
3 <?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
4 <!-- English Revision : 1394079 -->
5 <!-- French translation : Lucien GENTIS -->
6 <!-- $LastChangedRevision: 2012100601 $ -->
9 Licensed to the Apache Software Foundation (ASF) under one or more
10 contributor license agreements. See the NOTICE file distributed with
11 this work for additional information regarding copyright ownership.
12 The ASF licenses this file to You under the Apache License, Version 2.0
13 (the "License"); you may not use this file except in compliance with
14 the License. You may obtain a copy of the License at
16 http://www.apache.org/licenses/LICENSE-2.0
18 Unless required by applicable law or agreed to in writing, software
19 distributed under the License is distributed on an "AS IS" BASIS,
20 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21 See the License for the specific language governing permissions and
22 limitations under the License.
25 <modulesynopsis metafile="mod_slotmem_shm.xml.meta">
27 <name>mod_slotmem_shm</name>
28 <description>Fournisseur de mémoire partagée basée sur les
30 <status>Extension</status>
31 <sourcefile>mod_slotmem_shm.c</sourcefile>
32 <identifier>slotmem_shm_module</identifier>
35 <p><code>mod_slotmem_shm</code> est un fournisseur de mémoire qui
36 permet la création et l'accès à un segment de mémoire partagée dans
37 lequel les ensembles de données sont organisés en "slots".
40 <p>L'ensemble de la mémoire partagée est effacé à chaque
41 redémarrage, que ce dernier soit graceful ou non. Les données sont
42 stockées et restituées dans/à partir d'un fichier défini par le
43 paramètre <code>name</code> des appels <code>create</code> et
44 <code>attach</code>. Si son chemin absolu n'est pas spécifié, le
45 chemin du fichier sera relatif au chemin défini par la directive
46 <directive module="core">DefaultRuntimeDir</directive>.
49 <p><code>mod_slotmem_shm</code> fournit les fonctions d'API suivantes
54 <dt>apr_status_t doall(ap_slotmem_instance_t *s, ap_slotmem_callback_fn_t *func, void *data, apr_pool_t *pool)</dt>
55 <dd>appelle lecallback pour tous les slots actifs</dd>
57 <dt>apr_status_t create(ap_slotmem_instance_t **new, const char *name, apr_size_t item_size, unsigned int item_num, ap_slotmem_type_t type, apr_pool_t *pool)</dt>
58 <dd>crée un nouveau slot de mémoire dont chaque taille d'item est
59 item_size. <code>name</code> est utilisé pour générer le nom du fichier
60 permettant de stocker/restaurer le contenu de la mémoire partagée,
61 si elle est configurée. Les valeurs possibles sont :
63 <dt><code>"none"</code></dt>
64 <dd><code>Mémoire partagée anonyme et pas de stockage
66 <dt><code>"file-name"</code></dt>
67 <dd><code>[DefaultRuntimeDir]/file-name</code></dd>
68 <dd><code>Absolute file name</code></dd>
69 <dd><code>$absolute-file-name</code></dd>
73 <dt>apr_status_t attach(ap_slotmem_instance_t **new, const char *name, apr_size_t *item_size, unsigned int *item_num, apr_pool_t *pool)</dt>
74 <dd>attache à un slot de mémoire existant. Voir
75 <code>create</code> pour la description du paramètre
76 <code>name</code>.</dd>
78 <dt>apr_status_t dptr(ap_slotmem_instance_t *s, unsigned int item_id, void**mem)</dt>
79 <dd>obtient la mémoire associée à ce slot actif.</dd>
81 <dt>apr_status_t get(ap_slotmem_instance_t *s, unsigned int item_id, unsigned char *dest, apr_size_t dest_len)</dt>
82 <dd>lit la mémoire depuis ce slot et la transfert vers dest</dd>
84 <dt>apr_status_t put(ap_slotmem_instance_t *slot, unsigned int item_id, unsigned char *src, apr_size_t src_len)</dt>
85 <dd>écrit dans ce slot la mémoire en provenance de src</dd>
87 <dt>unsigned int num_slots(ap_slotmem_instance_t *s)</dt>
88 <dd>renvoie le nombre total de slots contenus dans ce segment</dd>
90 <dt>apr_size_t slot_size(ap_slotmem_instance_t *s)</dt>
91 <dd>renvoie la taille totale des données, en octets, contenues
92 dans un slot de ce segment</dd>
94 <dt>apr_status_t grab(ap_slotmem_instance_t *s, unsigned int *item_id);</dt>
95 <dd>alloue le premier slot libre et le marque comme utilisé (n'effectue aucune
96 copie de données)</dd>
98 <dt>apr_status_t fgrab(ap_slotmem_instance_t *s, unsigned int item_id);</dt>
99 <dd>appropriation ou allocation forcée du slot spécifié et marquage comme
100 utilisé (n'effectue aucune copie de données)</dd>
102 <dt>apr_status_t release(ap_slotmem_instance_t *s, unsigned int item_id);</dt>
103 <dd>libère un slot et le marque comme non utilisé (n'effectue aucune
104 copie de données)</dd>