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>bool </td><td valign=bottom><a class="el" href="classConfigReader.html#a4">ReadFlag</a> (std::string tag, std::string name, int index)</td></tr>
34 <tr><td> </td><td><font size=-1><em>Retrieves a boolean value from the config file.</em> <a href="#a4"></a><em></em></font><br><br></td></tr>
35 <tr><td nowrap align=right valign=top>long </td><td valign=bottom><a class="el" href="classConfigReader.html#a5">ReadInteger</a> (std::string tag, std::string name, int index, bool needs_unsigned)</td></tr>
36 <tr><td> </td><td><font size=-1><em>Retrieves an integer value from the config file.</em> <a href="#a5"></a><em></em></font><br><br></td></tr>
37 <tr><td nowrap align=right valign=top>long </td><td valign=bottom><a class="el" href="classConfigReader.html#a6">GetError</a> ()</td></tr>
38 <tr><td> </td><td><font size=-1><em>Returns the last error to occur.</em> <a href="#a6"></a><em></em></font><br><br></td></tr>
39 <tr><td nowrap align=right valign=top>int </td><td valign=bottom><a class="el" href="classConfigReader.html#a7">Enumerate</a> (std::string tag)</td></tr>
40 <tr><td> </td><td><font size=-1><em>Counts the number of times a given tag appears in the config file.</em> <a href="#a7"></a><em></em></font><br><br></td></tr>
41 <tr><td nowrap align=right valign=top>bool </td><td valign=bottom><a class="el" href="classConfigReader.html#a8">Verify</a> ()</td></tr>
42 <tr><td> </td><td><font size=-1><em>Returns true if a config file is valid.</em> <a href="#a8"></a><em></em></font><br><br></td></tr>
43 <tr><td nowrap align=right valign=top>int </td><td valign=bottom><a class="el" href="classConfigReader.html#a9">EnumerateValues</a> (std::string tag, int index)</td></tr>
44 <tr><td> </td><td><font size=-1><em>Returns the number of items within a tag.</em> <a href="#a9"></a><em></em></font><br><br></td></tr>
45 <tr><td colspan=2><br><h2>Protected Attributes</h2></td></tr>
46 <tr><td nowrap align=right valign=top>std::stringstream * </td><td valign=bottom><a class="el" href="classConfigReader.html#n0">cache</a></td></tr>
47 <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>
48 <tr><td nowrap align=right valign=top>bool </td><td valign=bottom><a class="el" href="classConfigReader.html#n1">readerror</a></td></tr>
49 <tr><td> </td><td><font size=-1><em>Used to store errors.</em> <a href="#n1"></a><em></em></font><br><br></td></tr>
50 <tr><td nowrap align=right valign=top>long </td><td valign=bottom><a class="el" href="classConfigReader.html#n2">error</a></td></tr>
52 <hr><a name="_details"></a><h2>Detailed Description</h2>
53 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.
55 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.
59 Definition at line <a class="el" href="modules_8h-source.html#l00618">618</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.<hr><h2>Constructor & Destructor Documentation</h2>
60 <a name="a0" doxytag="ConfigReader::ConfigReader"></a><p>
61 <table width="100%" cellpadding="2" cellspacing="0" border="0">
64 <table cellpadding="0" cellspacing="0" border="0">
66 <td class="md" nowrap valign="top"> ConfigReader::ConfigReader </td>
67 <td class="md" valign="top">( </td>
68 <td class="mdname1" valign="top" nowrap> </td>
69 <td class="md" valign="top">) </td>
70 <td class="md" nowrap></td>
77 <table cellspacing=5 cellpadding=0 border=0>
87 This constructor initialises the ConfigReader class to read the inspircd.conf file as specified when running ./configure.
89 Definition at line <a class="el" href="modules_8cpp-source.html#l00553">553</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
91 References <a class="el" href="modules_8h-source.html#l00626">cache</a>, <a class="el" href="modules_8h-source.html#l00610">CONF_FILE_NOT_FOUND</a>, <a class="el" href="modules_8h-source.html#l00630">error</a>, and <a class="el" href="modules_8h-source.html#l00629">readerror</a>.
93 <div class="fragment"><pre>00554 {
94 00555 this-><a class="code" href="classConfigReader.html#n0">cache</a> = <span class="keyword">new</span> std::stringstream(std::stringstream::in | std::stringstream::out);
95 00556 this-><a class="code" href="classConfigReader.html#n1">readerror</a> = LoadConf(CONFIG_FILE,this->cache);
96 00557 <span class="keywordflow">if</span> (!this-><a class="code" href="classConfigReader.html#n1">readerror</a>)
97 00558 this-><a class="code" href="classConfigReader.html#n2">error</a> = <a class="code" href="modules_8h.html#a25">CONF_FILE_NOT_FOUND</a>;
102 <a name="a1" doxytag="ConfigReader::ConfigReader"></a><p>
103 <table width="100%" cellpadding="2" cellspacing="0" border="0">
106 <table cellpadding="0" cellspacing="0" border="0">
108 <td class="md" nowrap valign="top"> ConfigReader::ConfigReader </td>
109 <td class="md" valign="top">( </td>
110 <td class="md" nowrap valign="top">std::string </td>
111 <td class="mdname1" valign="top" nowrap> <em>filename</em> </td>
112 <td class="md" valign="top">) </td>
113 <td class="md" nowrap></td>
120 <table cellspacing=5 cellpadding=0 border=0>
128 Overloaded constructor.
130 This constructor initialises the ConfigReader class to read a user-specified config file
132 Definition at line <a class="el" href="modules_8cpp-source.html#l00569">569</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
134 References <a class="el" href="modules_8h-source.html#l00626">cache</a>, <a class="el" href="modules_8h-source.html#l00610">CONF_FILE_NOT_FOUND</a>, <a class="el" href="modules_8h-source.html#l00630">error</a>, and <a class="el" href="modules_8h-source.html#l00629">readerror</a>.
136 <div class="fragment"><pre>00570 {
137 00571 this-><a class="code" href="classConfigReader.html#n0">cache</a> = <span class="keyword">new</span> std::stringstream(std::stringstream::in | std::stringstream::out);
138 00572 this-><a class="code" href="classConfigReader.html#n1">readerror</a> = LoadConf(filename.c_str(),this-><a class="code" href="classConfigReader.html#n0">cache</a>);
139 00573 <span class="keywordflow">if</span> (!this-><a class="code" href="classConfigReader.html#n1">readerror</a>)
140 00574 this-><a class="code" href="classConfigReader.html#n2">error</a> = <a class="code" href="modules_8h.html#a25">CONF_FILE_NOT_FOUND</a>;
145 <a name="a2" doxytag="ConfigReader::~ConfigReader"></a><p>
146 <table width="100%" cellpadding="2" cellspacing="0" border="0">
149 <table cellpadding="0" cellspacing="0" border="0">
151 <td class="md" nowrap valign="top"> ConfigReader::~ConfigReader </td>
152 <td class="md" valign="top">( </td>
153 <td class="mdname1" valign="top" nowrap> </td>
154 <td class="md" valign="top">) </td>
155 <td class="md" nowrap></td>
162 <table cellspacing=5 cellpadding=0 border=0>
172 This method destroys the ConfigReader class.
174 Definition at line <a class="el" href="modules_8cpp-source.html#l00562">562</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
176 References <a class="el" href="modules_8h-source.html#l00626">cache</a>.
178 <div class="fragment"><pre>00563 {
179 00564 <span class="keywordflow">if</span> (this-><a class="code" href="classConfigReader.html#n0">cache</a>)
180 00565 <span class="keyword">delete</span> this-><a class="code" href="classConfigReader.html#n0">cache</a>;
185 <hr><h2>Member Function Documentation</h2>
186 <a name="a7" doxytag="ConfigReader::Enumerate"></a><p>
187 <table width="100%" cellpadding="2" cellspacing="0" border="0">
190 <table cellpadding="0" cellspacing="0" border="0">
192 <td class="md" nowrap valign="top"> int ConfigReader::Enumerate </td>
193 <td class="md" valign="top">( </td>
194 <td class="md" nowrap valign="top">std::string </td>
195 <td class="mdname1" valign="top" nowrap> <em>tag</em> </td>
196 <td class="md" valign="top">) </td>
197 <td class="md" nowrap></td>
204 <table cellspacing=5 cellpadding=0 border=0>
212 Counts the number of times a given tag appears in the config file.
214 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.
216 Definition at line <a class="el" href="modules_8cpp-source.html#l00647">647</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
218 <div class="fragment"><pre>00648 {
219 00649 <span class="keywordflow">return</span> EnumConf(cache,tag.c_str());
224 <a name="a9" doxytag="ConfigReader::EnumerateValues"></a><p>
225 <table width="100%" cellpadding="2" cellspacing="0" border="0">
228 <table cellpadding="0" cellspacing="0" border="0">
230 <td class="md" nowrap valign="top"> int ConfigReader::EnumerateValues </td>
231 <td class="md" valign="top">( </td>
232 <td class="md" nowrap valign="top">std::string </td>
233 <td class="mdname" nowrap> <em>tag</em>, </td>
238 <td class="md" nowrap>int </td>
239 <td class="mdname" nowrap> <em>index</em></td>
243 <td class="md">) </td>
244 <td class="md" colspan="2"></td>
251 <table cellspacing=5 cellpadding=0 border=0>
259 Returns the number of items within a tag.
261 For example if the tag was <test tag="blah" data="foo"> then this function would return 2. Spaces and newlines both qualify as valid seperators between values.
263 Definition at line <a class="el" href="modules_8cpp-source.html#l00652">652</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
265 <div class="fragment"><pre>00653 {
266 00654 <span class="keywordflow">return</span> EnumValues(cache, tag.c_str(), index);
271 <a name="a6" doxytag="ConfigReader::GetError"></a><p>
272 <table width="100%" cellpadding="2" cellspacing="0" border="0">
275 <table cellpadding="0" cellspacing="0" border="0">
277 <td class="md" nowrap valign="top"> long ConfigReader::GetError </td>
278 <td class="md" valign="top">( </td>
279 <td class="mdname1" valign="top" nowrap> </td>
280 <td class="md" valign="top">) </td>
281 <td class="md" nowrap></td>
288 <table cellspacing=5 cellpadding=0 border=0>
296 Returns the last error to occur.
298 Valid errors can be found by looking in <a class="el" href="modules_8h.html">modules.h</a>. Any nonzero value indicates an error condition. A call to <a class="el" href="classConfigReader.html#a6">GetError()</a> resets the error flag back to 0.
300 Definition at line <a class="el" href="modules_8cpp-source.html#l00639">639</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
302 References <a class="el" href="modules_8h-source.html#l00630">error</a>.
304 <div class="fragment"><pre>00640 {
305 00641 <span class="keywordtype">long</span> olderr = this-><a class="code" href="classConfigReader.html#n2">error</a>;
306 00642 this->error = 0;
307 00643 <span class="keywordflow">return</span> olderr;
312 <a name="a4" doxytag="ConfigReader::ReadFlag"></a><p>
313 <table width="100%" cellpadding="2" cellspacing="0" border="0">
316 <table cellpadding="0" cellspacing="0" border="0">
318 <td class="md" nowrap valign="top"> bool ConfigReader::ReadFlag </td>
319 <td class="md" valign="top">( </td>
320 <td class="md" nowrap valign="top">std::string </td>
321 <td class="mdname" nowrap> <em>tag</em>, </td>
326 <td class="md" nowrap>std::string </td>
327 <td class="mdname" nowrap> <em>name</em>, </td>
332 <td class="md" nowrap>int </td>
333 <td class="mdname" nowrap> <em>index</em></td>
337 <td class="md">) </td>
338 <td class="md" colspan="2"></td>
345 <table cellspacing=5 cellpadding=0 border=0>
353 Retrieves a boolean value from the config file.
355 This method retrieves a boolean value from the config file. Where multiple copies of the tag exist in the config file, index indicates which of the values to retrieve. The values "1", "yes" and "true" in the config file count as true to ReadFlag, and any other value counts as false.
357 Definition at line <a class="el" href="modules_8cpp-source.html#l00593">593</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
359 References <a class="el" href="modules_8h-source.html#l00609">CONF_VALUE_NOT_FOUND</a>, and <a class="el" href="modules_8h-source.html#l00630">error</a>.
361 <div class="fragment"><pre>00594 {
362 00595 <span class="keywordtype">char</span> val[MAXBUF];
363 00596 <span class="keywordtype">char</span> t[MAXBUF];
364 00597 <span class="keywordtype">char</span> n[MAXBUF];
365 00598 strncpy(t,tag.c_str(),MAXBUF);
366 00599 strncpy(n,name.c_str(),MAXBUF);
367 00600 <span class="keywordtype">int</span> res = ReadConf(cache,t,n,index,val);
368 00601 <span class="keywordflow">if</span> (!res)
370 00603 this-><a class="code" href="classConfigReader.html#n2">error</a> = <a class="code" href="modules_8h.html#a24">CONF_VALUE_NOT_FOUND</a>;
371 00604 <span class="keywordflow">return</span> <span class="keyword">false</span>;
373 00606 std::string s = val;
374 00607 <span class="keywordflow">return</span> ((s == <span class="stringliteral">"yes"</span>) || (s == <span class="stringliteral">"YES"</span>) || (s == <span class="stringliteral">"true"</span>) || (s == <span class="stringliteral">"TRUE"</span>) || (s == <span class="stringliteral">"1"</span>));
379 <a name="a5" doxytag="ConfigReader::ReadInteger"></a><p>
380 <table width="100%" cellpadding="2" cellspacing="0" border="0">
383 <table cellpadding="0" cellspacing="0" border="0">
385 <td class="md" nowrap valign="top"> long ConfigReader::ReadInteger </td>
386 <td class="md" valign="top">( </td>
387 <td class="md" nowrap valign="top">std::string </td>
388 <td class="mdname" nowrap> <em>tag</em>, </td>
393 <td class="md" nowrap>std::string </td>
394 <td class="mdname" nowrap> <em>name</em>, </td>
399 <td class="md" nowrap>int </td>
400 <td class="mdname" nowrap> <em>index</em>, </td>
405 <td class="md" nowrap>bool </td>
406 <td class="mdname" nowrap> <em>needs_unsigned</em></td>
410 <td class="md">) </td>
411 <td class="md" colspan="2"></td>
418 <table cellspacing=5 cellpadding=0 border=0>
426 Retrieves an integer value from the config file.
428 This method retrieves an integer value from the config file. Where multiple copies of the tag exist in the config file, index indicates which of the values to retrieve. Any invalid integer values in the tag will cause the objects error value to be set, and any call to <a class="el" href="classConfigReader.html#a6">GetError()</a> will return CONF_INVALID_NUMBER to be returned. needs_unsigned is set if the number must be unsigned. If a signed number is placed into a tag which is specified unsigned, 0 will be returned and <a class="el" href="classConfigReader.html#a6">GetError()</a> will return CONF_NOT_UNSIGNED
430 Definition at line <a class="el" href="modules_8cpp-source.html#l00610">610</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
432 References <a class="el" href="modules_8h-source.html#l00607">CONF_NOT_A_NUMBER</a>, <a class="el" href="modules_8h-source.html#l00608">CONF_NOT_UNSIGNED</a>, <a class="el" href="modules_8h-source.html#l00609">CONF_VALUE_NOT_FOUND</a>, and <a class="el" href="modules_8h-source.html#l00630">error</a>.
434 <div class="fragment"><pre>00611 {
435 00612 <span class="keywordtype">char</span> val[MAXBUF];
436 00613 <span class="keywordtype">char</span> t[MAXBUF];
437 00614 <span class="keywordtype">char</span> n[MAXBUF];
438 00615 strncpy(t,tag.c_str(),MAXBUF);
439 00616 strncpy(n,name.c_str(),MAXBUF);
440 00617 <span class="keywordtype">int</span> res = ReadConf(cache,t,n,index,val);
441 00618 <span class="keywordflow">if</span> (!res)
443 00620 this-><a class="code" href="classConfigReader.html#n2">error</a> = <a class="code" href="modules_8h.html#a24">CONF_VALUE_NOT_FOUND</a>;
444 00621 <span class="keywordflow">return</span> 0;
446 00623 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < strlen(val); i++)
448 00625 <span class="keywordflow">if</span> (!isdigit(val[i]))
450 00627 this-><a class="code" href="classConfigReader.html#n2">error</a> = <a class="code" href="modules_8h.html#a22">CONF_NOT_A_NUMBER</a>;
451 00628 <span class="keywordflow">return</span> 0;
454 00631 <span class="keywordflow">if</span> ((needs_unsigned) && (atoi(val)<0))
456 00633 this-><a class="code" href="classConfigReader.html#n2">error</a> = <a class="code" href="modules_8h.html#a23">CONF_NOT_UNSIGNED</a>;
457 00634 <span class="keywordflow">return</span> 0;
459 00636 <span class="keywordflow">return</span> atoi(val);
464 <a name="a3" doxytag="ConfigReader::ReadValue"></a><p>
465 <table width="100%" cellpadding="2" cellspacing="0" border="0">
468 <table cellpadding="0" cellspacing="0" border="0">
470 <td class="md" nowrap valign="top"> std::string ConfigReader::ReadValue </td>
471 <td class="md" valign="top">( </td>
472 <td class="md" nowrap valign="top">std::string </td>
473 <td class="mdname" nowrap> <em>tag</em>, </td>
478 <td class="md" nowrap>std::string </td>
479 <td class="mdname" nowrap> <em>name</em>, </td>
484 <td class="md" nowrap>int </td>
485 <td class="mdname" nowrap> <em>index</em></td>
489 <td class="md">) </td>
490 <td class="md" colspan="2"></td>
497 <table cellspacing=5 cellpadding=0 border=0>
505 Retrieves a value from the config file.
507 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.
509 Definition at line <a class="el" href="modules_8cpp-source.html#l00577">577</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
511 References <a class="el" href="modules_8h-source.html#l00609">CONF_VALUE_NOT_FOUND</a>, and <a class="el" href="modules_8h-source.html#l00630">error</a>.
513 <div class="fragment"><pre>00578 {
514 00579 <span class="keywordtype">char</span> val[MAXBUF];
515 00580 <span class="keywordtype">char</span> t[MAXBUF];
516 00581 <span class="keywordtype">char</span> n[MAXBUF];
517 00582 strncpy(t,tag.c_str(),MAXBUF);
518 00583 strncpy(n,name.c_str(),MAXBUF);
519 00584 <span class="keywordtype">int</span> res = ReadConf(cache,t,n,index,val);
520 00585 <span class="keywordflow">if</span> (!res)
522 00587 this-><a class="code" href="classConfigReader.html#n2">error</a> = <a class="code" href="modules_8h.html#a24">CONF_VALUE_NOT_FOUND</a>;
523 00588 <span class="keywordflow">return</span> <span class="stringliteral">""</span>;
525 00590 <span class="keywordflow">return</span> std::string(val);
530 <a name="a8" doxytag="ConfigReader::Verify"></a><p>
531 <table width="100%" cellpadding="2" cellspacing="0" border="0">
534 <table cellpadding="0" cellspacing="0" border="0">
536 <td class="md" nowrap valign="top"> bool ConfigReader::Verify </td>
537 <td class="md" valign="top">( </td>
538 <td class="mdname1" valign="top" nowrap> </td>
539 <td class="md" valign="top">) </td>
540 <td class="md" nowrap></td>
547 <table cellspacing=5 cellpadding=0 border=0>
555 Returns true if a config file is valid.
557 This method is partially implemented and will only return false if the config file does not exist or could not be opened.
559 Definition at line <a class="el" href="modules_8cpp-source.html#l00657">657</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
561 References <a class="el" href="modules_8h-source.html#l00629">readerror</a>.
563 <div class="fragment"><pre>00658 {
564 00659 <span class="keywordflow">return</span> this-><a class="code" href="classConfigReader.html#n1">readerror</a>;
569 <hr><h2>Member Data Documentation</h2>
570 <a name="n0" doxytag="ConfigReader::cache"></a><p>
571 <table width="100%" cellpadding="2" cellspacing="0" border="0">
574 <table cellpadding="0" cellspacing="0" border="0">
576 <td class="md" nowrap valign="top"> std::stringstream* ConfigReader::cache<code> [protected]</code>
581 <table cellspacing=5 cellpadding=0 border=0>
589 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).
591 It will contain a pointer to the configuration file data with unneeded data (such as comments) stripped from it.
593 Definition at line <a class="el" href="modules_8h-source.html#l00626">626</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
595 Referenced by <a class="el" href="modules_8cpp-source.html#l00553">ConfigReader()</a>, and <a class="el" href="modules_8cpp-source.html#l00562">~ConfigReader()</a>. </td>
598 <a name="n2" doxytag="ConfigReader::error"></a><p>
599 <table width="100%" cellpadding="2" cellspacing="0" border="0">
602 <table cellpadding="0" cellspacing="0" border="0">
604 <td class="md" nowrap valign="top"> long ConfigReader::error<code> [protected]</code>
609 <table cellspacing=5 cellpadding=0 border=0>
619 Definition at line <a class="el" href="modules_8h-source.html#l00630">630</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
621 Referenced by <a class="el" href="modules_8cpp-source.html#l00553">ConfigReader()</a>, <a class="el" href="modules_8cpp-source.html#l00639">GetError()</a>, <a class="el" href="modules_8cpp-source.html#l00593">ReadFlag()</a>, <a class="el" href="modules_8cpp-source.html#l00610">ReadInteger()</a>, and <a class="el" href="modules_8cpp-source.html#l00577">ReadValue()</a>. </td>
624 <a name="n1" doxytag="ConfigReader::readerror"></a><p>
625 <table width="100%" cellpadding="2" cellspacing="0" border="0">
628 <table cellpadding="0" cellspacing="0" border="0">
630 <td class="md" nowrap valign="top"> bool ConfigReader::readerror<code> [protected]</code>
635 <table cellspacing=5 cellpadding=0 border=0>
643 Used to store errors.
647 Definition at line <a class="el" href="modules_8h-source.html#l00629">629</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
649 Referenced by <a class="el" href="modules_8cpp-source.html#l00553">ConfigReader()</a>, and <a class="el" href="modules_8cpp-source.html#l00657">Verify()</a>. </td>
652 <hr>The documentation for this class was generated from the following files:<ul>
653 <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>
654 <hr><address style="align: right;"><small>Generated on Sun May 2 00:09:32 2004 for InspIRCd by
655 <a href="http://www.doxygen.org/index.html">
656 <img src="doxygen.png" alt="doxygen" align="middle" border=0
657 width=110 height=53></a>1.3-rc3 </small></address>