aboutsummaryrefslogtreecommitdiffstats
path: root/doc/api-documentation/html/class_s_w_config.html
blob: 2e0bfaafcd050d54e34fe71373c2c7d6c3b4243e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>SWConfig class Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.2.15 -->
<center>
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="namespaces.html">Namespace List</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; </center>
<hr><h1>SWConfig  Class Reference</h1>The class to read and save settings using a file on disk. 
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="swconfig_8h-source.html">swconfig.h</a>&gt;</code>
<p>
<a href="class_s_w_config-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0>
<tr><td colspan=2><br><h2>Public Methods</h2></td></tr>
<tr><td nowrap align=right valign=top>&nbsp;</td><td valign=bottom><a class="el" href="class_s_w_config.html#a0">SWConfig</a> (const char *ifilename)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Constructor of SWConfig.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="a1" doxytag="SWConfig::~SWConfig"></a>
virtual&nbsp;</td><td valign=bottom><b>~SWConfig</b> ()</td></tr>
<tr><td nowrap align=right valign=top><a name="a2" doxytag="SWConfig::Load"></a>
virtual void&nbsp;</td><td valign=bottom><a class="el" href="class_s_w_config.html#a2">Load</a> ()</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Load from disk Load the contzent from disk.</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="a3" doxytag="SWConfig::Save"></a>
virtual void&nbsp;</td><td valign=bottom><a class="el" href="class_s_w_config.html#a3">Save</a> ()</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Save to disk Save the content of this config object to disk.</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>virtual SWConfig &amp;&nbsp;</td><td valign=bottom><a class="el" href="class_s_w_config.html#a4">operator+=</a> (SWConfig &amp;addFrom)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Merges the values of addFrom.</em> <a href="#a4">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>virtual ConfigEntMap &amp;&nbsp;</td><td valign=bottom><a class="el" href="class_s_w_config.html#a5">operator[]</a> (const char *section)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Get a section This is an easy way to get and store config values.</em> <a href="#a5">More...</a><em></em></font><br><br></td></tr>
<tr><td colspan=2><br><h2>Public Attributes</h2></td></tr>
<tr><td nowrap align=right valign=top><a name="m0" doxytag="SWConfig::filename"></a>
string&nbsp;</td><td valign=bottom><a class="el" href="class_s_w_config.html#m0">filename</a></td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>The filename used by this SWConfig object.</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="m1" doxytag="SWConfig::Sections"></a>
SectionMap&nbsp;</td><td valign=bottom><a class="el" href="class_s_w_config.html#m1">Sections</a></td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Map of available sections The map of available sections.</em></font><br><br></td></tr>
<tr><td colspan=2><br><h2>Private Methods</h2></td></tr>
<tr><td nowrap align=right valign=top><a name="c0" doxytag="SWConfig::getline"></a>
char&nbsp;</td><td valign=bottom><b>getline</b> (FILE *fp, string &amp;line)</td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
The class to read and save settings using a file on disk.
<p>

<p>
Definition at line <a class="el" href="swconfig_8h-source.html#l00044">44</a> of file <a class="el" href="swconfig_8h-source.html">swconfig.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
<a name="a0" doxytag="SWConfig::SWConfig"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> SWConfig::SWConfig </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const char *&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>ifilename</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Constructor of SWConfig.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>ifilename</em>&nbsp;</td><td>
The file, which should be used for this config. </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="swconfig_8cpp-source.html#l00027">27</a> of file <a class="el" href="swconfig_8cpp-source.html">swconfig.cpp</a>.
<p>
References <a class="el" href="swconfig_8h-source.html#l00052">filename</a>, and <a class="el" href="swconfig_8cpp-source.html#l00064">Load</a>().
<p>
<div class="fragment"><pre>00027                                          {
00028         <a class="code" href="class_s_w_config.html#m0">filename</a> = ifilename;
00029         <a class="code" href="class_s_w_config.html#a2">Load</a>();
00030 }
</pre></div>    </td>
  </tr>
</table>
<hr><h2>Member Function Documentation</h2>
<a name="a4" doxytag="SWConfig::operator+="></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> SWConfig &amp; SWConfig::operator+= </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">SWConfig &amp;&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>addFrom</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap><code> [virtual]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Merges the values of addFrom.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>The</em>&nbsp;</td><td>
config which values should be merged to this config object. Already existing values will be overwritten. </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="swconfig_8cpp-source.html#l00134">134</a> of file <a class="el" href="swconfig_8cpp-source.html">swconfig.cpp</a>.
<p>
References <a class="el" href="swconfig_8h-source.html#l00056">Sections</a>.
<p>
<div class="fragment"><pre>00135 {
00136 
00137         SectionMap::iterator section;
00138         ConfigEntMap::iterator entry, start, end;
00139 
00140         <font class="keywordflow">for</font> (section = addFrom.<a class="code" href="class_s_w_config.html#m1">Sections</a>.begin(); section != addFrom.<a class="code" href="class_s_w_config.html#m1">Sections</a>.end(); section++) {
00141                 <font class="keywordflow">for</font> (entry = (*section).second.begin(); entry != (*section).second.end(); entry++) {
00142                         start = <a class="code" href="class_s_w_config.html#m1">Sections</a>[section-&gt;first].lower_bound(entry-&gt;first);
00143                         end   = <a class="code" href="class_s_w_config.html#m1">Sections</a>[section-&gt;first].upper_bound(entry-&gt;first);
00144                         <font class="keywordflow">if</font> (start != end) {
00145                                 <font class="keywordflow">if</font> (((++start) != end)
00146                                                 || ((++(addFrom.<a class="code" href="class_s_w_config.html#m1">Sections</a>[section-&gt;first].lower_bound(entry-&gt;first))) != addFrom.<a class="code" href="class_s_w_config.html#m1">Sections</a>[section-&gt;first].upper_bound(entry-&gt;first))) {
00147                                         <font class="keywordflow">for</font> (--start; start != end; start++) {
00148                                                 <font class="keywordflow">if</font> (!strcmp(start-&gt;second.c_str(), entry-&gt;second.c_str()))
00149                                                         <font class="keywordflow">break</font>;
00150                                         }
00151                                         <font class="keywordflow">if</font> (start == end)
00152                                                 <a class="code" href="class_s_w_config.html#m1">Sections</a>[(*section).first].insert(ConfigEntMap::value_type((*entry).first, (*entry).second));
00153                                 }
00154                                 <font class="keywordflow">else</font>    <a class="code" href="class_s_w_config.html#m1">Sections</a>[section-&gt;first][entry-&gt;first.c_str()] = entry-&gt;second.c_str();
00155                         }               
00156                         <font class="keywordflow">else</font>    <a class="code" href="class_s_w_config.html#m1">Sections</a>[section-&gt;first][entry-&gt;first.c_str()] = entry-&gt;second.c_str();
00157                 }
00158         }
00159         <font class="keywordflow">return</font> *<font class="keyword">this</font>;
00160 }
</pre></div>    </td>
  </tr>
</table>
<a name="a5" doxytag="SWConfig::operator[]"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> ConfigEntMap &amp; SWConfig::operator[] </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const char *&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>section</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap><code> [virtual]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Get a section This is an easy way to get and store config values.
<p>
The following will work:<br>

<p>
<div class="fragment"><pre> <a class="code" href="class_s_w_config.html">SWConfig</a> config(<font class="stringliteral">"/home/user/.setttings"</font>);
 config[<font class="stringliteral">"Colors"</font>][<font class="stringliteral">"Background"</font>] = <font class="stringliteral">"red"</font>;
</pre></div> 
<p>
Definition at line <a class="el" href="swconfig_8cpp-source.html#l00163">163</a> of file <a class="el" href="swconfig_8cpp-source.html">swconfig.cpp</a>.
<p>
References <a class="el" href="swconfig_8h-source.html#l00056">Sections</a>.
<p>
<div class="fragment"><pre>00163                                                          {
00164     <font class="keywordflow">return</font> <a class="code" href="class_s_w_config.html#m1">Sections</a>[section];
00165 }
</pre></div>    </td>
  </tr>
</table>
<hr>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="swconfig_8h-source.html">swconfig.h</a><li><a class="el" href="swconfig_8cpp-source.html">swconfig.cpp</a></ul>
<hr><address align="right"><small>Generated on Thu Jun 20 22:13:03 2002 for The Sword Project by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border=0 
width=110 height=53></a>1.2.15 </small></address>
</body>
</html>