30
30
<code>#include <<a class="el" href="sbuild-basic-keyfile_8h-source.html">sbuild-basic-keyfile.h</a>></code>
32
Inheritance diagram for sbuild::basic_keyfile< K, P >:<p><center><img src="classsbuild_1_1basic__keyfile__inherit__graph.png" border="0" usemap="#sbuild_1_1basic__keyfile_3_01K_00_01P_01_4__inherit__map" alt="Inheritance graph"></center>
32
<div class="dynheader">
33
Inheritance diagram for sbuild::basic_keyfile< K, P >:</div>
34
<div class="dynsection">
35
<p><center><img src="classsbuild_1_1basic__keyfile__inherit__graph.png" border="0" usemap="#sbuild_1_1basic__keyfile_3_01K_00_01P_01_4__inherit__map" alt="Inheritance graph"></center>
33
36
<map name="sbuild_1_1basic__keyfile_3_01K_00_01P_01_4__inherit__map">
34
<area shape="rect" href="classsbuild_1_1keyfile__base.html" title="Base class for key-value configuration file formats." alt="" coords="29,5,157,32"></map>
35
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center>Collaboration diagram for sbuild::basic_keyfile< K, P >:<p><center><img src="classsbuild_1_1basic__keyfile__coll__graph.png" border="0" usemap="#sbuild_1_1basic__keyfile_3_01K_00_01P_01_4__coll__map" alt="Collaboration graph"></center>
37
<area shape="rect" href="classsbuild_1_1keyfile__base.html" title="Base class for key-value configuration file formats." alt="" coords="33,6,177,33"></map>
38
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center></div>
39
<div class="dynheader">
40
Collaboration diagram for sbuild::basic_keyfile< K, P >:</div>
41
<div class="dynsection">
42
<p><center><img src="classsbuild_1_1basic__keyfile__coll__graph.png" border="0" usemap="#sbuild_1_1basic__keyfile_3_01K_00_01P_01_4__coll__map" alt="Collaboration graph"></center>
36
43
<map name="sbuild_1_1basic__keyfile_3_01K_00_01P_01_4__coll__map">
37
<area shape="rect" href="classsbuild_1_1keyfile__base.html" title="Base class for key-value configuration file formats." alt="" coords="5,5,133,32"><area shape="rect" title="STL class." alt="" coords="157,5,269,32"><area shape="rect" title="groups" alt="" coords="199,28,207,36"><area shape="rect" title="groups" alt="" coords="148,92,156,100"></map>
38
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center><a href="classsbuild_1_1basic__keyfile-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
44
<area shape="rect" href="classsbuild_1_1keyfile__base.html" title="Base class for key-value configuration file formats." alt="" coords="5,6,149,33"><area shape="rect" title="STL class." alt="" coords="173,6,304,33"></map>
45
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center></div>
48
<a href="classsbuild_1_1basic__keyfile-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
50
<tr><td colspan="2"><br><h2>Public Types</h2></td></tr>
51
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef K::group_name_type </td><td class="memItemRight" valign="bottom"><a class="el" href="classsbuild_1_1basic__keyfile.html#75bff2ee8dcfcdec69dd488d6c7618ba">group_name_type</a></td></tr>
53
<tr><td class="mdescLeft"> </td><td class="mdescRight">Group name. <a href="#75bff2ee8dcfcdec69dd488d6c7618ba"></a><br></td></tr>
54
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef K::key_type </td><td class="memItemRight" valign="bottom"><a class="el" href="classsbuild_1_1basic__keyfile.html#bd06c96d62489147f1fea64f5075cb89">key_type</a></td></tr>
56
<tr><td class="mdescLeft"> </td><td class="mdescRight">Key name. <a href="#bd06c96d62489147f1fea64f5075cb89"></a><br></td></tr>
57
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef K::value_type </td><td class="memItemRight" valign="bottom"><a class="el" href="classsbuild_1_1basic__keyfile.html#4be8fe0fdb9830b3f2c0dc675fcc5dda">value_type</a></td></tr>
59
<tr><td class="mdescLeft"> </td><td class="mdescRight">Value. <a href="#4be8fe0fdb9830b3f2c0dc675fcc5dda"></a><br></td></tr>
60
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef K::comment_type </td><td class="memItemRight" valign="bottom"><a class="el" href="classsbuild_1_1basic__keyfile.html#4e5ed7946f50a093ff30fe9b1d746794">comment_type</a></td></tr>
62
<tr><td class="mdescLeft"> </td><td class="mdescRight">Comment. <a href="#4e5ed7946f50a093ff30fe9b1d746794"></a><br></td></tr>
63
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef K::size_type </td><td class="memItemRight" valign="bottom"><a class="el" href="classsbuild_1_1basic__keyfile.html#033f76432e9753f90d9835c8a6f158cf">size_type</a></td></tr>
65
<tr><td class="mdescLeft"> </td><td class="mdescRight">Line number. <a href="#033f76432e9753f90d9835c8a6f158cf"></a><br></td></tr>
40
66
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
41
67
<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classsbuild_1_1basic__keyfile.html#cdaf14a3a9ed568e22d71564da3619e8">basic_keyfile</a> ()</td></tr>
50
76
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="classsbuild_1_1basic__keyfile.html#ecaf8f14b72858bf4c032ca62e35728b">~basic_keyfile</a> ()</td></tr>
52
78
<tr><td class="mdescLeft"> </td><td class="mdescRight">The destructor. <a href="#ecaf8f14b72858bf4c032ca62e35728b"></a><br></td></tr>
53
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="namespacesbuild.html#4268c3202ab4b20cbebf347a6d69393f">string_list</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classsbuild_1_1basic__keyfile.html#83a672ef8819f738aab7483661b2aee2">get_groups</a> () const</td></tr>
79
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="namespacesbuild.html#4268c3202ab4b20cbebf347a6d69393f">string_list</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classsbuild_1_1basic__keyfile.html#507b908cbd28467a067f0b67e90346c2">get_groups</a> () const </td></tr>
55
<tr><td class="mdescLeft"> </td><td class="mdescRight">Get a list of groups. <a href="#83a672ef8819f738aab7483661b2aee2"></a><br></td></tr>
81
<tr><td class="mdescLeft"> </td><td class="mdescRight">Get a list of groups. <a href="#507b908cbd28467a067f0b67e90346c2"></a><br></td></tr>
56
82
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="namespacesbuild.html#4268c3202ab4b20cbebf347a6d69393f">string_list</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classsbuild_1_1basic__keyfile.html#12374af817eba33b266a37a91fc309aa">get_keys</a> (<a class="el" href="classsbuild_1_1basic__keyfile.html#75bff2ee8dcfcdec69dd488d6c7618ba">group_name_type</a> const &group) const </td></tr>
58
84
<tr><td class="mdescLeft"> </td><td class="mdescRight">Get a list of keys in a group. <a href="#12374af817eba33b266a37a91fc309aa"></a><br></td></tr>
85
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classsbuild_1_1basic__keyfile.html#dc9b9a190a245dd6b17b9f76b24c5c6e">check_keys</a> (<a class="el" href="classsbuild_1_1basic__keyfile.html#75bff2ee8dcfcdec69dd488d6c7618ba">group_name_type</a> const &group, <a class="el" href="namespacesbuild.html#4268c3202ab4b20cbebf347a6d69393f">string_list</a> const &keys) const </td></tr>
87
<tr><td class="mdescLeft"> </td><td class="mdescRight">Check for unused keys in a group. <a href="#dc9b9a190a245dd6b17b9f76b24c5c6e"></a><br></td></tr>
59
88
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classsbuild_1_1basic__keyfile.html#5dac995b8c9d48a2a92783949fa766bb">has_group</a> (<a class="el" href="classsbuild_1_1basic__keyfile.html#75bff2ee8dcfcdec69dd488d6c7618ba">group_name_type</a> const &group) const </td></tr>
61
90
<tr><td class="mdescLeft"> </td><td class="mdescRight">Check if a group exists. <a href="#5dac995b8c9d48a2a92783949fa766bb"></a><br></td></tr>
94
123
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classsbuild_1_1basic__keyfile.html#bf4a3a293fede8eb4b3691bde6d5d04e">get_locale_string</a> (<a class="el" href="classsbuild_1_1basic__keyfile.html#75bff2ee8dcfcdec69dd488d6c7618ba">group_name_type</a> const &group, <a class="el" href="classsbuild_1_1basic__keyfile.html#bd06c96d62489147f1fea64f5075cb89">key_type</a> const &key, <a class="el" href="classsbuild_1_1keyfile__base.html#aeacb75e5d321f167e0f8a315a9bc436">priority</a> <a class="el" href="classsbuild_1_1keyfile__base.html#aeacb75e5d321f167e0f8a315a9bc436">priority</a>, std::string &value) const </td></tr>
96
125
<tr><td class="mdescLeft"> </td><td class="mdescRight">Get a localised key string value. <a href="#bf4a3a293fede8eb4b3691bde6d5d04e"></a><br></td></tr>
97
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classsbuild_1_1basic__keyfile.html#252386c9aded558c42c5ae6e2a7184d0">get_locale_string</a> (<a class="el" href="classsbuild_1_1basic__keyfile.html#75bff2ee8dcfcdec69dd488d6c7618ba">group_name_type</a> const &group, <a class="el" href="classsbuild_1_1basic__keyfile.html#bd06c96d62489147f1fea64f5075cb89">key_type</a> const &key, std::string const &locale, std::string &value) const</td></tr>
126
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classsbuild_1_1basic__keyfile.html#70f342bbf6768a709a2c268f708941f8">get_locale_string</a> (<a class="el" href="classsbuild_1_1basic__keyfile.html#75bff2ee8dcfcdec69dd488d6c7618ba">group_name_type</a> const &group, <a class="el" href="classsbuild_1_1basic__keyfile.html#bd06c96d62489147f1fea64f5075cb89">key_type</a> const &key, std::string const &locale, std::string &value) const </td></tr>
99
<tr><td class="mdescLeft"> </td><td class="mdescRight">Get a localised key string value for a specific locale. <a href="#252386c9aded558c42c5ae6e2a7184d0"></a><br></td></tr>
128
<tr><td class="mdescLeft"> </td><td class="mdescRight">Get a localised key string value for a specific locale. <a href="#70f342bbf6768a709a2c268f708941f8"></a><br></td></tr>
100
129
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classsbuild_1_1basic__keyfile.html#27ad24cea561e4dd4803ab1a2b40d235">get_locale_string</a> (<a class="el" href="classsbuild_1_1basic__keyfile.html#75bff2ee8dcfcdec69dd488d6c7618ba">group_name_type</a> const &group, <a class="el" href="classsbuild_1_1basic__keyfile.html#bd06c96d62489147f1fea64f5075cb89">key_type</a> const &key, std::string const &locale, <a class="el" href="classsbuild_1_1keyfile__base.html#aeacb75e5d321f167e0f8a315a9bc436">priority</a> <a class="el" href="classsbuild_1_1keyfile__base.html#aeacb75e5d321f167e0f8a315a9bc436">priority</a>, std::string &value) const </td></tr>
102
131
<tr><td class="mdescLeft"> </td><td class="mdescRight">Get a localised key string value for a specific locale. <a href="#27ad24cea561e4dd4803ab1a2b40d235"></a><br></td></tr>
176
205
<tr><td class="mdescLeft"> </td><td class="mdescRight">Get a key list value and set it by reference in an object using an object method. <a href="#83d06158812d03147772f6cd76746209"></a><br></td></tr>
177
206
<tr><td colspan="2"><br><h2>Private Types</h2></td></tr>
178
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef K::group_name_type </td><td class="memItemRight" valign="bottom"><a class="el" href="classsbuild_1_1basic__keyfile.html#75bff2ee8dcfcdec69dd488d6c7618ba">group_name_type</a></td></tr>
180
<tr><td class="mdescLeft"> </td><td class="mdescRight">Group name. <a href="#75bff2ee8dcfcdec69dd488d6c7618ba"></a><br></td></tr>
181
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef K::key_type </td><td class="memItemRight" valign="bottom"><a class="el" href="classsbuild_1_1basic__keyfile.html#bd06c96d62489147f1fea64f5075cb89">key_type</a></td></tr>
183
<tr><td class="mdescLeft"> </td><td class="mdescRight">Key name. <a href="#bd06c96d62489147f1fea64f5075cb89"></a><br></td></tr>
184
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef K::value_type </td><td class="memItemRight" valign="bottom"><a class="el" href="classsbuild_1_1basic__keyfile.html#4be8fe0fdb9830b3f2c0dc675fcc5dda">value_type</a></td></tr>
186
<tr><td class="mdescLeft"> </td><td class="mdescRight">Value. <a href="#4be8fe0fdb9830b3f2c0dc675fcc5dda"></a><br></td></tr>
187
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef K::comment_type </td><td class="memItemRight" valign="bottom"><a class="el" href="classsbuild_1_1basic__keyfile.html#4e5ed7946f50a093ff30fe9b1d746794">comment_type</a></td></tr>
189
<tr><td class="mdescLeft"> </td><td class="mdescRight">Comment. <a href="#4e5ed7946f50a093ff30fe9b1d746794"></a><br></td></tr>
190
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef K::size_type </td><td class="memItemRight" valign="bottom"><a class="el" href="classsbuild_1_1basic__keyfile.html#033f76432e9753f90d9835c8a6f158cf">size_type</a></td></tr>
192
<tr><td class="mdescLeft"> </td><td class="mdescRight">Line number. <a href="#033f76432e9753f90d9835c8a6f158cf"></a><br></td></tr>
193
207
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef P </td><td class="memItemRight" valign="bottom"><a class="el" href="classsbuild_1_1basic__keyfile.html#862ed7f1ed56caa83d42f5008ef46883">parse_type</a></td></tr>
195
209
<tr><td class="mdescLeft"> </td><td class="mdescRight">Parse type. <a href="#862ed7f1ed56caa83d42f5008ef46883"></a><br></td></tr>
196
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef std::tr1::tuple< <a class="el" href="classsbuild_1_1basic__keyfile.html#bd06c96d62489147f1fea64f5075cb89">key_type</a>,<br>
197
<a class="el" href="classsbuild_1_1basic__keyfile.html#4be8fe0fdb9830b3f2c0dc675fcc5dda">value_type</a>, <a class="el" href="classsbuild_1_1basic__keyfile.html#4e5ed7946f50a093ff30fe9b1d746794">comment_type</a>,<br>
198
<a class="el" href="classsbuild_1_1basic__keyfile.html#033f76432e9753f90d9835c8a6f158cf">size_type</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classsbuild_1_1basic__keyfile.html#9ff558ada3131c6810855830578a9aaa">item_type</a></td></tr>
210
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef std::tr1::tuple<br>
211
< <a class="el" href="classsbuild_1_1basic__keyfile.html#bd06c96d62489147f1fea64f5075cb89">key_type</a>, <a class="el" href="classsbuild_1_1basic__keyfile.html#4be8fe0fdb9830b3f2c0dc675fcc5dda">value_type</a>,<br>
212
<a class="el" href="classsbuild_1_1basic__keyfile.html#4e5ed7946f50a093ff30fe9b1d746794">comment_type</a>, <a class="el" href="classsbuild_1_1basic__keyfile.html#033f76432e9753f90d9835c8a6f158cf">size_type</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classsbuild_1_1basic__keyfile.html#9ff558ada3131c6810855830578a9aaa">item_type</a></td></tr>
200
214
<tr><td class="mdescLeft"> </td><td class="mdescRight">Key-value-comment-line tuple. <a href="#9ff558ada3131c6810855830578a9aaa"></a><br></td></tr>
201
215
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef std::map< <a class="el" href="classsbuild_1_1basic__keyfile.html#bd06c96d62489147f1fea64f5075cb89">key_type</a>,<br>
202
216
<a class="el" href="classsbuild_1_1basic__keyfile.html#9ff558ada3131c6810855830578a9aaa">item_type</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classsbuild_1_1basic__keyfile.html#13276de64eb9ecdc6bd667fb47da6f49">item_map_type</a></td></tr>
204
218
<tr><td class="mdescLeft"> </td><td class="mdescRight">Map between key name and key-value-comment tuple. <a href="#13276de64eb9ecdc6bd667fb47da6f49"></a><br></td></tr>
205
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef std::tr1::tuple< <a class="el" href="classsbuild_1_1basic__keyfile.html#75bff2ee8dcfcdec69dd488d6c7618ba">group_name_type</a>,<br>
219
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef std::tr1::tuple<br>
220
< <a class="el" href="classsbuild_1_1basic__keyfile.html#75bff2ee8dcfcdec69dd488d6c7618ba">group_name_type</a>,<br>
206
221
<a class="el" href="classsbuild_1_1basic__keyfile.html#13276de64eb9ecdc6bd667fb47da6f49">item_map_type</a>, <a class="el" href="classsbuild_1_1basic__keyfile.html#4e5ed7946f50a093ff30fe9b1d746794">comment_type</a>,<br>
207
222
<a class="el" href="classsbuild_1_1basic__keyfile.html#033f76432e9753f90d9835c8a6f158cf">size_type</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classsbuild_1_1basic__keyfile.html#9e12d6efb0bddcc6e3650bcf82163053">group_type</a></td></tr>
209
224
<tr><td class="mdescLeft"> </td><td class="mdescRight">Group-items-comment-line tuple. <a href="#9e12d6efb0bddcc6e3650bcf82163053"></a><br></td></tr>
210
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef std::map< <a class="el" href="classsbuild_1_1basic__keyfile.html#75bff2ee8dcfcdec69dd488d6c7618ba">group_name_type</a>,<br>
211
<a class="el" href="classsbuild_1_1basic__keyfile.html#9e12d6efb0bddcc6e3650bcf82163053">group_type</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classsbuild_1_1basic__keyfile.html#494d4b581fa7ea88fbcf8ca98df6bbd5">group_map_type</a></td></tr>
225
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef std::map<br>
226
< <a class="el" href="classsbuild_1_1basic__keyfile.html#75bff2ee8dcfcdec69dd488d6c7618ba">group_name_type</a>, <a class="el" href="classsbuild_1_1basic__keyfile.html#9e12d6efb0bddcc6e3650bcf82163053">group_type</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classsbuild_1_1basic__keyfile.html#494d4b581fa7ea88fbcf8ca98df6bbd5">group_map_type</a></td></tr>
213
228
<tr><td class="mdescLeft"> </td><td class="mdescRight">Map between group name and group-items-comment tuple. <a href="#494d4b581fa7ea88fbcf8ca98df6bbd5"></a><br></td></tr>
214
229
<tr><td colspan="2"><br><h2>Private Member Functions</h2></td></tr>
629
<a class="anchor" name="dc9b9a190a245dd6b17b9f76b24c5c6e"></a><!-- doxytag: member="sbuild::basic_keyfile::check_keys" ref="dc9b9a190a245dd6b17b9f76b24c5c6e" args="(group_name_type const &group, string_list const &keys) const " -->
630
<div class="memitem">
631
<div class="memproto">
632
<div class="memtemplate">
633
template<typename K, typename P = basic_keyfile_parser<K>> </div>
634
<table class="memname">
636
<td class="memname">void <a class="el" href="classsbuild_1_1basic__keyfile.html">sbuild::basic_keyfile</a>< K, P >::check_keys </td>
638
<td class="paramtype"><a class="el" href="classsbuild_1_1basic__keyfile.html#75bff2ee8dcfcdec69dd488d6c7618ba">group_name_type</a> const & </td>
639
<td class="paramname"> <em>group</em>, </td>
642
<td class="paramkey"></td>
644
<td class="paramtype"><a class="el" href="namespacesbuild.html#4268c3202ab4b20cbebf347a6d69393f">string_list</a> const & </td>
645
<td class="paramname"> <em>keys</em></td><td> </td>
650
<td></td><td></td><td width="100%"> const</td>
657
Check for unused keys in a group.
659
If keys other than the specified keys exist in the specified group, print a warning about unknown keys having been used.<p>
660
<dl compact><dt><b>Parameters:</b></dt><dd>
661
<table border="0" cellspacing="2" cellpadding="0">
662
<tr><td valign="top"></td><td valign="top"><em>group</em> </td><td>the group to use. </td></tr>
663
<tr><td valign="top"></td><td valign="top"><em>keys</em> </td><td>the keys which have been used. </td></tr>
616
669
<a class="anchor" name="5dac995b8c9d48a2a92783949fa766bb"></a><!-- doxytag: member="sbuild::basic_keyfile::has_group" ref="5dac995b8c9d48a2a92783949fa766bb" args="(group_name_type const &group) const " -->
617
670
<div class="memitem">
618
671
<div class="memproto">