Sophie

Sophie

distrib > Fedora > 14 > x86_64 > media > updates > by-pkgid > 1981b34f021c1f7237fce57ba36850a9 > files > 29

libini_config-devel-0.6.2-5.fc14.x86_64.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>libini_config: ini_config.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body onload='searchBox.OnSelectItem(0);'>
<!-- Generated by Doxygen 1.7.4 -->
<script type="text/javascript"><!--
var searchBox = new SearchBox("searchBox", "search",false,'Search');
--></script>
<div id="top">
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">libini_config&#160;<span id="projectnumber">0.1.3</span></div>
  </td>
 </tr>
 </tbody>
</table>
</div>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <li id="searchli">
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
    </ul>
  </div>
<div class="header">
  <div class="headertitle">
<div class="title">ini_config.h</div>  </div>
</div>
<div class="contents">
<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
<a name="l00002"></a>00002 <span class="comment">    INI LIBRARY</span>
<a name="l00003"></a>00003 <span class="comment"></span>
<a name="l00004"></a>00004 <span class="comment">    Header file for reading configuration from INI file</span>
<a name="l00005"></a>00005 <span class="comment">    and storing as a collection.</span>
<a name="l00006"></a>00006 <span class="comment"></span>
<a name="l00007"></a>00007 <span class="comment">    Copyright (C) Dmitri Pal &lt;dpal@redhat.com&gt; 2009</span>
<a name="l00008"></a>00008 <span class="comment"></span>
<a name="l00009"></a>00009 <span class="comment">    INI Library is free software: you can redistribute it and/or modify</span>
<a name="l00010"></a>00010 <span class="comment">    it under the terms of the GNU Lesser General Public License as published by</span>
<a name="l00011"></a>00011 <span class="comment">    the Free Software Foundation, either version 3 of the License, or</span>
<a name="l00012"></a>00012 <span class="comment">    (at your option) any later version.</span>
<a name="l00013"></a>00013 <span class="comment"></span>
<a name="l00014"></a>00014 <span class="comment">    INI Library is distributed in the hope that it will be useful,</span>
<a name="l00015"></a>00015 <span class="comment">    but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
<a name="l00016"></a>00016 <span class="comment">    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</span>
<a name="l00017"></a>00017 <span class="comment">    GNU Lesser General Public License for more details.</span>
<a name="l00018"></a>00018 <span class="comment"></span>
<a name="l00019"></a>00019 <span class="comment">    You should have received a copy of the GNU Lesser General Public License</span>
<a name="l00020"></a>00020 <span class="comment">    along with INI Library.  If not, see &lt;http://www.gnu.org/licenses/&gt;.</span>
<a name="l00021"></a>00021 <span class="comment">*/</span>
<a name="l00022"></a>00022 
<a name="l00023"></a>00023 <span class="preprocessor">#ifndef INI_CONFIG_H</span>
<a name="l00024"></a>00024 <span class="preprocessor"></span><span class="preprocessor">#define INI_CONFIG_H</span>
<a name="l00025"></a>00025 <span class="preprocessor"></span>
<a name="l00026"></a>00026 <span class="preprocessor">#include &lt;sys/types.h&gt;</span>
<a name="l00027"></a>00027 <span class="preprocessor">#include &lt;sys/stat.h&gt;</span>
<a name="l00028"></a>00028 <span class="preprocessor">#include &lt;unistd.h&gt;</span>
<a name="l00029"></a>00029 <span class="preprocessor">#include &lt;limits.h&gt;</span>
<a name="l00030"></a>00030 <span class="preprocessor">#include &lt;stdio.h&gt;</span>
<a name="l00031"></a>00031 <span class="preprocessor">#include &quot;collection.h&quot;</span>
<a name="l00032"></a>00032 
<a name="l00128"></a><a class="code" href="group__constants.html#ga82df203362d6deeba571445346ee7088">00128</a> <span class="preprocessor">#define INI_DEFAULT_SECTION &quot;default&quot;</span>
<a name="l00129"></a>00129 <span class="preprocessor"></span>
<a name="l00153"></a><a class="code" href="group__classes.html#gabd138cc6ff1e4d26e79ac0abcd3bc07e">00153</a> <span class="preprocessor">#define COL_CLASS_INI_BASE        20000</span>
<a name="l00154"></a>00154 <span class="preprocessor"></span>
<a name="l00165"></a><a class="code" href="group__classes.html#gacddc82e7b275c985ad096d3ea4a1a58c">00165</a> <span class="preprocessor">#define COL_CLASS_INI_CONFIG      COL_CLASS_INI_BASE + 0</span>
<a name="l00166"></a>00166 <span class="preprocessor"></span>
<a name="l00170"></a><a class="code" href="group__classes.html#ga917c0513b830e36bf0e67bf7d53b3e58">00170</a> <span class="preprocessor">#define COL_CLASS_INI_SECTION     COL_CLASS_INI_BASE + 1</span>
<a name="l00171"></a>00171 <span class="preprocessor"></span>
<a name="l00176"></a><a class="code" href="group__classes.html#ga56b2644aded9222df8821e20a2c2b5be">00176</a> <span class="preprocessor">#define COL_CLASS_INI_PERROR      COL_CLASS_INI_BASE + 2</span>
<a name="l00177"></a>00177 <span class="preprocessor"></span>
<a name="l00185"></a><a class="code" href="group__classes.html#ga15fcb4da08c45469d2abaf2f4acf29e3">00185</a> <span class="preprocessor">#define COL_CLASS_INI_PESET       COL_CLASS_INI_BASE + 3</span>
<a name="l00186"></a>00186 <span class="preprocessor"></span>
<a name="l00192"></a><a class="code" href="group__classes.html#ga5602b69d335fe4c1c3abd513187a599b">00192</a> <span class="preprocessor">#define COL_CLASS_INI_META        COL_CLASS_INI_BASE + 4</span>
<a name="l00193"></a>00193 <span class="preprocessor"></span>
<a name="l00206"></a><a class="code" href="group__errorlevel.html#gade53a6f6a897f85e5a215d57955829c0">00206</a> <span class="preprocessor">#define INI_STOP_ON_ANY     0</span>
<a name="l00207"></a>00207 <span class="preprocessor"></span>
<a name="l00208"></a><a class="code" href="group__errorlevel.html#gac82a06fa31d96aa858a83fa3a49896df">00208</a> <span class="preprocessor">#define INI_STOP_ON_NONE    1</span>
<a name="l00209"></a>00209 <span class="preprocessor"></span>
<a name="l00210"></a><a class="code" href="group__errorlevel.html#gab978be3b49b73a3be77e8dc6463f32a9">00210</a> <span class="preprocessor">#define INI_STOP_ON_ERROR   2</span>
<a name="l00211"></a>00211 <span class="preprocessor"></span>
<a name="l00222"></a><a class="code" href="group__parseerr.html#gad08762428b78249ba1435eca7f87e54e">00222</a> <span class="preprocessor">#define ERR_LONGDATA        1</span>
<a name="l00223"></a>00223 <span class="preprocessor"></span>
<a name="l00224"></a><a class="code" href="group__parseerr.html#ga727cc198244f27a8084b44d2cb31d043">00224</a> <span class="preprocessor">#define ERR_NOCLOSESEC      2</span>
<a name="l00225"></a>00225 <span class="preprocessor"></span>
<a name="l00226"></a><a class="code" href="group__parseerr.html#gab2a1165b81d7fa55022dbf3572c7ec6a">00226</a> <span class="preprocessor">#define ERR_NOSECTION       3</span>
<a name="l00227"></a>00227 <span class="preprocessor"></span>
<a name="l00228"></a><a class="code" href="group__parseerr.html#gaa5a6cacc3e1f04fa88edd9561bbd2688">00228</a> <span class="preprocessor">#define ERR_SECTIONLONG     4</span>
<a name="l00229"></a>00229 <span class="preprocessor"></span>
<a name="l00230"></a><a class="code" href="group__parseerr.html#gafaf01250704e2f82669dd9005d6d1f4a">00230</a> <span class="preprocessor">#define ERR_NOEQUAL         5</span>
<a name="l00231"></a>00231 <span class="preprocessor"></span>
<a name="l00232"></a><a class="code" href="group__parseerr.html#ga383490be859b1f7d2a5efbacaa8134e0">00232</a> <span class="preprocessor">#define ERR_NOKEY           6</span>
<a name="l00233"></a>00233 <span class="preprocessor"></span>
<a name="l00234"></a><a class="code" href="group__parseerr.html#gabef9bb0408a2257fb6468ee2468f1276">00234</a> <span class="preprocessor">#define ERR_LONGKEY         7</span>
<a name="l00235"></a>00235 <span class="preprocessor"></span>
<a name="l00237"></a><a class="code" href="group__parseerr.html#ga1cd39b4507aa85cf3ee5b1cf48b52c57">00237</a> <span class="preprocessor">#define ERR_MAXPARSE        ERR_LONGKEY</span>
<a name="l00238"></a>00238 <span class="preprocessor"></span>
<a name="l00250"></a>00250 <span class="preprocessor">#define ERR_MAXGRAMMAR      0</span>
<a name="l00251"></a>00251 <span class="preprocessor"></span>
<a name="l00262"></a>00262 <span class="preprocessor">#define ERR_MAXVALID        0</span>
<a name="l00263"></a>00263 <span class="preprocessor"></span>
<a name="l00264"></a>00264 
<a name="l00282"></a><a class="code" href="group__accesscheck.html#ga128221969ceea76cbecdacd10547e319">00282</a> <span class="preprocessor">#define INI_ACCESS_CHECK_MODE   0x00000001</span>
<a name="l00283"></a>00283 <span class="preprocessor"></span>
<a name="l00290"></a><a class="code" href="group__accesscheck.html#ga3cbae47c94e58e36f46fac24e0327c51">00290</a> <span class="preprocessor">#define INI_ACCESS_CHECK_UID   0x00000002</span>
<a name="l00291"></a>00291 <span class="preprocessor"></span>
<a name="l00298"></a><a class="code" href="group__accesscheck.html#ga526d0fcda16319e52085e4df8c4dd8bb">00298</a> <span class="preprocessor">#define INI_ACCESS_CHECK_GID   0x00000004</span>
<a name="l00299"></a>00299 <span class="preprocessor"></span>
<a name="l00317"></a><a class="code" href="structparse__error.html">00317</a> <span class="keyword">struct </span><a class="code" href="structparse__error.html" title="Structure that holds error number and line number for the encountered error.">parse_error</a> {
<a name="l00318"></a>00318     <span class="keywordtype">unsigned</span> line;
<a name="l00319"></a>00319     <span class="keywordtype">int</span> error;
<a name="l00320"></a>00320 };
<a name="l00321"></a>00321 
<a name="l00322"></a>00322 
<a name="l00377"></a><a class="code" href="group__metadata.html#gab518ae5583f534716d1af10a48481a16">00377</a> <span class="preprocessor">#define INI_META_ACTION_NOPARSE     0x10000000</span>
<a name="l00378"></a>00378 <span class="preprocessor"></span>
<a name="l00389"></a><a class="code" href="group__metasection.html#ga0eb71641d63bfcf7f04e1ffe55887a62">00389</a> <span class="preprocessor">#define INI_META_SEC_ACCESS     &quot;ACCESS&quot;</span>
<a name="l00390"></a>00390 <span class="preprocessor"></span>
<a name="l00395"></a><a class="code" href="group__metasection.html#ga29c8583cb07bd3791ac78c3ba51aca76">00395</a> <span class="preprocessor">#define INI_META_SEC_ACCESS_FLAG     0x00000001</span>
<a name="l00396"></a>00396 <span class="preprocessor"></span>
<a name="l00397"></a>00397 
<a name="l00409"></a><a class="code" href="group__metaaccesskeys.html#gac4baa6b51b58688086527154f00d5d58">00409</a> <span class="preprocessor">#define INI_META_KEY_UID     &quot;uid&quot;</span>
<a name="l00410"></a>00410 <span class="preprocessor"></span>
<a name="l00415"></a><a class="code" href="group__metaaccesskeys.html#ga94001e4eeb3d449be6f60d1a1808a2a0">00415</a> <span class="preprocessor">#define INI_META_KEY_GID     &quot;gid&quot;</span>
<a name="l00416"></a>00416 <span class="preprocessor"></span>
<a name="l00421"></a><a class="code" href="group__metaaccesskeys.html#ga47252f11e2dc0c99ea5ea87956e4c633">00421</a> <span class="preprocessor">#define INI_META_KEY_PERM     &quot;perm&quot;</span>
<a name="l00422"></a>00422 <span class="preprocessor"></span>
<a name="l00427"></a><a class="code" href="group__metaaccesskeys.html#ga3e3101db4e6644debe51d694110d03b7">00427</a> <span class="preprocessor">#define INI_META_KEY_DEV     &quot;dev&quot;</span>
<a name="l00428"></a>00428 <span class="preprocessor"></span>
<a name="l00433"></a><a class="code" href="group__metaaccesskeys.html#ga158059b3786cfae1a5eab83174ab3633">00433</a> <span class="preprocessor">#define INI_META_KEY_INODE     &quot;inode&quot;</span>
<a name="l00434"></a>00434 <span class="preprocessor"></span>
<a name="l00439"></a><a class="code" href="group__metaaccesskeys.html#ga555c5473e160f09f2139ac14e51bb0b8">00439</a> <span class="preprocessor">#define INI_META_KEY_MODIFIED     &quot;modified&quot;</span>
<a name="l00440"></a>00440 <span class="preprocessor"></span>
<a name="l00445"></a><a class="code" href="group__metaaccesskeys.html#ga956470500917d229f8755ee0c40e1fdb">00445</a> <span class="preprocessor">#define INI_META_KEY_NAME     &quot;name&quot;</span>
<a name="l00446"></a>00446 <span class="preprocessor"></span>
<a name="l00454"></a><a class="code" href="group__metasection.html#gac3099eff7858b6404f8da7064194b6a3">00454</a> <span class="preprocessor">#define INI_META_SEC_ERROR     &quot;ERROR&quot;</span>
<a name="l00455"></a>00455 <span class="preprocessor"></span>
<a name="l00460"></a><a class="code" href="group__metasection.html#gab6cb4cbfabfd05d3e4ad89c5459fca35">00460</a> <span class="preprocessor">#define INI_META_SEC_ERROR_FLAG     0x00000002</span>
<a name="l00461"></a>00461 <span class="preprocessor"></span>
<a name="l00462"></a>00462 
<a name="l00476"></a><a class="code" href="group__metaerrorkeys.html#ga318d98375f0b5730821686b818d63456">00476</a> <span class="preprocessor">#define INI_META_KEY_READ_ERROR     &quot;read_error&quot;</span>
<a name="l00477"></a>00477 <span class="preprocessor"></span>
<a name="l00478"></a>00478 
<a name="l00503"></a>00503 <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="group__functions.html#ga159fe77c7ea83c613c0a062d57f047c8" title="Function to return a parsing error as a string.">parsing_error_str</a>(<span class="keywordtype">int</span> parsing_error);
<a name="l00504"></a>00504 
<a name="l00505"></a>00505 
<a name="l00531"></a>00531 <span class="keywordtype">int</span> <a class="code" href="group__functions.html#gaad1a6dd24dfbdc8d39e8deb10b72530d" title="Read configuration information from a file.">config_from_file</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *application,
<a name="l00532"></a>00532                      <span class="keyword">const</span> <span class="keywordtype">char</span> *config_filename,
<a name="l00533"></a>00533                      <span class="keyword">struct</span> collection_item **ini_config,
<a name="l00534"></a>00534                      <span class="keywordtype">int</span> error_level,
<a name="l00535"></a>00535                      <span class="keyword">struct</span> collection_item **error_list);
<a name="l00536"></a>00536 
<a name="l00563"></a>00563 <span class="keywordtype">int</span> <a class="code" href="group__functions.html#ga7545be0dd3de836cdb15b40cd0ac2a8b" title="Read configuration information from a file descriptor.">config_from_fd</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *application,
<a name="l00564"></a>00564                    <span class="keywordtype">int</span> fd,
<a name="l00565"></a>00565                    <span class="keyword">const</span> <span class="keywordtype">char</span> *config_source,
<a name="l00566"></a>00566                    <span class="keyword">struct</span> collection_item **ini_config,
<a name="l00567"></a>00567                    <span class="keywordtype">int</span> error_level,
<a name="l00568"></a>00568                    <span class="keyword">struct</span> collection_item **error_list);
<a name="l00569"></a>00569 
<a name="l00570"></a>00570 
<a name="l00571"></a>00571 
<a name="l00616"></a>00616 <span class="keywordtype">int</span> <a class="code" href="group__functions.html#ga7a560eb8fcdc050c82d41981d45e4db7" title="Read configuration information from a file with additional meta data.">config_from_file_with_metadata</a>(
<a name="l00617"></a>00617                      <span class="keyword">const</span> <span class="keywordtype">char</span> *application,
<a name="l00618"></a>00618                      <span class="keyword">const</span> <span class="keywordtype">char</span> *config_filename,
<a name="l00619"></a>00619                      <span class="keyword">struct</span> collection_item **ini_config,
<a name="l00620"></a>00620                      <span class="keywordtype">int</span> error_level,
<a name="l00621"></a>00621                      <span class="keyword">struct</span> collection_item **error_list,
<a name="l00622"></a>00622                      uint32_t metaflags,
<a name="l00623"></a>00623                      <span class="keyword">struct</span> collection_item **metadata);
<a name="l00624"></a>00624 
<a name="l00625"></a>00625 
<a name="l00670"></a>00670 <span class="keywordtype">int</span> <a class="code" href="group__functions.html#gabdc86bc7995ff6b3e4b1c0938afea582" title="Read configuration information from a file descriptor with additional meta data.">config_from_fd_with_metadata</a>(
<a name="l00671"></a>00671                    <span class="keyword">const</span> <span class="keywordtype">char</span> *application,
<a name="l00672"></a>00672                    <span class="keywordtype">int</span> fd,
<a name="l00673"></a>00673                    <span class="keyword">const</span> <span class="keywordtype">char</span> *config_source,
<a name="l00674"></a>00674                    <span class="keyword">struct</span> collection_item **ini_config,
<a name="l00675"></a>00675                    <span class="keywordtype">int</span> error_level,
<a name="l00676"></a>00676                    <span class="keyword">struct</span> collection_item **error_list,
<a name="l00677"></a>00677                    uint32_t metaflags,
<a name="l00678"></a>00678                    <span class="keyword">struct</span> collection_item **metadata);
<a name="l00679"></a>00679 
<a name="l00680"></a>00680 
<a name="l00709"></a>00709 <span class="keywordtype">int</span> <a class="code" href="group__functions.html#ga51ca9d58f8a9d17da33aeebb6286db26" title="Read default configuration file and then overwrite it with a specific one from the directory...">config_for_app</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *application,
<a name="l00710"></a>00710                    <span class="keyword">const</span> <span class="keywordtype">char</span> *config_file,
<a name="l00711"></a>00711                    <span class="keyword">const</span> <span class="keywordtype">char</span> *config_dir,
<a name="l00712"></a>00712                    <span class="keyword">struct</span> collection_item **ini_config,
<a name="l00713"></a>00713                    <span class="keywordtype">int</span> error_level,
<a name="l00714"></a>00714                    <span class="keyword">struct</span> collection_item **error_set);
<a name="l00715"></a>00715 
<a name="l00765"></a>00765 <span class="keywordtype">int</span> <a class="code" href="group__functions.html#gad436b9a8d99658366c24edbed39a3cac" title="Read default configuration file and then overwrite it with a specific one from the directory...">config_for_app_with_metadata</a>(
<a name="l00766"></a>00766                    <span class="keyword">const</span> <span class="keywordtype">char</span> *application,
<a name="l00767"></a>00767                    <span class="keyword">const</span> <span class="keywordtype">char</span> *config_file,
<a name="l00768"></a>00768                    <span class="keyword">const</span> <span class="keywordtype">char</span> *config_dir,
<a name="l00769"></a>00769                    <span class="keyword">struct</span> collection_item **ini_config,
<a name="l00770"></a>00770                    <span class="keywordtype">int</span> error_level,
<a name="l00771"></a>00771                    <span class="keyword">struct</span> collection_item **error_set,
<a name="l00772"></a>00772                    uint32_t metaflags,
<a name="l00773"></a>00773                    <span class="keyword">struct</span> collection_item **meta_default,
<a name="l00774"></a>00774                    <span class="keyword">struct</span> collection_item **meta_appini);
<a name="l00775"></a>00775 
<a name="l00776"></a>00776 
<a name="l00807"></a>00807 <span class="keywordtype">int</span> <a class="code" href="group__functions.html#ga31b1d4554078eff5d9f565e29d219072" title="Function to check ownership and permissions.">config_access_check</a>(<span class="keyword">struct</span> collection_item *metadata,
<a name="l00808"></a>00808                         uint32_t flags,
<a name="l00809"></a>00809                         uid_t uid,
<a name="l00810"></a>00810                         gid_t gid,
<a name="l00811"></a>00811                         mode_t mode,
<a name="l00812"></a>00812                         mode_t mask);
<a name="l00813"></a>00813 
<a name="l00814"></a>00814 
<a name="l00841"></a>00841 <span class="keywordtype">int</span> <a class="code" href="group__functions.html#gab22ddd7dac44a4a587b11f833e76ff96" title="Function compares two meta data objects.">config_changed</a>(<span class="keyword">struct</span> collection_item *metadata,
<a name="l00842"></a>00842                    <span class="keyword">struct</span> collection_item *saved_metadata,
<a name="l00843"></a>00843                    <span class="keywordtype">int</span> *changed);
<a name="l00844"></a>00844 
<a name="l00851"></a>00851 <span class="keywordtype">void</span> <a class="code" href="group__functions.html#gae753228dbcbd8754e1dd20c3baf36e3b" title="Function to free configuration object.">free_ini_config</a>(<span class="keyword">struct</span> collection_item *ini_config);
<a name="l00852"></a>00852 
<a name="l00859"></a>00859 <span class="keywordtype">void</span> <a class="code" href="group__functions.html#ga6703e6ce5fd737469dbc57b81613f0df" title="Function to free configuration errors.">free_ini_config_errors</a>(<span class="keyword">struct</span> collection_item *error_set);
<a name="l00860"></a>00860 
<a name="l00861"></a>00861 
<a name="l00868"></a>00868 <span class="keywordtype">void</span> <a class="code" href="group__functions.html#gaff6697aae49e22c1503956deabbe496f" title="Function to free metadata.">free_ini_config_metadata</a>(<span class="keyword">struct</span> collection_item *metadata);
<a name="l00869"></a>00869 
<a name="l00870"></a>00870 
<a name="l00878"></a>00878 <span class="keywordtype">void</span> <a class="code" href="group__functions.html#gae5f325f643a7cc82723573702dbcf985" title="Print errors and warnings that were detected while parsing one file.">print_file_parsing_errors</a>(FILE *file,
<a name="l00879"></a>00879                                <span class="keyword">struct</span> collection_item *error_list);
<a name="l00880"></a>00880 
<a name="l00881"></a>00881 
<a name="l00892"></a>00892 <span class="keywordtype">void</span> <a class="code" href="group__functions.html#gae05f93ea81e47ceb2411e625510cde5c" title="Print errors and warnings that were detected parsing configuration as a whole.">print_config_parsing_errors</a>(FILE *file,
<a name="l00893"></a>00893                                  <span class="keyword">struct</span> collection_item *error_set);
<a name="l00894"></a>00894 
<a name="l00915"></a>00915 <span class="keywordtype">char</span> **<a class="code" href="group__functions.html#ga10d73b1dea58a9d55cb5fed3962b54a1" title="Get list of sections.">get_section_list</a>(<span class="keyword">struct</span> collection_item *ini_config,
<a name="l00916"></a>00916                         <span class="keywordtype">int</span> *size,
<a name="l00917"></a>00917                         <span class="keywordtype">int</span> *error);
<a name="l00918"></a>00918 
<a name="l00928"></a>00928 <span class="keywordtype">void</span> <a class="code" href="group__functions.html#gaec6c4b9374170724dfb6dbdcd02a9fff" title="Free list of sections.">free_section_list</a>(<span class="keywordtype">char</span> **section_list);
<a name="l00929"></a>00929 
<a name="l00950"></a>00950 <span class="keywordtype">char</span> **<a class="code" href="group__functions.html#gae5638e9788a4a4c8db1b12d0f38a50f8" title="Get list of attributes.">get_attribute_list</a>(<span class="keyword">struct</span> collection_item *ini_config,
<a name="l00951"></a>00951                           <span class="keyword">const</span> <span class="keywordtype">char</span> *section,
<a name="l00952"></a>00952                           <span class="keywordtype">int</span> *size,
<a name="l00953"></a>00953                           <span class="keywordtype">int</span> *error);
<a name="l00954"></a>00954 
<a name="l00964"></a>00964 <span class="keywordtype">void</span> <a class="code" href="group__functions.html#ga76482639b82f60457482b551eebeb80e" title="Free list of attributes.">free_attribute_list</a>(<span class="keywordtype">char</span> **attr_list);
<a name="l00965"></a>00965 
<a name="l00989"></a>00989 <span class="keywordtype">int</span> <a class="code" href="group__functions.html#ga10ecd2b40b01d59e490815055d27dae7" title="Get a configuration item form the configuration.">get_config_item</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *section,
<a name="l00990"></a>00990                     <span class="keyword">const</span> <span class="keywordtype">char</span> *name,
<a name="l00991"></a>00991                     <span class="keyword">struct</span> collection_item *ini_config,
<a name="l00992"></a>00992                     <span class="keyword">struct</span> collection_item **item);
<a name="l00993"></a>00993 
<a name="l01034"></a>01034 <span class="keywordtype">int</span> <a class="code" href="group__functions.html#gabe1896964cabc142a4ea602b6a96a4ca" title="Convert item value to integer number.">get_int_config_value</a>(<span class="keyword">struct</span> collection_item *item,
<a name="l01035"></a>01035                          <span class="keywordtype">int</span> strict,
<a name="l01036"></a>01036                          <span class="keywordtype">int</span> def,
<a name="l01037"></a>01037                          <span class="keywordtype">int</span> *error);
<a name="l01038"></a>01038 
<a name="l01079"></a>01079 <span class="keywordtype">long</span> <a class="code" href="group__functions.html#gab98bf45e4bcdef6926bde3c91f9da0d8" title="Convert item value to long number.">get_long_config_value</a>(<span class="keyword">struct</span> collection_item *item,
<a name="l01080"></a>01080                            <span class="keywordtype">int</span> strict,
<a name="l01081"></a>01081                            <span class="keywordtype">long</span> def,
<a name="l01082"></a>01082                            <span class="keywordtype">int</span> *error);
<a name="l01083"></a>01083 
<a name="l01124"></a>01124 <span class="keywordtype">unsigned</span> <a class="code" href="group__functions.html#ga963d010797ff9a20e83cc6628926d280" title="Convert item value to unsigned integer number.">get_unsigned_config_value</a>(<span class="keyword">struct</span> collection_item *item,
<a name="l01125"></a>01125                                    <span class="keywordtype">int</span> strict,
<a name="l01126"></a>01126                                    <span class="keywordtype">unsigned</span> def,
<a name="l01127"></a>01127                                    <span class="keywordtype">int</span> *error);
<a name="l01128"></a>01128 
<a name="l01169"></a>01169 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="group__functions.html#ga40609e5025aa61a9f3ba950dd4ba8f66" title="Convert item value to unsigned long number.">get_ulong_config_value</a>(<span class="keyword">struct</span> collection_item *item,
<a name="l01170"></a>01170                                      <span class="keywordtype">int</span> strict,
<a name="l01171"></a>01171                                      <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> def,
<a name="l01172"></a>01172                                      <span class="keywordtype">int</span> *error);
<a name="l01173"></a>01173 
<a name="l01214"></a>01214 int32_t <a class="code" href="group__functions.html#gae17d522a970db3128e7a2aa60af151dd" title="Convert item value to integer number.">get_int32_config_value</a>(<span class="keyword">struct</span> collection_item *item,
<a name="l01215"></a>01215                                <span class="keywordtype">int</span> strict,
<a name="l01216"></a>01216                                int32_t def,
<a name="l01217"></a>01217                                <span class="keywordtype">int</span> *error);
<a name="l01218"></a>01218 
<a name="l01259"></a>01259 uint32_t <a class="code" href="group__functions.html#gaab2154d9fe2c4e4bae06e1ce2b0620e9" title="Convert item value to integer number.">get_uint32_config_value</a>(<span class="keyword">struct</span> collection_item *item,
<a name="l01260"></a>01260                                  <span class="keywordtype">int</span> strict,
<a name="l01261"></a>01261                                  uint32_t def,
<a name="l01262"></a>01262                                  <span class="keywordtype">int</span> *error);
<a name="l01263"></a>01263 
<a name="l01304"></a>01304 int64_t <a class="code" href="group__functions.html#gaf17fd6451e34c7ef85c0b1ea96a995ea" title="Convert item value to integer number.">get_int64_config_value</a>(<span class="keyword">struct</span> collection_item *item,
<a name="l01305"></a>01305                                <span class="keywordtype">int</span> strict,
<a name="l01306"></a>01306                                int64_t def,
<a name="l01307"></a>01307                                <span class="keywordtype">int</span> *error);
<a name="l01308"></a>01308 
<a name="l01349"></a>01349 uint64_t <a class="code" href="group__functions.html#ga702fbd9076e63c284b754f379b3b24e3" title="Convert item value to integer number.">get_uint64_config_value</a>(<span class="keyword">struct</span> collection_item *item,
<a name="l01350"></a>01350                                  <span class="keywordtype">int</span> strict,
<a name="l01351"></a>01351                                  uint64_t def,
<a name="l01352"></a>01352                                  <span class="keywordtype">int</span> *error);
<a name="l01353"></a>01353 
<a name="l01392"></a>01392 <span class="keywordtype">double</span> <a class="code" href="group__functions.html#ga3e101c4cdc00094b1863e9a31dc20243" title="Convert item value to floating point number.">get_double_config_value</a>(<span class="keyword">struct</span> collection_item *item,
<a name="l01393"></a>01393                                <span class="keywordtype">int</span> strict,
<a name="l01394"></a>01394                                <span class="keywordtype">double</span> def,
<a name="l01395"></a>01395                                <span class="keywordtype">int</span> *error);
<a name="l01396"></a>01396 
<a name="l01430"></a>01430 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="group__functions.html#ga4661ccbc4f2e83459104c2cd7112896e" title="Convert item value into a logical value.">get_bool_config_value</a>(<span class="keyword">struct</span> collection_item *item,
<a name="l01431"></a>01431                                     <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> def,
<a name="l01432"></a>01432                                     <span class="keywordtype">int</span> *error);
<a name="l01433"></a>01433 
<a name="l01457"></a>01457 <span class="keywordtype">char</span> *<a class="code" href="group__functions.html#gadd3911b077e7a37b6f636c1aa3a716ce" title="Get string configuration value.">get_string_config_value</a>(<span class="keyword">struct</span> collection_item *item,
<a name="l01458"></a>01458                               <span class="keywordtype">int</span> *error);
<a name="l01481"></a>01481 <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="group__functions.html#ga63bd0c018fdaac74c1dcf82481539cf4" title="Function returns the string stored in the item.">get_const_string_config_value</a>(<span class="keyword">struct</span> collection_item *item,
<a name="l01482"></a>01482                                           <span class="keywordtype">int</span> *error);
<a name="l01483"></a>01483 
<a name="l01533"></a>01533 <span class="keywordtype">char</span> *<a class="code" href="group__functions.html#ga79b0cfcc32acf8c6cc44f89ce2a7b27b" title="Convert item value into a binary sequence.">get_bin_config_value</a>(<span class="keyword">struct</span> collection_item *item,
<a name="l01534"></a>01534                            <span class="keywordtype">int</span> *length,
<a name="l01535"></a>01535                            <span class="keywordtype">int</span> *error);
<a name="l01536"></a>01536 
<a name="l01545"></a>01545 <span class="keywordtype">void</span> <a class="code" href="group__functions.html#ga5295a7b88935995d890497700193fc9f" title="Free binary buffer.">free_bin_config_value</a>(<span class="keywordtype">char</span> *bin);
<a name="l01546"></a>01546 
<a name="l01601"></a>01601 <span class="keywordtype">char</span> **<a class="code" href="group__functions.html#ga32f7b9ac7fcd7c03672add417a34c2f6" title="Convert value to an array of strings.">get_string_config_array</a>(<span class="keyword">struct</span> collection_item *item,
<a name="l01602"></a>01602                                <span class="keyword">const</span> <span class="keywordtype">char</span> *sep,
<a name="l01603"></a>01603                                <span class="keywordtype">int</span> *size,
<a name="l01604"></a>01604                                <span class="keywordtype">int</span> *error);
<a name="l01605"></a>01605 
<a name="l01660"></a>01660 <span class="keywordtype">char</span> **<a class="code" href="group__functions.html#ga6038bb74676a2a5ef7b79000dc621ba4" title="Convert value to an array of strings.">get_raw_string_config_array</a>(<span class="keyword">struct</span> collection_item *item,
<a name="l01661"></a>01661                                    <span class="keyword">const</span> <span class="keywordtype">char</span> *sep,
<a name="l01662"></a>01662                                    <span class="keywordtype">int</span> *size,
<a name="l01663"></a>01663                                    <span class="keywordtype">int</span> *error);
<a name="l01664"></a>01664 
<a name="l01707"></a>01707 <span class="keywordtype">long</span> *<a class="code" href="group__functions.html#ga4f55fb9461d3f9e7be47c35e6f6ee2db" title="Convert value to an array of long values.">get_long_config_array</a>(<span class="keyword">struct</span> collection_item *item,
<a name="l01708"></a>01708                             <span class="keywordtype">int</span> *size,
<a name="l01709"></a>01709                             <span class="keywordtype">int</span> *error);
<a name="l01710"></a>01710 
<a name="l01752"></a>01752 <span class="keywordtype">double</span> *<a class="code" href="group__functions.html#ga938e82dcad2dbb13fd7e9663d353d625" title="Convert value to an array of floating point values.">get_double_config_array</a>(<span class="keyword">struct</span> collection_item *item,
<a name="l01753"></a>01753                                 <span class="keywordtype">int</span> *size,
<a name="l01754"></a>01754                                 <span class="keywordtype">int</span> *error);
<a name="l01755"></a>01755 
<a name="l01765"></a>01765 <span class="keywordtype">void</span> <a class="code" href="group__functions.html#gaae7f4b3678b2be71bbc3ed99c4e78f65" title="Free array of string values.">free_string_config_array</a>(<span class="keywordtype">char</span> **str_config);
<a name="l01766"></a>01766 
<a name="l01775"></a>01775 <span class="keywordtype">void</span> <a class="code" href="group__functions.html#ga04c81fb646dacd09ffec48c278e7fd21" title="Free array of long values.">free_long_config_array</a>(<span class="keywordtype">long</span> *array);
<a name="l01784"></a>01784 <span class="keywordtype">void</span> <a class="code" href="group__functions.html#gac5f1b4e0f9b999cf08972ed711649b52" title="Free array of floating pointer values.">free_double_config_array</a>(<span class="keywordtype">double</span> *array);
<a name="l01785"></a>01785 
<a name="l01786"></a>01786 
<a name="l01791"></a>01791 <span class="preprocessor">#endif</span>
</pre></div></div>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<hr class="footer"/><address class="footer"><small>Generated on Thu Sep 15 2011 for libini_config by&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
</html>