1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
2 <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
3 <title>ConfigReader class Reference</title>
4 <link href="inspircd.css" rel="stylesheet" type="text/css">
6 <!-- Generated by Doxygen 1.3-rc3 -->
8 <a class="qindex" href="main.html">Main Page</a> <a class="qindex" href="namespaces.html">Namespace List</a> <a class="qindex" href="hierarchy.html">Class Hierarchy</a> <a class="qindex" href="classes.html">Alphabetical List</a> <a class="qindex" href="annotated.html">Compound List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Compound Members</a> <a class="qindex" href="globals.html">File Members</a> </center>
9 <hr><h1>ConfigReader Class Reference</h1>Allows reading of values from configuration files This class allows a module to read from either the main configuration file (inspircd.conf) or from a module-specified configuration file.
10 <a href="#_details">More...</a>
12 <code>#include <<a class="el" href="modules_8h-source.html">modules.h</a>></code>
14 Inheritance diagram for ConfigReader:<p><center><img src="classConfigReader__inherit__graph.gif" border="0" usemap="#ConfigReader__inherit__map" alt="Inheritance graph"></center>
15 <map name="ConfigReader__inherit__map">
16 <area href="classclassbase.html" shape="rect" coords="19,16,85,37" alt="">
18 <center><font size="2">[<a target="top" href="graph_legend.html">legend</a>]</font></center>Collaboration diagram for ConfigReader:<p><center><img src="classConfigReader__coll__graph.gif" border="0" usemap="#ConfigReader__coll__map" alt="Collaboration graph"></center>
19 <map name="ConfigReader__coll__map">
20 <area href="classclassbase.html" shape="rect" coords="7,107,73,128" alt="">
22 <center><font size="2">[<a target="top" href="graph_legend.html">legend</a>]</font></center><a href="classConfigReader-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0>
24 <tr><td colspan=2><br><h2>Public Member Functions</h2></td></tr>
25 <tr><td nowrap align=right valign=top> </td><td valign=bottom><a class="el" href="classConfigReader.html#a0">ConfigReader</a> ()</td></tr>
26 <tr><td> </td><td><font size=-1><em>Default constructor.</em> <a href="#a0"></a><em></em></font><br><br></td></tr>
27 <tr><td nowrap align=right valign=top> </td><td valign=bottom><a class="el" href="classConfigReader.html#a1">ConfigReader</a> (std::string filename)</td></tr>
28 <tr><td> </td><td><font size=-1><em>Overloaded constructor.</em> <a href="#a1"></a><em></em></font><br><br></td></tr>
29 <tr><td nowrap align=right valign=top> </td><td valign=bottom><a class="el" href="classConfigReader.html#a2">~ConfigReader</a> ()</td></tr>
30 <tr><td> </td><td><font size=-1><em>Default destructor.</em> <a href="#a2"></a><em></em></font><br><br></td></tr>
31 <tr><td nowrap align=right valign=top>std::string </td><td valign=bottom><a class="el" href="classConfigReader.html#a3">ReadValue</a> (std::string tag, std::string name, int index)</td></tr>
32 <tr><td> </td><td><font size=-1><em>Retrieves a value from the config file.</em> <a href="#a3"></a><em></em></font><br><br></td></tr>
33 <tr><td nowrap align=right valign=top>int </td><td valign=bottom><a class="el" href="classConfigReader.html#a4">Enumerate</a> (std::string tag)</td></tr>
34 <tr><td> </td><td><font size=-1><em>Counts the number of times a given tag appears in the config file.</em> <a href="#a4"></a><em></em></font><br><br></td></tr>
35 <tr><td nowrap align=right valign=top>bool </td><td valign=bottom><a class="el" href="classConfigReader.html#a5">Verify</a> ()</td></tr>
36 <tr><td> </td><td><font size=-1><em>Returns true if a config file is valid.</em> <a href="#a5"></a><em></em></font><br><br></td></tr>
37 <tr><td colspan=2><br><h2>Protected Attributes</h2></td></tr>
38 <tr><td nowrap align=right valign=top>std::stringstream * </td><td valign=bottom><a class="el" href="classConfigReader.html#n0">cache</a></td></tr>
39 <tr><td> </td><td><font size=-1><em>The contents of the configuration file This protected member should never be accessed by a module (and cannot be accessed unless the core is changed).</em> <a href="#n0"></a><em></em></font><br><br></td></tr>
40 <tr><td nowrap align=right valign=top>bool </td><td valign=bottom><a class="el" href="classConfigReader.html#n1">error</a></td></tr>
41 <tr><td> </td><td><font size=-1><em>Used to store errors.</em> <a href="#n1"></a><em></em></font><br><br></td></tr>
43 <hr><a name="_details"></a><h2>Detailed Description</h2>
44 Allows reading of values from configuration files This class allows a module to read from either the main configuration file (inspircd.conf) or from a module-specified configuration file.
46 It may either be instantiated with one parameter or none. Constructing the class using one parameter allows you to specify a path to your own configuration file, otherwise, inspircd.conf is read.
50 Definition at line <a class="el" href="modules_8h-source.html#l00469">469</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.<hr><h2>Constructor & Destructor Documentation</h2>
51 <a name="a0" doxytag="ConfigReader::ConfigReader"></a><p>
52 <table width="100%" cellpadding="2" cellspacing="0" border="0">
55 <table cellpadding="0" cellspacing="0" border="0">
57 <td class="md" nowrap valign="top"> ConfigReader::ConfigReader </td>
58 <td class="md" valign="top">( </td>
59 <td class="mdname1" valign="top" nowrap> </td>
60 <td class="md" valign="top">) </td>
61 <td class="md" nowrap></td>
68 <table cellspacing=5 cellpadding=0 border=0>
78 This constructor initialises the ConfigReader class to read the inspircd.conf file as specified when running ./configure.
80 Definition at line <a class="el" href="modules_8cpp-source.html#l00319">319</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
82 References <a class="el" href="modules_8h-source.html#l00477">cache</a>, and <a class="el" href="modules_8h-source.html#l00480">error</a>.
84 <div class="fragment"><pre>00320 {
85 00321 this-><a class="code" href="classConfigReader.html#n0">cache</a> = <span class="keyword">new</span> std::stringstream(stringstream::in | stringstream::out);
86 00322 this-><a class="code" href="classConfigReader.html#n1">error</a> = LoadConf(CONFIG_FILE,this->cache);
91 <a name="a1" doxytag="ConfigReader::ConfigReader"></a><p>
92 <table width="100%" cellpadding="2" cellspacing="0" border="0">
95 <table cellpadding="0" cellspacing="0" border="0">
97 <td class="md" nowrap valign="top"> ConfigReader::ConfigReader </td>
98 <td class="md" valign="top">( </td>
99 <td class="md" nowrap valign="top">std::string </td>
100 <td class="mdname1" valign="top" nowrap> <em>filename</em> </td>
101 <td class="md" valign="top">) </td>
102 <td class="md" nowrap></td>
109 <table cellspacing=5 cellpadding=0 border=0>
117 Overloaded constructor.
119 This constructor initialises the ConfigReader class to read a user-specified config file
121 Definition at line <a class="el" href="modules_8cpp-source.html#l00333">333</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
123 References <a class="el" href="modules_8h-source.html#l00477">cache</a>, and <a class="el" href="modules_8h-source.html#l00480">error</a>.
125 <div class="fragment"><pre>00334 {
126 00335 this-><a class="code" href="classConfigReader.html#n0">cache</a> = <span class="keyword">new</span> std::stringstream(stringstream::in | stringstream::out);
127 00336 this-><a class="code" href="classConfigReader.html#n1">error</a> = LoadConf(filename.c_str(),this-><a class="code" href="classConfigReader.html#n0">cache</a>);
132 <a name="a2" doxytag="ConfigReader::~ConfigReader"></a><p>
133 <table width="100%" cellpadding="2" cellspacing="0" border="0">
136 <table cellpadding="0" cellspacing="0" border="0">
138 <td class="md" nowrap valign="top"> ConfigReader::~ConfigReader </td>
139 <td class="md" valign="top">( </td>
140 <td class="mdname1" valign="top" nowrap> </td>
141 <td class="md" valign="top">) </td>
142 <td class="md" nowrap></td>
149 <table cellspacing=5 cellpadding=0 border=0>
159 This method destroys the ConfigReader class.
161 Definition at line <a class="el" href="modules_8cpp-source.html#l00326">326</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
163 References <a class="el" href="modules_8h-source.html#l00477">cache</a>.
165 <div class="fragment"><pre>00327 {
166 00328 <span class="keywordflow">if</span> (this-><a class="code" href="classConfigReader.html#n0">cache</a>)
167 00329 <span class="keyword">delete</span> this-><a class="code" href="classConfigReader.html#n0">cache</a>;
172 <hr><h2>Member Function Documentation</h2>
173 <a name="a4" doxytag="ConfigReader::Enumerate"></a><p>
174 <table width="100%" cellpadding="2" cellspacing="0" border="0">
177 <table cellpadding="0" cellspacing="0" border="0">
179 <td class="md" nowrap valign="top"> int ConfigReader::Enumerate </td>
180 <td class="md" valign="top">( </td>
181 <td class="md" nowrap valign="top">std::string </td>
182 <td class="mdname1" valign="top" nowrap> <em>tag</em> </td>
183 <td class="md" valign="top">) </td>
184 <td class="md" nowrap></td>
191 <table cellspacing=5 cellpadding=0 border=0>
199 Counts the number of times a given tag appears in the config file.
201 This method counts the number of times a tag appears in a config file, for use where there are several tags of the same kind, e.g. with opers and connect types. It can be used with the index value of <a class="el" href="classConfigReader.html#a3">ConfigReader::ReadValue</a> to loop through all copies of a multiple instance tag.
203 Definition at line <a class="el" href="modules_8cpp-source.html#l00347">347</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
205 <div class="fragment"><pre>00348 {
206 00349 <span class="keywordflow">return</span> EnumConf(cache,tag.c_str());
211 <a name="a3" doxytag="ConfigReader::ReadValue"></a><p>
212 <table width="100%" cellpadding="2" cellspacing="0" border="0">
215 <table cellpadding="0" cellspacing="0" border="0">
217 <td class="md" nowrap valign="top"> std::string ConfigReader::ReadValue </td>
218 <td class="md" valign="top">( </td>
219 <td class="md" nowrap valign="top">std::string </td>
220 <td class="mdname" nowrap> <em>tag</em>, </td>
225 <td class="md" nowrap>std::string </td>
226 <td class="mdname" nowrap> <em>name</em>, </td>
231 <td class="md" nowrap>int </td>
232 <td class="mdname" nowrap> <em>index</em></td>
236 <td class="md">) </td>
237 <td class="md" colspan="2"></td>
244 <table cellspacing=5 cellpadding=0 border=0>
252 Retrieves a value from the config file.
254 This method retrieves a value from the config file. Where multiple copies of the tag exist in the config file, index indicates which of the values to retrieve.
256 Definition at line <a class="el" href="modules_8cpp-source.html#l00339">339</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
258 <div class="fragment"><pre>00340 {
259 00341 <span class="keywordtype">char</span> val[MAXBUF];
260 00342 ReadConf(cache,tag.c_str(),name.c_str(),index,val);
261 00343 <span class="keywordflow">return</span> val;
266 <a name="a5" doxytag="ConfigReader::Verify"></a><p>
267 <table width="100%" cellpadding="2" cellspacing="0" border="0">
270 <table cellpadding="0" cellspacing="0" border="0">
272 <td class="md" nowrap valign="top"> bool ConfigReader::Verify </td>
273 <td class="md" valign="top">( </td>
274 <td class="mdname1" valign="top" nowrap> </td>
275 <td class="md" valign="top">) </td>
276 <td class="md" nowrap></td>
283 <table cellspacing=5 cellpadding=0 border=0>
291 Returns true if a config file is valid.
293 This method is partially implemented and will only return false if the config file does not exist or could not be opened.
295 Definition at line <a class="el" href="modules_8cpp-source.html#l00353">353</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
297 References <a class="el" href="modules_8h-source.html#l00480">error</a>.
299 <div class="fragment"><pre>00354 {
300 00355 <span class="keywordflow">return</span> this-><a class="code" href="classConfigReader.html#n1">error</a>;
305 <hr><h2>Member Data Documentation</h2>
306 <a name="n0" doxytag="ConfigReader::cache"></a><p>
307 <table width="100%" cellpadding="2" cellspacing="0" border="0">
310 <table cellpadding="0" cellspacing="0" border="0">
312 <td class="md" nowrap valign="top"> std::stringstream* ConfigReader::cache<code> [protected]</code>
317 <table cellspacing=5 cellpadding=0 border=0>
325 The contents of the configuration file This protected member should never be accessed by a module (and cannot be accessed unless the core is changed).
327 It will contain a pointer to the configuration file data with unneeded data (such as comments) stripped from it.
329 Definition at line <a class="el" href="modules_8h-source.html#l00477">477</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
331 Referenced by <a class="el" href="modules_8cpp-source.html#l00319">ConfigReader()</a>, and <a class="el" href="modules_8cpp-source.html#l00326">~ConfigReader()</a>. </td>
334 <a name="n1" doxytag="ConfigReader::error"></a><p>
335 <table width="100%" cellpadding="2" cellspacing="0" border="0">
338 <table cellpadding="0" cellspacing="0" border="0">
340 <td class="md" nowrap valign="top"> bool ConfigReader::error<code> [protected]</code>
345 <table cellspacing=5 cellpadding=0 border=0>
353 Used to store errors.
357 Definition at line <a class="el" href="modules_8h-source.html#l00480">480</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
359 Referenced by <a class="el" href="modules_8cpp-source.html#l00319">ConfigReader()</a>, and <a class="el" href="modules_8cpp-source.html#l00353">Verify()</a>. </td>
362 <hr>The documentation for this class was generated from the following files:<ul>
363 <li><a class="el" href="modules_8h-source.html">modules.h</a><li><a class="el" href="modules_8cpp-source.html">modules.cpp</a></ul>
364 <hr><address style="align: right;"><small>Generated on Wed Apr 7 19:20:37 2004 for InspIRCd by
365 <a href="http://www.doxygen.org/index.html">
366 <img src="doxygen.png" alt="doxygen" align="middle" border=0
367 width=110 height=53></a>1.3-rc3 </small></address>