Sophie

Sophie

distrib > Mandriva > 2011.0 > x86_64 > by-pkgid > e4e5aca55b6d7244e6bae95bf4fde3ca > files > 208

lib64edelib-devel-2.0-1.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"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>edelib: Config Class Reference</title>

<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />



</head>
<body>
<div id="top"><!-- do not remove this div! -->


<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  
  
  <td style="padding-left: 0.5em;">
   <div id="projectname">edelib
   &#160;<span id="projectnumber">2.0.0</span>
   </div>
   
  </td>
  
  
  
 </tr>
 </tbody>
</table>
</div>

<!-- Generated by Doxygen 1.7.6.1 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
  <div id="nav-path" class="navpath">
    <ul>
      <li class="navelem"><a class="el" href="namespaceedelib.html">edelib</a>      </li>
      <li class="navelem"><a class="el" href="classedelib_1_1Config.html">Config</a>      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a>  </div>
  <div class="headertitle">
<div class="title">Config Class Reference</div>  </div>
</div><!--header-->
<div class="contents">
<!-- doxytag: class="edelib::Config" -->
<p>A config file reader.  
 <a href="classedelib_1_1Config.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="Config_8h_source.html">edelib/Config.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for Config:</div>
<div class="dyncontent">
 <div class="center">
  <img src="classedelib_1_1Config.png" usemap="#Config_map" alt=""/>
  <map id="Config_map" name="Config_map">
<area href="classedelib_1_1DesktopFile.html" title=".desktop file reader and writer" alt="DesktopFile" shape="rect" coords="0,56,78,80"/>
</map>
 </div></div>

<p><a href="classedelib_1_1Config-members.html">List of all members.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classedelib_1_1Config.html#a539a941e29cde8d13e413c515d9801cd">Config</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classedelib_1_1Config.html#a54dfba499c9d9e1003d4c9bcbe6ad1c5">~Config</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classedelib_1_1Config.html#af83e4de0b1f8f6d8fac5856c9ed2b50e">load</a> (const char *fname)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classedelib_1_1Config.html#acd43320d0821c376df693d148f7ed44b">save</a> (const char *fname)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classedelib_1_1Config.html#a4e78e3cd062c82439dffc9cddbdd8a20">operator bool</a> (void) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classedelib_1_1Config.html#ae683fe63c33c388e9ba1c6392dd477eb">clear</a> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classedelib_1_1Config.html#a6e1396ec6cb23c7c8b8db04b14f633ec">get</a> (const char *section, const char *key, char *ret, unsigned int size)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classedelib_1_1Config.html#a1d9d73d7da3769131087c5ac580b908e">get_localized</a> (const char *section, const char *key, char *ret, unsigned int size)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classedelib_1_1Config.html#af6cc11a1787db19e7209d87d017fce07">get_allocated</a> (const char *section, const char *key, char **ret, unsigned int &amp;retsize)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classedelib_1_1Config.html#a03e2def4adf5d29bbb9e183fc80b3161">get</a> (const char *section, const char *key, bool &amp;ret, bool dfl=false)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classedelib_1_1Config.html#aeb1185dcfc03edfb530c569540437608">get</a> (const char *section, const char *key, int &amp;ret, int dfl=0)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classedelib_1_1Config.html#adfa5eeb2eea1d4676ff3b06da6861857">get</a> (const char *section, const char *key, float &amp;ret, float dfl=0)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classedelib_1_1Config.html#a4c3a4837bb88b86bfeb86974cf526634">get</a> (const char *section, const char *key, long &amp;ret, long dfl=0)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classedelib_1_1Config.html#a5ec0ca64b39058e254ce39cd53352e6c">get</a> (const char *section, const char *key, double &amp;ret, double dfl=0)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classedelib_1_1Config.html#aaeff120483fcdd951953f32e379fdd36">get</a> (const char *section, const char *key, char &amp;ret, char dfl=0)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classedelib_1_1Config.html#ad19f781828b6cf8441acbdf88cf75d8a">set</a> (const char *section, const char *key, char *val)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classedelib_1_1Config.html#a65fe056ffb85ca73def51c407b219f8d">set</a> (const char *section, const char *key, const char *val)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classedelib_1_1Config.html#a14854d545d0b15d20f52075af39aa3c7">set_localized</a> (const char *section, const char *key, char *val)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classedelib_1_1Config.html#abaf3859d6addad059363e8bc889b4342">set_localized</a> (const char *section, const char *key, const char *val)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classedelib_1_1Config.html#a6880e08be360e88963a7709097e646fe">set</a> (const char *section, const char *key, bool val)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classedelib_1_1Config.html#a783631cb89fff64bbcc14f419c6df20c">set</a> (const char *section, const char *key, int val)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classedelib_1_1Config.html#a7e4507318e1f5b29d13121d9c76d3e7c">set</a> (const char *section, const char *key, long val)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classedelib_1_1Config.html#a058b8d16a658ed347f997209f8e744bb">set</a> (const char *section, const char *key, float val)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classedelib_1_1Config.html#a38cb4ce53a66f591f657d9085563a0fb">set</a> (const char *section, const char *key, double val)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classedelib_1_1Config.html#a112a10f04f665559725554f0ac077b7e">exist</a> (const char *section)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classedelib_1_1Config.html#a809c44912249446a270abc54e9e488ae">key_exist</a> (const char *section, const char *key)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classedelib_1_1Config.html#a9216e6b9ffd326bdb9d90a41b6663ab9">num_sections</a> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classedelib_1_1Config.html#a1bb11459514c6e0428ca6762b7769483">line</a> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classedelib_1_1Config.html#a4d458be778c65912d4480d0e97f3defc">error</a> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classedelib_1_1Config.html#ac1c118da14ef80f10064629b8e850b69">strerror</a> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classedelib_1_1Config.html#a0ffa8d89aacddd950a58977ed8dd0984">strerror</a> (int code)</td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>A config file reader. </p>
<p>This class is aimed for reading and storing classic INI files in form: </p>
<div class="fragment"><pre class="fragment"><span class="preprocessor">  # this is a comment</span>
<span class="preprocessor"></span>  [section1]
   item = value

  [section2]
   item = value
</pre></div><p> Section names can be words or multiple words separated by spaces. All leading and following spaces will be trimmed, like: </p>
<div class="fragment"><pre class="fragment">  [ some <span class="keywordtype">long</span> section ] -&gt; <span class="stringliteral">&quot;some long section&quot;</span>
</pre></div><p>Duplicate sections will be merged in one (later when used as output), but in case of duplicate key lines, only last will be considered. Like in this sample: </p>
<div class="fragment"><pre class="fragment">  [my section]
    idea = bad   &lt;- ignored
    idea = good
</pre></div><p>In above case, using </p>
<div class="fragment"><pre class="fragment">   <span class="keyword">get</span>(<span class="stringliteral">&quot;my section&quot;</span>, <span class="stringliteral">&quot;idea&quot;</span>, &amp;val, valsz) 
</pre></div><p> will set val to "good".</p>
<p>During reading phase, file is checked is malformed and if that was true, CONF_ERR_BAD will be returned as error code. Target line can be inspected with <a class="el" href="classedelib_1_1Config.html#a1bb11459514c6e0428ca6762b7769483">line()</a> function.</p>
<p>Althought there are various INI specifications, currently supported one is very basic, without subsections support, like: </p>
<div class="fragment"><pre class="fragment">  [parent]
    item = value
  [parent/child]
    item = value
</pre></div><p>Later option can be checked like: </p>
<div class="fragment"><pre class="fragment">   <span class="keyword">get</span>(<span class="stringliteral">&quot;parent/child&quot;</span>, <span class="stringliteral">&quot;item&quot;</span>, &amp;val, valsz);
</pre></div><dl class="todo"><dt><b><a class="el" href="todo.html#_todo000002">Todo:</a></b></dt><dd><p class="startdd">don't allow [] sections </p>
<p class="enddd">What <a class="el" href="classedelib_1_1Config.html" title="A config file reader.">Config</a> as localized keys should read: LC_MESSAGES or LANG ??? I'm using for now LANG, but fd.o people said it should be LC_MESSAGES. Inspect this. </p>
</dd></dl>
</div><hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a539a941e29cde8d13e413c515d9801cd"></a><!-- doxytag: member="edelib::Config::Config" ref="a539a941e29cde8d13e413c515d9801cd" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classedelib_1_1Config.html">Config</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Constructor </p>

</div>
</div>
<a class="anchor" id="a54dfba499c9d9e1003d4c9bcbe6ad1c5"></a><!-- doxytag: member="edelib::Config::~Config" ref="a54dfba499c9d9e1003d4c9bcbe6ad1c5" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">~<a class="el" href="classedelib_1_1Config.html">Config</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Destructor </p>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="ae683fe63c33c388e9ba1c6392dd477eb"></a><!-- doxytag: member="edelib::Config::clear" ref="ae683fe63c33c388e9ba1c6392dd477eb" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classedelib_1_1Config.html#ae683fe63c33c388e9ba1c6392dd477eb">clear</a> </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Clear all internal data. </p>

</div>
</div>
<a class="anchor" id="a4d458be778c65912d4480d0e97f3defc"></a><!-- doxytag: member="edelib::Config::error" ref="a4d458be778c65912d4480d0e97f3defc" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="classedelib_1_1Config.html#a4d458be778c65912d4480d0e97f3defc">error</a> </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Get error code.</p>
<p>This can be used to inspect why file can't be read. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>one of ConfigErrors values </dd></dl>

</div>
</div>
<a class="anchor" id="a112a10f04f665559725554f0ac077b7e"></a><!-- doxytag: member="edelib::Config::exist" ref="a112a10f04f665559725554f0ac077b7e" args="(const char *section)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classedelib_1_1Config.html#a112a10f04f665559725554f0ac077b7e">exist</a> </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>section</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Check if section exist.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if exist, or false if not. </dd></dl>

</div>
</div>
<a class="anchor" id="a6e1396ec6cb23c7c8b8db04b14f633ec"></a><!-- doxytag: member="edelib::Config::get" ref="a6e1396ec6cb23c7c8b8db04b14f633ec" args="(const char *section, const char *key, char *ret, unsigned int size)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classedelib_1_1Config.html#a6e1396ec6cb23c7c8b8db04b14f633ec">get</a> </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>section</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>ret</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Get char* value from named section.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if value exist </dd></dl>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">section</td><td>name of target section </td></tr>
    <tr><td class="paramname">key</td><td>name of target key </td></tr>
    <tr><td class="paramname">ret</td><td>buffer to copy returned value </td></tr>
    <tr><td class="paramname">size</td><td>size of buffer </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a03e2def4adf5d29bbb9e183fc80b3161"></a><!-- doxytag: member="edelib::Config::get" ref="a03e2def4adf5d29bbb9e183fc80b3161" args="(const char *section, const char *key, bool &amp;ret, bool dfl=false)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classedelib_1_1Config.html#a6e1396ec6cb23c7c8b8db04b14f633ec">get</a> </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>section</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool &amp;&#160;</td>
          <td class="paramname"><em>ret</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>dfl</em> = <code>false</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Get bool value from named section.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if value exist </dd></dl>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">section</td><td>name of target section </td></tr>
    <tr><td class="paramname">key</td><td>name of target key </td></tr>
    <tr><td class="paramname">ret</td><td>where to place returned value </td></tr>
    <tr><td class="paramname">dfl</td><td>default value, in case real value not found </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aeb1185dcfc03edfb530c569540437608"></a><!-- doxytag: member="edelib::Config::get" ref="aeb1185dcfc03edfb530c569540437608" args="(const char *section, const char *key, int &amp;ret, int dfl=0)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classedelib_1_1Config.html#a6e1396ec6cb23c7c8b8db04b14f633ec">get</a> </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>section</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int &amp;&#160;</td>
          <td class="paramname"><em>ret</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>dfl</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Get int value from named section.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if value exist </dd></dl>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">section</td><td>name of target section </td></tr>
    <tr><td class="paramname">key</td><td>name of target key </td></tr>
    <tr><td class="paramname">ret</td><td>where to place returned value </td></tr>
    <tr><td class="paramname">dfl</td><td>default value, in case real value not found </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="adfa5eeb2eea1d4676ff3b06da6861857"></a><!-- doxytag: member="edelib::Config::get" ref="adfa5eeb2eea1d4676ff3b06da6861857" args="(const char *section, const char *key, float &amp;ret, float dfl=0)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classedelib_1_1Config.html#a6e1396ec6cb23c7c8b8db04b14f633ec">get</a> </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>section</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float &amp;&#160;</td>
          <td class="paramname"><em>ret</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>dfl</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Get float value from named section.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if value exist </dd></dl>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">section</td><td>name of target section </td></tr>
    <tr><td class="paramname">key</td><td>name of target key </td></tr>
    <tr><td class="paramname">ret</td><td>where to place returned value </td></tr>
    <tr><td class="paramname">dfl</td><td>default value, in case real value not found </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a4c3a4837bb88b86bfeb86974cf526634"></a><!-- doxytag: member="edelib::Config::get" ref="a4c3a4837bb88b86bfeb86974cf526634" args="(const char *section, const char *key, long &amp;ret, long dfl=0)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classedelib_1_1Config.html#a6e1396ec6cb23c7c8b8db04b14f633ec">get</a> </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>section</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long &amp;&#160;</td>
          <td class="paramname"><em>ret</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>dfl</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Get long value from named section.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if value exist </dd></dl>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">section</td><td>name of target section </td></tr>
    <tr><td class="paramname">key</td><td>name of target key </td></tr>
    <tr><td class="paramname">ret</td><td>where to place returned value </td></tr>
    <tr><td class="paramname">dfl</td><td>default value, in case real value not found </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a5ec0ca64b39058e254ce39cd53352e6c"></a><!-- doxytag: member="edelib::Config::get" ref="a5ec0ca64b39058e254ce39cd53352e6c" args="(const char *section, const char *key, double &amp;ret, double dfl=0)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classedelib_1_1Config.html#a6e1396ec6cb23c7c8b8db04b14f633ec">get</a> </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>section</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double &amp;&#160;</td>
          <td class="paramname"><em>ret</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>dfl</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Get double value from named section.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if value exist </dd></dl>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">section</td><td>name of target section </td></tr>
    <tr><td class="paramname">key</td><td>name of target key </td></tr>
    <tr><td class="paramname">ret</td><td>where to place returned value </td></tr>
    <tr><td class="paramname">dfl</td><td>default value, in case real value not found </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aaeff120483fcdd951953f32e379fdd36"></a><!-- doxytag: member="edelib::Config::get" ref="aaeff120483fcdd951953f32e379fdd36" args="(const char *section, const char *key, char &amp;ret, char dfl=0)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classedelib_1_1Config.html#a6e1396ec6cb23c7c8b8db04b14f633ec">get</a> </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>section</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char &amp;&#160;</td>
          <td class="paramname"><em>ret</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char&#160;</td>
          <td class="paramname"><em>dfl</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Get char value from named section.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if value exist </dd></dl>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">section</td><td>name of target section </td></tr>
    <tr><td class="paramname">key</td><td>name of target key </td></tr>
    <tr><td class="paramname">ret</td><td>where to place returned value </td></tr>
    <tr><td class="paramname">dfl</td><td>default value, in case real value not found </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="af6cc11a1787db19e7209d87d017fce07"></a><!-- doxytag: member="edelib::Config::get_allocated" ref="af6cc11a1787db19e7209d87d017fce07" args="(const char *section, const char *key, char **ret, unsigned int &amp;retsize)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classedelib_1_1Config.html#af6cc11a1787db19e7209d87d017fce07">get_allocated</a> </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>section</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char **&#160;</td>
          <td class="paramname"><em>ret</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int &amp;&#160;</td>
          <td class="paramname"><em>retsize</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This function is the same as <a class="el" href="classedelib_1_1Config.html#a6e1396ec6cb23c7c8b8db04b14f633ec">get()</a> with char*, except returned data is allocated. Use <b>must</b> call delete[] on returned data. If this function returns false, returned data will not be allocated and <em>retsize</em> will be 0.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if value exists </dd></dl>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">section</td><td>name of target section </td></tr>
    <tr><td class="paramname">key</td><td>name of target key </td></tr>
    <tr><td class="paramname">ret</td><td>is allocated by this function ad returned value will be copied in it </td></tr>
    <tr><td class="paramname">retsize</td><td>size of buffer </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a1d9d73d7da3769131087c5ac580b908e"></a><!-- doxytag: member="edelib::Config::get_localized" ref="a1d9d73d7da3769131087c5ac580b908e" args="(const char *section, const char *key, char *ret, unsigned int size)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classedelib_1_1Config.html#a1d9d73d7da3769131087c5ac580b908e">get_localized</a> </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>section</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>ret</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Get localized character data. This method behaves the same as <a class="el" href="classedelib_1_1Config.html#a6e1396ec6cb23c7c8b8db04b14f633ec">get()</a> with character data, except it will search first keys with locale tags, which coresponds system locale settings. This keys looks like: </p>
<div class="fragment"><pre class="fragment"><span class="preprocessor">   # localized value</span>
<span class="preprocessor"></span>   Key[de] = localized value in german

<span class="preprocessor">   # unlocalized value</span>
<span class="preprocessor">   Key = some value</span>
</pre></div><p>Function will try to find out current locale settings and if fails, of specific key with locale tag does not exist, it will try with ordinary unlocalized value.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if value exist </dd></dl>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">section</td><td>name of target section </td></tr>
    <tr><td class="paramname">key</td><td>name of target key </td></tr>
    <tr><td class="paramname">ret</td><td>buffer to copy returned value </td></tr>
    <tr><td class="paramname">size</td><td>size of buffer </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a809c44912249446a270abc54e9e488ae"></a><!-- doxytag: member="edelib::Config::key_exist" ref="a809c44912249446a270abc54e9e488ae" args="(const char *section, const char *key)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classedelib_1_1Config.html#a809c44912249446a270abc54e9e488ae">key_exist</a> </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>section</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>key</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Check if key exists in given section.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if exists, of false if not. </dd></dl>

</div>
</div>
<a class="anchor" id="a1bb11459514c6e0428ca6762b7769483"></a><!-- doxytag: member="edelib::Config::line" ref="a1bb11459514c6e0428ca6762b7769483" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int <a class="el" href="classedelib_1_1Config.html#a1bb11459514c6e0428ca6762b7769483">line</a> </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Get current line number.</p>
<p>This function can be used if file is malformed </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>problematic line </dd></dl>

</div>
</div>
<a class="anchor" id="af83e4de0b1f8f6d8fac5856c9ed2b50e"></a><!-- doxytag: member="edelib::Config::load" ref="af83e4de0b1f8f6d8fac5856c9ed2b50e" args="(const char *fname)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classedelib_1_1Config.html#af83e4de0b1f8f6d8fac5856c9ed2b50e">load</a> </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>fname</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Load file. <a class="el" href="classedelib_1_1Config.html" title="A config file reader.">Config</a>'s internal content will be cleared.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if file reading was ok, otherwise false. </dd></dl>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">fname</td><td>path to config file. </td></tr>
  </table>
  </dd>
</dl>

<p>Reimplemented in <a class="el" href="classedelib_1_1DesktopFile.html#af83e4de0b1f8f6d8fac5856c9ed2b50e">DesktopFile</a>.</p>

</div>
</div>
<a class="anchor" id="a9216e6b9ffd326bdb9d90a41b6663ab9"></a><!-- doxytag: member="edelib::Config::num_sections" ref="a9216e6b9ffd326bdb9d90a41b6663ab9" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int <a class="el" href="classedelib_1_1Config.html#a9216e6b9ffd326bdb9d90a41b6663ab9">num_sections</a> </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Return number of sections.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>number of sections. </dd></dl>

</div>
</div>
<a class="anchor" id="a4e78e3cd062c82439dffc9cddbdd8a20"></a><!-- doxytag: member="edelib::Config::operator bool" ref="a4e78e3cd062c82439dffc9cddbdd8a20" args="(void) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">operator bool </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Validate is previous operation was succesfull.</p>
<p>This is an shorthand for various <a class="el" href="classedelib_1_1Config.html#a4d458be778c65912d4480d0e97f3defc">error()</a> checks, so it can be used: </p>
<div class="fragment"><pre class="fragment">   <a class="code" href="classedelib_1_1Config.html#a539a941e29cde8d13e413c515d9801cd">Config</a> c;
   c.load(<span class="stringliteral">&quot;/no/file&quot;</span>);
   <span class="keywordflow">if</span>(!c) <span class="comment">// do something smart</span>
</pre></div><dl class="return"><dt><b>Returns:</b></dt><dd>true if everything is fine, or false </dd></dl>

<p>Reimplemented in <a class="el" href="classedelib_1_1DesktopFile.html#a4e78e3cd062c82439dffc9cddbdd8a20">DesktopFile</a>.</p>

<p>References <a class="el" href="namespaceedelib.html#ad351b23fe0550b14aaf53305a15ffdb9abd7a4cb05398d92afae8dbb830c1faa1">edelib::CONF_SUCCESS</a>.</p>

</div>
</div>
<a class="anchor" id="acd43320d0821c376df693d148f7ed44b"></a><!-- doxytag: member="edelib::Config::save" ref="acd43320d0821c376df693d148f7ed44b" args="(const char *fname)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classedelib_1_1Config.html#acd43320d0821c376df693d148f7ed44b">save</a> </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>fname</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Save content to the file. Note however that content will be first stored in temporary file, then will be renamed to final location; with this it is safe to use this function in places where folders are monitored for changes too.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if file saving was ok, otherwise false. </dd></dl>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">fname</td><td>path to store config file. </td></tr>
  </table>
  </dd>
</dl>

<p>Reimplemented in <a class="el" href="classedelib_1_1DesktopFile.html#acd43320d0821c376df693d148f7ed44b">DesktopFile</a>.</p>

</div>
</div>
<a class="anchor" id="ad19f781828b6cf8441acbdf88cf75d8a"></a><!-- doxytag: member="edelib::Config::set" ref="ad19f781828b6cf8441acbdf88cf75d8a" args="(const char *section, const char *key, char *val)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classedelib_1_1Config.html#ad19f781828b6cf8441acbdf88cf75d8a">set</a> </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>section</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>val</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Set char* value in named section. If section, or key does not exists, they will be created.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">section</td><td>name of target section </td></tr>
    <tr><td class="paramname">key</td><td>name of target key </td></tr>
    <tr><td class="paramname">val</td><td>value to store within key </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a65fe056ffb85ca73def51c407b219f8d"></a><!-- doxytag: member="edelib::Config::set" ref="a65fe056ffb85ca73def51c407b219f8d" args="(const char *section, const char *key, const char *val)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classedelib_1_1Config.html#ad19f781828b6cf8441acbdf88cf75d8a">set</a> </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>section</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>val</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Set const char* value in named section. If section, or key does not exists, they will be created.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">section</td><td>name of target section </td></tr>
    <tr><td class="paramname">key</td><td>name of target key </td></tr>
    <tr><td class="paramname">val</td><td>value to store within key </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a6880e08be360e88963a7709097e646fe"></a><!-- doxytag: member="edelib::Config::set" ref="a6880e08be360e88963a7709097e646fe" args="(const char *section, const char *key, bool val)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classedelib_1_1Config.html#ad19f781828b6cf8441acbdf88cf75d8a">set</a> </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>section</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>val</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Set bool value in named section. If section, or key does not exists, they will be created.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">section</td><td>name of target section </td></tr>
    <tr><td class="paramname">key</td><td>name of target key </td></tr>
    <tr><td class="paramname">val</td><td>value to store within key </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a783631cb89fff64bbcc14f419c6df20c"></a><!-- doxytag: member="edelib::Config::set" ref="a783631cb89fff64bbcc14f419c6df20c" args="(const char *section, const char *key, int val)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classedelib_1_1Config.html#ad19f781828b6cf8441acbdf88cf75d8a">set</a> </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>section</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>val</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Set int value in named section. If section, or key does not exists, they will be created.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">section</td><td>name of target section </td></tr>
    <tr><td class="paramname">key</td><td>name of target key </td></tr>
    <tr><td class="paramname">val</td><td>value to store within key </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a7e4507318e1f5b29d13121d9c76d3e7c"></a><!-- doxytag: member="edelib::Config::set" ref="a7e4507318e1f5b29d13121d9c76d3e7c" args="(const char *section, const char *key, long val)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classedelib_1_1Config.html#ad19f781828b6cf8441acbdf88cf75d8a">set</a> </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>section</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>val</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Set long value in named section. If section, or key does not exists, they will be created.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">section</td><td>name of target section </td></tr>
    <tr><td class="paramname">key</td><td>name of target key </td></tr>
    <tr><td class="paramname">val</td><td>value to store within key </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a058b8d16a658ed347f997209f8e744bb"></a><!-- doxytag: member="edelib::Config::set" ref="a058b8d16a658ed347f997209f8e744bb" args="(const char *section, const char *key, float val)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classedelib_1_1Config.html#ad19f781828b6cf8441acbdf88cf75d8a">set</a> </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>section</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>val</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Set float value in named section. If section, or key does not exists, they will be created.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">section</td><td>name of target section </td></tr>
    <tr><td class="paramname">key</td><td>name of target key </td></tr>
    <tr><td class="paramname">val</td><td>value to store within key </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a38cb4ce53a66f591f657d9085563a0fb"></a><!-- doxytag: member="edelib::Config::set" ref="a38cb4ce53a66f591f657d9085563a0fb" args="(const char *section, const char *key, double val)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classedelib_1_1Config.html#ad19f781828b6cf8441acbdf88cf75d8a">set</a> </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>section</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>val</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Set double value in named section. If section, or key does not exists, they will be created.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">section</td><td>name of target section </td></tr>
    <tr><td class="paramname">key</td><td>name of target key </td></tr>
    <tr><td class="paramname">val</td><td>value to store within key </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a14854d545d0b15d20f52075af39aa3c7"></a><!-- doxytag: member="edelib::Config::set_localized" ref="a14854d545d0b15d20f52075af39aa3c7" args="(const char *section, const char *key, char *val)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classedelib_1_1Config.html#a14854d545d0b15d20f52075af39aa3c7">set_localized</a> </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>section</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>val</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Set char* value for localized named section. Description for <a class="el" href="classedelib_1_1Config.html#a1d9d73d7da3769131087c5ac580b908e">get_localized()</a> applies here too.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">section</td><td>name of target section </td></tr>
    <tr><td class="paramname">key</td><td>name of target key </td></tr>
    <tr><td class="paramname">val</td><td>value to store within key </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="abaf3859d6addad059363e8bc889b4342"></a><!-- doxytag: member="edelib::Config::set_localized" ref="abaf3859d6addad059363e8bc889b4342" args="(const char *section, const char *key, const char *val)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classedelib_1_1Config.html#a14854d545d0b15d20f52075af39aa3c7">set_localized</a> </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>section</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>val</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Set const char* value for localized named section. Description for <a class="el" href="classedelib_1_1Config.html#a1d9d73d7da3769131087c5ac580b908e">get_localized()</a> applies here too.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">section</td><td>name of target section </td></tr>
    <tr><td class="paramname">key</td><td>name of target key </td></tr>
    <tr><td class="paramname">val</td><td>value to store within key </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ac1c118da14ef80f10064629b8e850b69"></a><!-- doxytag: member="edelib::Config::strerror" ref="ac1c118da14ef80f10064629b8e850b69" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* <a class="el" href="classedelib_1_1Config.html#ac1c118da14ef80f10064629b8e850b69">strerror</a> </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Get error in string form. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>current error in string form </dd></dl>

</div>
</div>
<a class="anchor" id="a0ffa8d89aacddd950a58977ed8dd0984"></a><!-- doxytag: member="edelib::Config::strerror" ref="a0ffa8d89aacddd950a58977ed8dd0984" args="(int code)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* <a class="el" href="classedelib_1_1Config.html#ac1c118da14ef80f10064629b8e850b69">strerror</a> </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>code</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Interpret parameter and return associated error code. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>string name for error code </dd></dl>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">code</td><td>one of ConfigErrors values </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>edelib/<a class="el" href="Config_8h_source.html">Config.h</a></li>
</ul>
</div><!-- contents -->


<hr class="footer"/><address class="footer"><small>
Generated on Tue Jun 5 2012 17:49:02 for edelib by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>

</body>
</html>