<!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  <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 Page</span></a></li> <li><a href="pages.html"><span>Related 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 List</span></a></li> <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Class 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 <<a class="el" href="Config_8h_source.html">edelib/Config.h</a>></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"> </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"> </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 </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 </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"> </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 </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 </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 </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 </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 &retsize)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classedelib_1_1Config.html#a03e2def4adf5d29bbb9e183fc80b3161">get</a> (const char *section, const char *key, bool &ret, bool dfl=false)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classedelib_1_1Config.html#aeb1185dcfc03edfb530c569540437608">get</a> (const char *section, const char *key, int &ret, int dfl=0)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classedelib_1_1Config.html#adfa5eeb2eea1d4676ff3b06da6861857">get</a> (const char *section, const char *key, float &ret, float dfl=0)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classedelib_1_1Config.html#a4c3a4837bb88b86bfeb86974cf526634">get</a> (const char *section, const char *key, long &ret, long dfl=0)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classedelib_1_1Config.html#a5ec0ca64b39058e254ce39cd53352e6c">get</a> (const char *section, const char *key, double &ret, double dfl=0)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classedelib_1_1Config.html#aaeff120483fcdd951953f32e379fdd36">get</a> (const char *section, const char *key, char &ret, char dfl=0)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 * </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 * </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 ] -> <span class="stringliteral">"some long section"</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 <- 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">"my section"</span>, <span class="stringliteral">"idea"</span>, &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">"parent/child"</span>, <span class="stringliteral">"item"</span>, &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 & 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 </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 </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 * </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 * </td> <td class="paramname"><em>section</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>key</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">char * </td> <td class="paramname"><em>ret</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned int </td> <td class="paramname"><em>size</em> </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 &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 * </td> <td class="paramname"><em>section</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>key</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool & </td> <td class="paramname"><em>ret</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool </td> <td class="paramname"><em>dfl</em> = <code>false</code> </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 &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 * </td> <td class="paramname"><em>section</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>key</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int & </td> <td class="paramname"><em>ret</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>dfl</em> = <code>0</code> </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 &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 * </td> <td class="paramname"><em>section</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>key</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">float & </td> <td class="paramname"><em>ret</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">float </td> <td class="paramname"><em>dfl</em> = <code>0</code> </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 &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 * </td> <td class="paramname"><em>section</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>key</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">long & </td> <td class="paramname"><em>ret</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">long </td> <td class="paramname"><em>dfl</em> = <code>0</code> </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 &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 * </td> <td class="paramname"><em>section</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>key</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double & </td> <td class="paramname"><em>ret</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>dfl</em> = <code>0</code> </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 &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 * </td> <td class="paramname"><em>section</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>key</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">char & </td> <td class="paramname"><em>ret</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">char </td> <td class="paramname"><em>dfl</em> = <code>0</code> </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 &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 * </td> <td class="paramname"><em>section</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>key</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">char ** </td> <td class="paramname"><em>ret</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned int & </td> <td class="paramname"><em>retsize</em> </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 * </td> <td class="paramname"><em>section</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>key</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">char * </td> <td class="paramname"><em>ret</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned int </td> <td class="paramname"><em>size</em> </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 * </td> <td class="paramname"><em>section</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>key</em> </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 </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 * </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 </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 </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">"/no/file"</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 * </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 * </td> <td class="paramname"><em>section</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>key</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">char * </td> <td class="paramname"><em>val</em> </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 * </td> <td class="paramname"><em>section</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>key</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>val</em> </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 * </td> <td class="paramname"><em>section</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>key</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool </td> <td class="paramname"><em>val</em> </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 * </td> <td class="paramname"><em>section</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>key</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>val</em> </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 * </td> <td class="paramname"><em>section</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>key</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">long </td> <td class="paramname"><em>val</em> </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 * </td> <td class="paramname"><em>section</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>key</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">float </td> <td class="paramname"><em>val</em> </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 * </td> <td class="paramname"><em>section</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>key</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>val</em> </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 * </td> <td class="paramname"><em>section</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>key</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">char * </td> <td class="paramname"><em>val</em> </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 * </td> <td class="paramname"><em>section</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>key</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>val</em> </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 </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 </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  <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>