Sophie

Sophie

distrib > Fedora > 14 > x86_64 > by-pkgid > c7b0264b57d337345c3d603e6bc38801 > files > 24

libmcs-devel-0.7.2-3.fc14.i686.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>libmcs: src/libmcs/mcs.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.7.1 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
      <li><a href="globals.html"><span>File&nbsp;Members</span></a></li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<h1>src/libmcs/mcs.h File Reference</h1>  </div>
</div>
<div class="contents">
<code>#include &lt;unistd.h&gt;</code><br/>
<code>#include &lt;stdlib.h&gt;</code><br/>
<code>#include &lt;string.h&gt;</code><br/>
<code>#include &lt;sys/stat.h&gt;</code><br/>
<code>#include &lt;sys/types.h&gt;</code><br/>
<code>#include &lt;dirent.h&gt;</code><br/>
<code>#include &lt;stdio.h&gt;</code><br/>
<code>#include &lt;limits.h&gt;</code><br/>
<code>#include &lt;stdarg.h&gt;</code><br/>
<code>#include &lt;errno.h&gt;</code><br/>
<code>#include &lt;dlfcn.h&gt;</code><br/>
<code>#include &lt;mowgli.h&gt;</code><br/>

<p><a href="mcs_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmcs__backend__t.html">mcs_backend_t</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Contains the vtable and some references for an mcs storage backend.  <a href="structmcs__backend__t.html#_details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmcs__handle__.html">mcs_handle_</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Represents an MCS object handle.  <a href="structmcs__handle__.html#_details">More...</a><br/></td></tr>
<tr><td colspan="2"><h2><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structmcs__handle__.html">mcs_handle_</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="mcs_8h.html#a3112fcad35dffff949401bb73b5011b1">mcs_handle_t</a></td></tr>
<tr><td colspan="2"><h2><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="mcs_8h.html#a034dea971ea62f02037190549e0fb3a6">mcs_response_t</a> { <a class="el" href="mcs_8h.html#a034dea971ea62f02037190549e0fb3a6ac97bb2bb4c1caa9c8a5ad9291280b4f1">MCS_FAIL</a>, 
<a class="el" href="mcs_8h.html#a034dea971ea62f02037190549e0fb3a6a8855716b531fad85a24cf540b595d336">MCS_OK</a>
 }</td></tr>
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="mcs_8h.html#aae470a39aad35aed9bedf87c1304eebe">mcs_init</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialises the mcs library classes and loads the backend plugins.  <a href="#aae470a39aad35aed9bedf87c1304eebe"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="mcs_8h.html#a76aa60fcf1f93d4a32e218c283d8e8b1">mcs_fini</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Releases resources used by the mcs backend plugins.  <a href="#a76aa60fcf1f93d4a32e218c283d8e8b1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="mcs_8h.html#af82669e307e2c6ed3eb5aad8e751b0d9">mcs_version</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Retrieves the version of the mcs implementation.  <a href="#af82669e307e2c6ed3eb5aad8e751b0d9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="mcs_8h.html#ab9df0f30b14a65fa813e0c00759456a3">mcs_handle_class_init</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialises the mowgli.object.class for the mcs.handle object.  <a href="#ab9df0f30b14a65fa813e0c00759456a3"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="mcs_8h.html#a034dea971ea62f02037190549e0fb3a6">mcs_response_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="mcs_8h.html#a588c9f867aa500b04a3640051eef02a2">mcs_backend_register</a> (<a class="el" href="structmcs__backend__t.html">mcs_backend_t</a> *backend)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Registers a custom mcs.backend.  <a href="#a588c9f867aa500b04a3640051eef02a2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="mcs_8h.html#a034dea971ea62f02037190549e0fb3a6">mcs_response_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="mcs_8h.html#addfd15ae59a82180511c0055c5df65c0">mcs_backend_unregister</a> (<a class="el" href="structmcs__backend__t.html">mcs_backend_t</a> *backend)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Unregisters a custom mcs.backend.  <a href="#addfd15ae59a82180511c0055c5df65c0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">mowgli_queue_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="mcs_8h.html#a66d595bd503088ffc4a2fdff4fa1b881">mcs_backend_get_list</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns a mowgli.queue representing the backends list.  <a href="#a66d595bd503088ffc4a2fdff4fa1b881"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="mcs_8h.html#aabfd1f438aae74cde5b49d2ba4235ad0">mcs_backend_select</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Determines the backend that should be used.  <a href="#aabfd1f438aae74cde5b49d2ba4235ad0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmcs__handle__.html">mcs_handle_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="mcs_8h.html#a1043a17a4efaca44fd636f71a6b150b5">mcs_new</a> (char *domain)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="mcs_8h.html#a82ec42a90ca1f2cc1413d1b1bcf0dedb">mcs_destroy</a> (<a class="el" href="structmcs__handle__.html">mcs_handle_t</a> *handle)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Destroys an mcs.handle object.  <a href="#a82ec42a90ca1f2cc1413d1b1bcf0dedb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="mcs_8h.html#a034dea971ea62f02037190549e0fb3a6">mcs_response_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="mcs_8h.html#a96fc90a080739266d507a441c0707e85">mcs_get_string</a> (<a class="el" href="structmcs__handle__.html">mcs_handle_t</a> *handle, const char *section, const char *key, char **value)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Public function to retrieve a string value from a configuration database.  <a href="#a96fc90a080739266d507a441c0707e85"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="mcs_8h.html#a034dea971ea62f02037190549e0fb3a6">mcs_response_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="mcs_8h.html#a0bca5be4c29285e84881469e848afaeb">mcs_get_int</a> (<a class="el" href="structmcs__handle__.html">mcs_handle_t</a> *handle, const char *section, const char *key, int *value)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Public function to retrieve an integer value from a configuration database.  <a href="#a0bca5be4c29285e84881469e848afaeb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="mcs_8h.html#a034dea971ea62f02037190549e0fb3a6">mcs_response_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="mcs_8h.html#a3cbb326512ae05ccc058166916fbffaa">mcs_get_bool</a> (<a class="el" href="structmcs__handle__.html">mcs_handle_t</a> *handle, const char *section, const char *key, int *value)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Public function to retrieve a boolean value from a configuration database.  <a href="#a3cbb326512ae05ccc058166916fbffaa"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="mcs_8h.html#a034dea971ea62f02037190549e0fb3a6">mcs_response_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="mcs_8h.html#adfbaf5a851bd436dd9eb52c14b858010">mcs_get_float</a> (<a class="el" href="structmcs__handle__.html">mcs_handle_t</a> *handle, const char *section, const char *key, float *value)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Public function to retrieve a floating point value from a configuration database.  <a href="#adfbaf5a851bd436dd9eb52c14b858010"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="mcs_8h.html#a034dea971ea62f02037190549e0fb3a6">mcs_response_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="mcs_8h.html#a421c23f342f1e9c1d144307aab2ed7b7">mcs_get_double</a> (<a class="el" href="structmcs__handle__.html">mcs_handle_t</a> *handle, const char *section, const char *key, double *value)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Public function to retrieve a double-precision floating point value from a configuration database.  <a href="#a421c23f342f1e9c1d144307aab2ed7b7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="mcs_8h.html#a034dea971ea62f02037190549e0fb3a6">mcs_response_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="mcs_8h.html#a0169e1ccec3601708d28ad2f5bbd033a">mcs_set_string</a> (<a class="el" href="structmcs__handle__.html">mcs_handle_t</a> *handle, const char *section, const char *key, const char *value)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Public function to set a string value in a configuration database.  <a href="#a0169e1ccec3601708d28ad2f5bbd033a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="mcs_8h.html#a034dea971ea62f02037190549e0fb3a6">mcs_response_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="mcs_8h.html#a62abe8bcbe922bd5f2c4e863237275ad">mcs_set_int</a> (<a class="el" href="structmcs__handle__.html">mcs_handle_t</a> *handle, const char *section, const char *key, int value)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Public function to set an integer value in a configuration database.  <a href="#a62abe8bcbe922bd5f2c4e863237275ad"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="mcs_8h.html#a034dea971ea62f02037190549e0fb3a6">mcs_response_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="mcs_8h.html#a177119ed8430f728520876ba56198a79">mcs_set_bool</a> (<a class="el" href="structmcs__handle__.html">mcs_handle_t</a> *handle, const char *section, const char *key, int value)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Public function to set a boolean value in a configuration database.  <a href="#a177119ed8430f728520876ba56198a79"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="mcs_8h.html#a034dea971ea62f02037190549e0fb3a6">mcs_response_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="mcs_8h.html#a2f3eca820a4b868f7e7db8e410615ba4">mcs_set_float</a> (<a class="el" href="structmcs__handle__.html">mcs_handle_t</a> *handle, const char *section, const char *key, float value)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Public function to set a floating point value in a configuration database.  <a href="#a2f3eca820a4b868f7e7db8e410615ba4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="mcs_8h.html#a034dea971ea62f02037190549e0fb3a6">mcs_response_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="mcs_8h.html#a3e0f14bfad230847f2fa92fa959c5dc3">mcs_set_double</a> (<a class="el" href="structmcs__handle__.html">mcs_handle_t</a> *handle, const char *section, const char *key, double value)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Public function to set a double-precision floating point value in a configuration database.  <a href="#a3e0f14bfad230847f2fa92fa959c5dc3"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="mcs_8h.html#a034dea971ea62f02037190549e0fb3a6">mcs_response_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="mcs_8h.html#adf8fe854d626c784b85d62de707b8ae4">mcs_unset_key</a> (<a class="el" href="structmcs__handle__.html">mcs_handle_t</a> *handle, const char *section, const char *key)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Public function to remove a value from a configuration database.  <a href="#adf8fe854d626c784b85d62de707b8ae4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">mowgli_queue_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="mcs_8h.html#a11491ce037e8579686e0f63e2f1f6369">mcs_get_keys</a> (<a class="el" href="structmcs__handle__.html">mcs_handle_t</a> *handle, const char *section)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Public function to retrieve a mowgli.queue of keys from a configuration database.  <a href="#a11491ce037e8579686e0f63e2f1f6369"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">mowgli_queue_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="mcs_8h.html#a80c0e200787b3b0b6e6ca95676bbc295">mcs_get_sections</a> (<a class="el" href="structmcs__handle__.html">mcs_handle_t</a> *handle)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Public function to retrieve a mowgli.queue of sections from a configuration database.  <a href="#a80c0e200787b3b0b6e6ca95676bbc295"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="mcs_8h.html#a223664cda3164f0bf412626bc810dddc">mcs_load_plugins</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Loads all of the plugins in -DPLUGIN_DIR.  <a href="#a223664cda3164f0bf412626bc810dddc"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="mcs_8h.html#ac37de4154088c765b45617794a5a1ab6">mcs_unload_plugins</a> (mowgli_queue_t *l)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Unloads a given list of plugins.  <a href="#ac37de4154088c765b45617794a5a1ab6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="mcs_8h.html#a9954e2de04f2f48e369eae1f21bd7dc9">mcs_strnlen</a> (const char *str, size_t len)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Determines the length of a string, limited by an arbitrary length.  <a href="#a9954e2de04f2f48e369eae1f21bd7dc9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="mcs_8h.html#ab974df60bd8579e0b5096d0bc0a8ebf6">mcs_strndup</a> (const char *str, size_t len)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Duplicates a string, limited to a specific length.  <a href="#ab974df60bd8579e0b5096d0bc0a8ebf6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="mcs_8h.html#a4302800a4deddc11d69137738f2e9e87">mcs_create_directory</a> (const char *path, mode_t mode)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A utility function which creates a directory.  <a href="#a4302800a4deddc11d69137738f2e9e87"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="mcs_8h.html#a672253e33d633d9abba450aaeabd8577">mcs_strlcat</a> (char *dest, const char *src, size_t count)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Concatenates a string, limited to a maximum buffer size.  <a href="#a672253e33d633d9abba450aaeabd8577"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="mcs_8h.html#a6f7b4ea96275ae8c28723be1d04442ad">mcs_strlcpy</a> (char *dest, const char *src, size_t count)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Copies a string, limited to a maximum buffer size.  <a href="#a6f7b4ea96275ae8c28723be1d04442ad"></a><br/></td></tr>
</table>
<hr/><h2>Typedef Documentation</h2>
<a class="anchor" id="a3112fcad35dffff949401bb73b5011b1"></a><!-- doxytag: member="mcs.h::mcs_handle_t" ref="a3112fcad35dffff949401bb73b5011b1" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structmcs__handle__.html">mcs_handle_</a> <a class="el" href="structmcs__handle__.html">mcs_handle_t</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Friendly name for struct <a class="el" href="structmcs__handle__.html" title="Represents an MCS object handle.">mcs_handle_</a> </p>

</div>
</div>
<hr/><h2>Enumeration Type Documentation</h2>
<a class="anchor" id="a034dea971ea62f02037190549e0fb3a6"></a><!-- doxytag: member="mcs.h::mcs_response_t" ref="a034dea971ea62f02037190549e0fb3a6" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="mcs_8h.html#a034dea971ea62f02037190549e0fb3a6">mcs_response_t</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>mcs_response_t denotes the status of a transaction. </p>
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" id="a034dea971ea62f02037190549e0fb3a6ac97bb2bb4c1caa9c8a5ad9291280b4f1"></a><!-- doxytag: member="MCS_FAIL" ref="a034dea971ea62f02037190549e0fb3a6ac97bb2bb4c1caa9c8a5ad9291280b4f1" args="" -->MCS_FAIL</em>&nbsp;</td><td>
<p>designates transaction failure </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a034dea971ea62f02037190549e0fb3a6a8855716b531fad85a24cf540b595d336"></a><!-- doxytag: member="MCS_OK" ref="a034dea971ea62f02037190549e0fb3a6a8855716b531fad85a24cf540b595d336" args="" -->MCS_OK</em>&nbsp;</td><td>
<p>designates transaction success </p>
</td></tr>
</table>
</dd>
</dl>

</div>
</div>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="a66d595bd503088ffc4a2fdff4fa1b881"></a><!-- doxytag: member="mcs.h::mcs_backend_get_list" ref="a66d595bd503088ffc4a2fdff4fa1b881" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">mowgli_queue_t* mcs_backend_get_list </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns a mowgli.queue representing the backends list. </p>
<p>This is the portable version of using the mcs_backends_lst symbol.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>A mowgli.queue representing the backend list. </dd></dl>

<p>References <a class="el" href="mcs__backends_8c.html#ac780d2ecf83c8558720a7597114f6972">mcs_backends_lst</a>.</p>

<p>Referenced by <a class="el" href="mcs__backends_8c.html#aabfd1f438aae74cde5b49d2ba4235ad0">mcs_backend_select()</a>.</p>

</div>
</div>
<a class="anchor" id="a588c9f867aa500b04a3640051eef02a2"></a><!-- doxytag: member="mcs.h::mcs_backend_register" ref="a588c9f867aa500b04a3640051eef02a2" args="(mcs_backend_t *backend)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="mcs_8h.html#a034dea971ea62f02037190549e0fb3a6">mcs_response_t</a> mcs_backend_register </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmcs__backend__t.html">mcs_backend_t</a> *&nbsp;</td>
          <td class="paramname"> <em>b</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Registers a custom mcs.backend. </p>
<p>This is used to register a named mcs.backend vtable with mcs. This should be unregistered with <a class="el" href="mcs_8h.html#addfd15ae59a82180511c0055c5df65c0" title="Unregisters a custom mcs.backend.">mcs_backend_unregister()</a> when it is no longer needed, such as during an application unload.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>b</em>&nbsp;</td><td>An mcs.backend vtable to register. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>A mcs_response_t code depending on success or failure of the registration. </dd></dl>

<p>References <a class="el" href="mcs__backends_8c.html#ac780d2ecf83c8558720a7597114f6972">mcs_backends_lst</a>.</p>

<p>Referenced by <a class="el" href="mcs__loader_8c.html#a223664cda3164f0bf412626bc810dddc">mcs_load_plugins()</a>.</p>

</div>
</div>
<a class="anchor" id="aabfd1f438aae74cde5b49d2ba4235ad0"></a><!-- doxytag: member="mcs.h::mcs_backend_select" ref="aabfd1f438aae74cde5b49d2ba4235ad0" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* mcs_backend_select </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Determines the backend that should be used. </p>
<p>This function checks the environment variable, MCS_BACKEND first. If that is empty, it checks $HOME/.mcs-backend, followed by /etc/mcs-backend. If no preference is found, it returns "default".</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>The name of the backend that should be used. </dd></dl>

<p>References <a class="el" href="mcs_8h.html#a66d595bd503088ffc4a2fdff4fa1b881">mcs_backend_get_list()</a>, and <a class="el" href="structmcs__backend__t.html#a23cd2d6475a383697db9103e3bf222fc">mcs_backend_t::name</a>.</p>

<p>Referenced by <a class="el" href="mcs__handle__factory_8c.html#a1043a17a4efaca44fd636f71a6b150b5">mcs_new()</a>.</p>

</div>
</div>
<a class="anchor" id="addfd15ae59a82180511c0055c5df65c0"></a><!-- doxytag: member="mcs.h::mcs_backend_unregister" ref="addfd15ae59a82180511c0055c5df65c0" args="(mcs_backend_t *backend)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="mcs_8h.html#a034dea971ea62f02037190549e0fb3a6">mcs_response_t</a> mcs_backend_unregister </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmcs__backend__t.html">mcs_backend_t</a> *&nbsp;</td>
          <td class="paramname"> <em>b</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Unregisters a custom mcs.backend. </p>
<p>This is used to unregister a named mcs.backend vtable with mcs. This should be called when you are no longer interested in using the backend implementation with mcs.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>b</em>&nbsp;</td><td>An mcs.backend vtable to register. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>A mcs_response_t code depending on success or failure of the deregistration. </dd></dl>

<p>References <a class="el" href="mcs__backends_8c.html#ac780d2ecf83c8558720a7597114f6972">mcs_backends_lst</a>.</p>

</div>
</div>
<a class="anchor" id="a4302800a4deddc11d69137738f2e9e87"></a><!-- doxytag: member="mcs.h::mcs_create_directory" ref="a4302800a4deddc11d69137738f2e9e87" args="(const char *path, mode_t mode)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mcs_create_directory </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>path</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">mode_t&nbsp;</td>
          <td class="paramname"> <em>mode</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>A utility function which creates a directory. </p>
<p>This function creates a directory. It recurses to handle any parents which also need to be created.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>path</em>&nbsp;</td><td>The path to create. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>mode</em>&nbsp;</td><td>The mode of the directory that should be created. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 on success, -1 on failure. </dd></dl>

<p>References <a class="el" href="mcs_8h.html#ab974df60bd8579e0b5096d0bc0a8ebf6">mcs_strndup()</a>.</p>

</div>
</div>
<a class="anchor" id="a82ec42a90ca1f2cc1413d1b1bcf0dedb"></a><!-- doxytag: member="mcs.h::mcs_destroy" ref="a82ec42a90ca1f2cc1413d1b1bcf0dedb" args="(mcs_handle_t *handle)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mcs_destroy </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmcs__handle__.html">mcs_handle_t</a> *&nbsp;</td>
          <td class="paramname"> <em>self</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Destroys an mcs.handle object. </p>
<p>This function is considered deprecated since version 0.6. It should not be used in any newly written code. </p>

</div>
</div>
<a class="anchor" id="a76aa60fcf1f93d4a32e218c283d8e8b1"></a><!-- doxytag: member="mcs.h::mcs_fini" ref="a76aa60fcf1f93d4a32e218c283d8e8b1" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mcs_fini </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Releases resources used by the mcs backend plugins. </p>
<p>This function unloads and releases resources used by the mcs backend plugins. </p>

<p>References <a class="el" href="mcs__backends_8c.html#ac780d2ecf83c8558720a7597114f6972">mcs_backends_lst</a>, and <a class="el" href="mcs_8h.html#ac37de4154088c765b45617794a5a1ab6">mcs_unload_plugins()</a>.</p>

</div>
</div>
<a class="anchor" id="a3cbb326512ae05ccc058166916fbffaa"></a><!-- doxytag: member="mcs.h::mcs_get_bool" ref="a3cbb326512ae05ccc058166916fbffaa" args="(mcs_handle_t *handle, const char *section, const char *key, int *value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="mcs_8h.html#a034dea971ea62f02037190549e0fb3a6">mcs_response_t</a> mcs_get_bool </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmcs__handle__.html">mcs_handle_t</a> *&nbsp;</td>
          <td class="paramname"> <em>self</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>section</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&nbsp;</td>
          <td class="paramname"> <em>value</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Public function to retrieve a boolean value from a configuration database. </p>
<p>This function is the public interface for retrieving a boolean value from a configuration database via a configuration backend class.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>self</em>&nbsp;</td><td>The mcs.handle object that represents the configuration database. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>section</em>&nbsp;</td><td>The section to look in. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>The key to look up. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>A memory location to put the value in.</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>A mcs_response_t value representing the success or failure of the transaction. </dd></dl>

</div>
</div>
<a class="anchor" id="a421c23f342f1e9c1d144307aab2ed7b7"></a><!-- doxytag: member="mcs.h::mcs_get_double" ref="a421c23f342f1e9c1d144307aab2ed7b7" args="(mcs_handle_t *handle, const char *section, const char *key, double *value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="mcs_8h.html#a034dea971ea62f02037190549e0fb3a6">mcs_response_t</a> mcs_get_double </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmcs__handle__.html">mcs_handle_t</a> *&nbsp;</td>
          <td class="paramname"> <em>self</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>section</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double *&nbsp;</td>
          <td class="paramname"> <em>value</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Public function to retrieve a double-precision floating point value from a configuration database. </p>
<p>This function is the public interface for retrieving a double value from a configuration database via a configuration backend class.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>self</em>&nbsp;</td><td>The mcs.handle object that represents the configuration database. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>section</em>&nbsp;</td><td>The section to look in. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>The key to look up. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>A memory location to put the value in.</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>A mcs_response_t value representing the success or failure of the transaction. </dd></dl>

</div>
</div>
<a class="anchor" id="adfbaf5a851bd436dd9eb52c14b858010"></a><!-- doxytag: member="mcs.h::mcs_get_float" ref="adfbaf5a851bd436dd9eb52c14b858010" args="(mcs_handle_t *handle, const char *section, const char *key, float *value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="mcs_8h.html#a034dea971ea62f02037190549e0fb3a6">mcs_response_t</a> mcs_get_float </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmcs__handle__.html">mcs_handle_t</a> *&nbsp;</td>
          <td class="paramname"> <em>self</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>section</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float *&nbsp;</td>
          <td class="paramname"> <em>value</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Public function to retrieve a floating point value from a configuration database. </p>
<p>This function is the public interface for retrieving a float value from a configuration database via a configuration backend class.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>self</em>&nbsp;</td><td>The mcs.handle object that represents the configuration database. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>section</em>&nbsp;</td><td>The section to look in. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>The key to look up. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>A memory location to put the value in.</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>A mcs_response_t value representing the success or failure of the transaction. </dd></dl>

</div>
</div>
<a class="anchor" id="a0bca5be4c29285e84881469e848afaeb"></a><!-- doxytag: member="mcs.h::mcs_get_int" ref="a0bca5be4c29285e84881469e848afaeb" args="(mcs_handle_t *handle, const char *section, const char *key, int *value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="mcs_8h.html#a034dea971ea62f02037190549e0fb3a6">mcs_response_t</a> mcs_get_int </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmcs__handle__.html">mcs_handle_t</a> *&nbsp;</td>
          <td class="paramname"> <em>self</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>section</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&nbsp;</td>
          <td class="paramname"> <em>value</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Public function to retrieve an integer value from a configuration database. </p>
<p>This function is the public interface for retrieving an integer value from a configuration database via a configuration backend class.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>self</em>&nbsp;</td><td>The mcs.handle object that represents the configuration database. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>section</em>&nbsp;</td><td>The section to look in. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>The key to look up. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>A memory location to put the value in.</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>A mcs_response_t value representing the success or failure of the transaction. </dd></dl>

</div>
</div>
<a class="anchor" id="a11491ce037e8579686e0f63e2f1f6369"></a><!-- doxytag: member="mcs.h::mcs_get_keys" ref="a11491ce037e8579686e0f63e2f1f6369" args="(mcs_handle_t *handle, const char *section)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">mowgli_queue_t* mcs_get_keys </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmcs__handle__.html">mcs_handle_t</a> *&nbsp;</td>
          <td class="paramname"> <em>self</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>section</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Public function to retrieve a mowgli.queue of keys from a configuration database. </p>
<p>This function is the public interface for retrieving a mowgli.queue of keys from a configuration database via a configuration backend class.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>self</em>&nbsp;</td><td>The mcs.handle object that represents the configuration database. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>section</em>&nbsp;</td><td>The section to search.</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>A mowgli.queue of key names in the requested section. </dd></dl>

</div>
</div>
<a class="anchor" id="a80c0e200787b3b0b6e6ca95676bbc295"></a><!-- doxytag: member="mcs.h::mcs_get_sections" ref="a80c0e200787b3b0b6e6ca95676bbc295" args="(mcs_handle_t *handle)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">mowgli_queue_t* mcs_get_sections </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmcs__handle__.html">mcs_handle_t</a> *&nbsp;</td>
          <td class="paramname"> <em>self</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Public function to retrieve a mowgli.queue of sections from a configuration database. </p>
<p>This function is the public interface for retrieving a mowgli.queue of sections from a configuration database via a configuration backend class.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>self</em>&nbsp;</td><td>The mcs.handle object that represents the configuration database.</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>A mowgli.queue of section names in the requested section. </dd></dl>

</div>
</div>
<a class="anchor" id="a96fc90a080739266d507a441c0707e85"></a><!-- doxytag: member="mcs.h::mcs_get_string" ref="a96fc90a080739266d507a441c0707e85" args="(mcs_handle_t *handle, const char *section, const char *key, char **value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="mcs_8h.html#a034dea971ea62f02037190549e0fb3a6">mcs_response_t</a> mcs_get_string </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmcs__handle__.html">mcs_handle_t</a> *&nbsp;</td>
          <td class="paramname"> <em>self</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>section</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char **&nbsp;</td>
          <td class="paramname"> <em>value</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Public function to retrieve a string value from a configuration database. </p>
<p>This function is the public interface for retrieving a string value from a configuration database via a configuration backend class.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>self</em>&nbsp;</td><td>The mcs.handle object that represents the configuration database. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>section</em>&nbsp;</td><td>The section to look in. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>The key to look up. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>A memory location to put the value in.</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>A mcs_response_t value representing the success or failure of the transaction. </dd></dl>

</div>
</div>
<a class="anchor" id="ab9df0f30b14a65fa813e0c00759456a3"></a><!-- doxytag: member="mcs.h::mcs_handle_class_init" ref="ab9df0f30b14a65fa813e0c00759456a3" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mcs_handle_class_init </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Initialises the mowgli.object.class for the mcs.handle object. </p>

<p>Referenced by <a class="el" href="mcs__init_8c.html#aae470a39aad35aed9bedf87c1304eebe">mcs_init()</a>.</p>

</div>
</div>
<a class="anchor" id="aae470a39aad35aed9bedf87c1304eebe"></a><!-- doxytag: member="mcs.h::mcs_init" ref="aae470a39aad35aed9bedf87c1304eebe" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mcs_init </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Initialises the mcs library classes and loads the backend plugins. </p>
<p><a class="el" href="mcs_8h.html#aae470a39aad35aed9bedf87c1304eebe" title="Initialises the mcs library classes and loads the backend plugins.">mcs_init()</a> initialises mowgli.object, followed by all of the mcs library classes which extend mowgli.object to provide an extensible configuration management system.</p>
<p>Once the library mowgli.object classes have been initialised, the mcs plugin directory is iterated and various backend plugins are loaded. </p>

<p>References <a class="el" href="mcs_8h.html#ab9df0f30b14a65fa813e0c00759456a3">mcs_handle_class_init()</a>, and <a class="el" href="mcs_8h.html#a223664cda3164f0bf412626bc810dddc">mcs_load_plugins()</a>.</p>

</div>
</div>
<a class="anchor" id="a223664cda3164f0bf412626bc810dddc"></a><!-- doxytag: member="mcs.h::mcs_load_plugins" ref="a223664cda3164f0bf412626bc810dddc" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mcs_load_plugins </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Loads all of the plugins in -DPLUGIN_DIR. </p>

<p>References <a class="el" href="structmcs__backend__t.html#a7778f8e9bb1688e9c3cb24bf9a8d6e6d">mcs_backend_t::handle</a>, and <a class="el" href="mcs_8h.html#a588c9f867aa500b04a3640051eef02a2">mcs_backend_register()</a>.</p>

<p>Referenced by <a class="el" href="mcs__init_8c.html#aae470a39aad35aed9bedf87c1304eebe">mcs_init()</a>.</p>

</div>
</div>
<a class="anchor" id="a1043a17a4efaca44fd636f71a6b150b5"></a><!-- doxytag: member="mcs.h::mcs_new" ref="a1043a17a4efaca44fd636f71a6b150b5" args="(char *domain)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structmcs__handle__.html">mcs_handle_t</a>* mcs_new </td>
          <td>(</td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>domain</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>References <a class="el" href="mcs_8h.html#aabfd1f438aae74cde5b49d2ba4235ad0">mcs_backend_select()</a>, <a class="el" href="mcs__backends_8c.html#ac780d2ecf83c8558720a7597114f6972">mcs_backends_lst</a>, <a class="el" href="structmcs__backend__t.html#ae7deb4047755231ce1e213d65b408b6d">mcs_backend_t::mcs_new</a>, and <a class="el" href="structmcs__backend__t.html#a23cd2d6475a383697db9103e3bf222fc">mcs_backend_t::name</a>.</p>

</div>
</div>
<a class="anchor" id="a177119ed8430f728520876ba56198a79"></a><!-- doxytag: member="mcs.h::mcs_set_bool" ref="a177119ed8430f728520876ba56198a79" args="(mcs_handle_t *handle, const char *section, const char *key, int value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="mcs_8h.html#a034dea971ea62f02037190549e0fb3a6">mcs_response_t</a> mcs_set_bool </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmcs__handle__.html">mcs_handle_t</a> *&nbsp;</td>
          <td class="paramname"> <em>self</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>section</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>value</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Public function to set a boolean value in a configuration database. </p>
<p>This function is the public interface for boolean a string value in a configuration database via a configuration backend class.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>self</em>&nbsp;</td><td>The mcs.handle object that represents the configuration database. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>section</em>&nbsp;</td><td>The section to set the value in. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>The key to set. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>The value to set.</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>A mcs_response_t value representing the success or failure of the transaction. </dd></dl>

</div>
</div>
<a class="anchor" id="a3e0f14bfad230847f2fa92fa959c5dc3"></a><!-- doxytag: member="mcs.h::mcs_set_double" ref="a3e0f14bfad230847f2fa92fa959c5dc3" args="(mcs_handle_t *handle, const char *section, const char *key, double value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="mcs_8h.html#a034dea971ea62f02037190549e0fb3a6">mcs_response_t</a> mcs_set_double </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmcs__handle__.html">mcs_handle_t</a> *&nbsp;</td>
          <td class="paramname"> <em>self</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>section</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&nbsp;</td>
          <td class="paramname"> <em>value</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Public function to set a double-precision floating point value in a configuration database. </p>
<p>This function is the public interface for setting a double value in a configuration database via a configuration backend class.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>self</em>&nbsp;</td><td>The mcs.handle object that represents the configuration database. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>section</em>&nbsp;</td><td>The section to set the value in. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>The key to set. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>The value to set.</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>A mcs_response_t value representing the success or failure of the transaction. </dd></dl>

</div>
</div>
<a class="anchor" id="a2f3eca820a4b868f7e7db8e410615ba4"></a><!-- doxytag: member="mcs.h::mcs_set_float" ref="a2f3eca820a4b868f7e7db8e410615ba4" args="(mcs_handle_t *handle, const char *section, const char *key, float value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="mcs_8h.html#a034dea971ea62f02037190549e0fb3a6">mcs_response_t</a> mcs_set_float </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmcs__handle__.html">mcs_handle_t</a> *&nbsp;</td>
          <td class="paramname"> <em>self</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>section</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>value</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Public function to set a floating point value in a configuration database. </p>
<p>This function is the public interface for setting a float value in a configuration database via a configuration backend class.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>self</em>&nbsp;</td><td>The mcs.handle object that represents the configuration database. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>section</em>&nbsp;</td><td>The section to set the value in. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>The key to set. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>The value to set.</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>A mcs_response_t value representing the success or failure of the transaction. </dd></dl>

</div>
</div>
<a class="anchor" id="a62abe8bcbe922bd5f2c4e863237275ad"></a><!-- doxytag: member="mcs.h::mcs_set_int" ref="a62abe8bcbe922bd5f2c4e863237275ad" args="(mcs_handle_t *handle, const char *section, const char *key, int value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="mcs_8h.html#a034dea971ea62f02037190549e0fb3a6">mcs_response_t</a> mcs_set_int </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmcs__handle__.html">mcs_handle_t</a> *&nbsp;</td>
          <td class="paramname"> <em>self</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>section</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>value</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Public function to set an integer value in a configuration database. </p>
<p>This function is the public interface for setting an integer value in a configuration database via a configuration backend class.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>self</em>&nbsp;</td><td>The mcs.handle object that represents the configuration database. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>section</em>&nbsp;</td><td>The section to set the value in. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>The key to set. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>The value to set.</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>A mcs_response_t value representing the success or failure of the transaction. </dd></dl>

</div>
</div>
<a class="anchor" id="a0169e1ccec3601708d28ad2f5bbd033a"></a><!-- doxytag: member="mcs.h::mcs_set_string" ref="a0169e1ccec3601708d28ad2f5bbd033a" args="(mcs_handle_t *handle, const char *section, const char *key, const char *value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="mcs_8h.html#a034dea971ea62f02037190549e0fb3a6">mcs_response_t</a> mcs_set_string </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmcs__handle__.html">mcs_handle_t</a> *&nbsp;</td>
          <td class="paramname"> <em>self</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>section</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>value</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Public function to set a string value in a configuration database. </p>
<p>This function is the public interface for setting a string value in a configuration database via a configuration backend class.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>self</em>&nbsp;</td><td>The mcs.handle object that represents the configuration database. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>section</em>&nbsp;</td><td>The section to set the value in. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>The key to set. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>The value to set.</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>A mcs_response_t value representing the success or failure of the transaction. </dd></dl>

</div>
</div>
<a class="anchor" id="a672253e33d633d9abba450aaeabd8577"></a><!-- doxytag: member="mcs.h::mcs_strlcat" ref="a672253e33d633d9abba450aaeabd8577" args="(char *dest, const char *src, size_t count)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t mcs_strlcat </td>
          <td>(</td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>dest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>count</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Concatenates a string, limited to a maximum buffer size. </p>
<p>This is a function which is useful for safely copying a string.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>dest</em>&nbsp;</td><td>The string to copy to. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>src</em>&nbsp;</td><td>The string to copy from. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>count</em>&nbsp;</td><td>The maximum allowed length of the string. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The length of the new string. </dd></dl>

</div>
</div>
<a class="anchor" id="a6f7b4ea96275ae8c28723be1d04442ad"></a><!-- doxytag: member="mcs.h::mcs_strlcpy" ref="a6f7b4ea96275ae8c28723be1d04442ad" args="(char *dest, const char *src, size_t count)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t mcs_strlcpy </td>
          <td>(</td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>dest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>size</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Copies a string, limited to a maximum buffer size. </p>
<p>This is a function which is useful for safely copying a string.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>dest</em>&nbsp;</td><td>The string to copy to. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>src</em>&nbsp;</td><td>The string to copy from. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>size</em>&nbsp;</td><td>The maximum allowed length of the string. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The length of the new string. </dd></dl>

</div>
</div>
<a class="anchor" id="ab974df60bd8579e0b5096d0bc0a8ebf6"></a><!-- doxytag: member="mcs.h::mcs_strndup" ref="ab974df60bd8579e0b5096d0bc0a8ebf6" args="(const char *str, size_t len)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char* mcs_strndup </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>len</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Duplicates a string, limited to a specific length. </p>
<p>This is a function which duplicates a string limited to a maximum length.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>str</em>&nbsp;</td><td>The string to duplicate. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>len</em>&nbsp;</td><td>The maximum allowed length of the string. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The pointer to a copy of the string. Free this with free(). </dd></dl>

<p>References <a class="el" href="mcs_8h.html#a9954e2de04f2f48e369eae1f21bd7dc9">mcs_strnlen()</a>.</p>

<p>Referenced by <a class="el" href="mcs__util_8c.html#a4302800a4deddc11d69137738f2e9e87">mcs_create_directory()</a>.</p>

</div>
</div>
<a class="anchor" id="a9954e2de04f2f48e369eae1f21bd7dc9"></a><!-- doxytag: member="mcs.h::mcs_strnlen" ref="a9954e2de04f2f48e369eae1f21bd7dc9" args="(const char *str, size_t len)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t mcs_strnlen </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>len</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Determines the length of a string, limited by an arbitrary length. </p>
<p>This is a function which is useful for limiting the length of a string.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>str</em>&nbsp;</td><td>The string to test. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>len</em>&nbsp;</td><td>The maximum allowed length of the string. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The length of the string or len, whichever is smaller. </dd></dl>

<p>Referenced by <a class="el" href="mcs__util_8c.html#ab974df60bd8579e0b5096d0bc0a8ebf6">mcs_strndup()</a>.</p>

</div>
</div>
<a class="anchor" id="ac37de4154088c765b45617794a5a1ab6"></a><!-- doxytag: member="mcs.h::mcs_unload_plugins" ref="ac37de4154088c765b45617794a5a1ab6" args="(mowgli_queue_t *l)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mcs_unload_plugins </td>
          <td>(</td>
          <td class="paramtype">mowgli_queue_t *&nbsp;</td>
          <td class="paramname"> <em>pl</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Unloads a given list of plugins. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>pl</em>&nbsp;</td><td>A mowgli.queue representing a list of plugins to unload. </td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="structmcs__backend__t.html#a7778f8e9bb1688e9c3cb24bf9a8d6e6d">mcs_backend_t::handle</a>.</p>

<p>Referenced by <a class="el" href="mcs__init_8c.html#a76aa60fcf1f93d4a32e218c283d8e8b1">mcs_fini()</a>.</p>

</div>
</div>
<a class="anchor" id="adf8fe854d626c784b85d62de707b8ae4"></a><!-- doxytag: member="mcs.h::mcs_unset_key" ref="adf8fe854d626c784b85d62de707b8ae4" args="(mcs_handle_t *handle, const char *section, const char *key)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="mcs_8h.html#a034dea971ea62f02037190549e0fb3a6">mcs_response_t</a> mcs_unset_key </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmcs__handle__.html">mcs_handle_t</a> *&nbsp;</td>
          <td class="paramname"> <em>self</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>section</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>key</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Public function to remove a value from a configuration database. </p>
<p>This function is the public interface for removing a value from a configuration database via a configuration backend class.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>self</em>&nbsp;</td><td>The mcs.handle object that represents the configuration database. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>section</em>&nbsp;</td><td>The section to unset the value in. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>The key to unset.</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>A mcs_response_t value representing the success or failure of the transaction. </dd></dl>

</div>
</div>
<a class="anchor" id="af82669e307e2c6ed3eb5aad8e751b0d9"></a><!-- doxytag: member="mcs.h::mcs_version" ref="af82669e307e2c6ed3eb5aad8e751b0d9" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char* mcs_version </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Retrieves the version of the mcs implementation. </p>
<p>This function is useful for displaying the version of the system implementation.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>A dynamically allocated string containing the mcs implementation. This should be used with free(). </dd></dl>

<p>References <a class="el" href="mcs__config_8h.html#a1c0439e4355794c09b64274849eb0279">PACKAGE_NAME</a>, and <a class="el" href="mcs__config_8h.html#aa326a05d5e30f9e9a4bb0b4469d5d0c0">PACKAGE_VERSION</a>.</p>

</div>
</div>
</div>
<hr class="footer"/><address class="footer"><small>Generated on Thu Jan 20 2011 for libmcs by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
</body>
</html>