<?xml version="1.0"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.en.xsl"?>
<!-- $LastChangedRevision$ -->

<!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
 The ASF licenses this file to You under the Apache License, Version 2.0
 (the "License"); you may not use this file except in compliance with
 the License.  You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
-->

<modulesynopsis metafile="mod_socache_dbm.xml.meta">

<name>mod_socache_dbm</name>
<description>DBM based shared object cache provider.</description>
<status>Extension</status>
<sourcefile>mod_socache_dbm.c</sourcefile>
<identifier>socache_dbm_module</identifier>

<summary>
    <p><code>mod_socache_dbm</code> is a shared object cache provider
    which provides for creation and access to a cache backed by a
    DBM database.
    </p>

    <example>
    dbm:/path/to/datafile
    </example>

    <p>If the path is not absolute then it is assumed to be relative to
    the <directive module="core">DefaultRuntimeDir</directive>.</p>

    <p>Details of other shared object cache providers can be found
    <a href="../socache.html">here</a>.
    </p>

</summary>

</modulesynopsis>
