File: xccdf__policy_8h.html

package info (click to toggle)
openscap 1.0.9-1
  • links: PTS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 129,588 kB
  • ctags: 26,325
  • sloc: xml: 611,156; ansic: 90,367; sh: 26,693; makefile: 2,463; python: 804; perl: 445; cpp: 123
file content (157 lines) | stat: -rw-r--r-- 20,562 bytes parent folder | download
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
<!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"/>
<meta name="generator" content="Doxygen 1.8.3.1"/>
<title>Open SCAP Library: xccdf_policy.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">Open SCAP Library
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.3.1 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>Globals</span></a></li>
    </ul>
  </div>
<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_e59844bb90898a84583aad04688e689a.html">XCCDF_POLICY</a></li><li class="navelem"><a class="el" href="dir_3ce90c11f2b5fbab65d4560be098a936.html">public</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">xccdf_policy.h File Reference<div class="ingroups"><a class="el" href="group__XCCDF__POLICY.html">XCCDF_POLICY</a></div></div>  </div>
</div><!--header-->
<div class="contents">

<p>Open-scap XCCDF Policy library interface.  
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;<a class="el" href="xccdf__benchmark_8h_source.html">xccdf_benchmark.h</a>&gt;</code><br/>
<code>#include &lt;stdbool.h&gt;</code><br/>
<code>#include &lt;time.h&gt;</code><br/>
<code>#include &lt;<a class="el" href="oscap_8h_source.html">oscap.h</a>&gt;</code><br/>
</div>
<p><a href="xccdf__policy_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:ga4943da55034c7b10b86826fe968571a8"><td class="memItemLeft" align="right" valign="top">typedef void *(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__XCCDF__POLICY.html#ga4943da55034c7b10b86826fe968571a8">xccdf_policy_engine_query_fn</a> )(void *, <a class="el" href="group__XCCDF__POLICY.html#ga74d0efa085633f92a2421580786aca01">xccdf_policy_engine_query_t</a>, void *)</td></tr>
<tr class="memdesc:ga4943da55034c7b10b86826fe968571a8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type of function which implements queries defined within xccdf_policy_engine_query_t.  <a href="group__XCCDF__POLICY.html#ga4943da55034c7b10b86826fe968571a8">More...</a><br/></td></tr>
<tr class="separator:ga4943da55034c7b10b86826fe968571a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga322816631128d9e1e513441b0d87a9c4"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="group__XCCDF.html#gabf34f4480799efc8e1af5f4706d2666d">xccdf_test_result_type_t</a>(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__XCCDF__POLICY.html#ga322816631128d9e1e513441b0d87a9c4">xccdf_policy_engine_eval_fn</a> )(struct <a class="el" href="structxccdf__policy.html">xccdf_policy</a> *policy, const char *rule_id, const char *definition_id, const char *href_if, struct xccdf_value_binding_iterator *value_binding_it, struct <a class="el" href="structxccdf__check__import__iterator.html">xccdf_check_import_iterator</a> *check_imports_it, void *user_data)</td></tr>
<tr class="memdesc:ga322816631128d9e1e513441b0d87a9c4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type of function which implements OpenSCAP checking engine.  <a href="group__XCCDF__POLICY.html#ga322816631128d9e1e513441b0d87a9c4">More...</a><br/></td></tr>
<tr class="separator:ga322816631128d9e1e513441b0d87a9c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3e2de446271c4da00514188159d8c55d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga3e2de446271c4da00514188159d8c55d"></a>
typedef int(*&#160;</td><td class="memItemRight" valign="bottom"><b>policy_reporter_output</b> )(struct <a class="el" href="structxccdf__rule__result.html">xccdf_rule_result</a> *, void *)</td></tr>
<tr class="separator:ga3e2de446271c4da00514188159d8c55d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga65ee7d2d5812cbbf7601f8b77c9f9c70"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga65ee7d2d5812cbbf7601f8b77c9f9c70"></a>
typedef int(*&#160;</td><td class="memItemRight" valign="bottom"><b>policy_reporter_start</b> )(struct <a class="el" href="structxccdf__rule.html">xccdf_rule</a> *, void *)</td></tr>
<tr class="separator:ga65ee7d2d5812cbbf7601f8b77c9f9c70"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:ga74d0efa085633f92a2421580786aca01"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__XCCDF__POLICY.html#ga74d0efa085633f92a2421580786aca01">xccdf_policy_engine_query_t</a> { <b>POLICY_ENGINE_QUERY_NAMES_FOR_HREF</b> = 1
 }</td></tr>
<tr class="memdesc:ga74d0efa085633f92a2421580786aca01"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type of a query over checking-engine data.  <a href="group__XCCDF__POLICY.html#ga74d0efa085633f92a2421580786aca01">More...</a><br/></td></tr>
<tr class="separator:ga74d0efa085633f92a2421580786aca01"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga41d9f37dc37cabf240a8bec4d1123248"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__XCCDF__POLICY.html#ga41d9f37dc37cabf240a8bec4d1123248">xccdf_policy_model_set_tailoring</a> (struct <a class="el" href="structxccdf__policy__model.html">xccdf_policy_model</a> *model, struct <a class="el" href="structxccdf__tailoring.html">xccdf_tailoring</a> *tailoring)</td></tr>
<tr class="memdesc:ga41d9f37dc37cabf240a8bec4d1123248"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the Tailoring element to use in the policy.  <a href="group__XCCDF__POLICY.html#ga41d9f37dc37cabf240a8bec4d1123248">More...</a><br/></td></tr>
<tr class="separator:ga41d9f37dc37cabf240a8bec4d1123248"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4fb6f8da0dbde52de6e170452d4b6405"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4fb6f8da0dbde52de6e170452d4b6405"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__XCCDF__POLICY.html#ga4fb6f8da0dbde52de6e170452d4b6405">xccdf_policy_model_add_cpe_dict</a> (struct <a class="el" href="structxccdf__policy__model.html">xccdf_policy_model</a> *model, const char *cpe_dict)</td></tr>
<tr class="memdesc:ga4fb6f8da0dbde52de6e170452d4b6405"><td class="mdescLeft">&#160;</td><td class="mdescRight">Registers an additional CPE dictionary for applicability testing The one embedded in the evaluated XCCDF take precedence! <br/></td></tr>
<tr class="separator:ga4fb6f8da0dbde52de6e170452d4b6405"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9c9fbe2a247ae96eb8de2a3c52583345"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga9c9fbe2a247ae96eb8de2a3c52583345"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__XCCDF__POLICY.html#ga9c9fbe2a247ae96eb8de2a3c52583345">xccdf_policy_model_add_cpe_lang_model</a> (struct <a class="el" href="structxccdf__policy__model.html">xccdf_policy_model</a> *model, const char *cpe_lang)</td></tr>
<tr class="memdesc:ga9c9fbe2a247ae96eb8de2a3c52583345"><td class="mdescLeft">&#160;</td><td class="mdescRight">Registers an additional CPE lang model for applicability testing The one embedded in the evaluated XCCDF take precedence! <br/></td></tr>
<tr class="separator:ga9c9fbe2a247ae96eb8de2a3c52583345"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadd2608ae85b438ba30140bbedbd963c6"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__XCCDF__POLICY.html#gadd2608ae85b438ba30140bbedbd963c6">xccdf_policy_model_add_cpe_autodetect</a> (struct <a class="el" href="structxccdf__policy__model.html">xccdf_policy_model</a> *model, const char *filepath)</td></tr>
<tr class="memdesc:gadd2608ae85b438ba30140bbedbd963c6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Registers an additional CPE resource (either dictionary or language) Autodetects given file and acts accordingly.  <a href="group__XCCDF__POLICY.html#gadd2608ae85b438ba30140bbedbd963c6">More...</a><br/></td></tr>
<tr class="separator:gadd2608ae85b438ba30140bbedbd963c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga993ca9acd0654ef17a63160d1f21f4df"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga993ca9acd0654ef17a63160d1f21f4df"></a>
struct <a class="el" href="structoscap__htable__iterator.html">oscap_htable_iterator</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__XCCDF__POLICY.html#ga993ca9acd0654ef17a63160d1f21f4df">xccdf_policy_model_get_cpe_oval_sessions</a> (struct <a class="el" href="structxccdf__policy__model.html">xccdf_policy_model</a> *model)</td></tr>
<tr class="memdesc:ga993ca9acd0654ef17a63160d1f21f4df"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieves an iterator of all OVAL sessions created for CPE applicability evaluation key is the OVAL href, value is the OVAL session itself (type oval_agent_session*) <br/></td></tr>
<tr class="separator:ga993ca9acd0654ef17a63160d1f21f4df"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Setters</div></td></tr>
<tr><td colspan="2"><div class="groupText"><p>For lists use add functions.</p>
<p>Parameters of set functions are duplicated in memory and need to be freed by caller. </p>
</div></td></tr>
<tr class="memitem:ga64a14d992b285724823c6a51abdf0e1b"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__XCCDF__POLICY.html#ga64a14d992b285724823c6a51abdf0e1b">xccdf_policy_get_selected_rules_count</a> (struct <a class="el" href="structxccdf__policy.html">xccdf_policy</a> *policy)</td></tr>
<tr class="memdesc:ga64a14d992b285724823c6a51abdf0e1b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieves number of selected items in the policy.  <a href="group__XCCDF__POLICY.html#ga64a14d992b285724823c6a51abdf0e1b">More...</a><br/></td></tr>
<tr class="separator:ga64a14d992b285724823c6a51abdf0e1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Evaluators</div></td></tr>
<tr class="memitem:gac9bc9a78e2289a2b13a05afd6c50241f"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structxccdf__item.html">xccdf_item</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__XCCDF__POLICY.html#gac9bc9a78e2289a2b13a05afd6c50241f">xccdf_policy_tailor_item</a> (struct <a class="el" href="structxccdf__policy.html">xccdf_policy</a> *policy, struct <a class="el" href="structxccdf__item.html">xccdf_item</a> *item)</td></tr>
<tr class="memdesc:gac9bc9a78e2289a2b13a05afd6c50241f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clone the item and tailor it against given policy (profile)  <a href="group__XCCDF__POLICY.html#gac9bc9a78e2289a2b13a05afd6c50241f">More...</a><br/></td></tr>
<tr class="separator:gac9bc9a78e2289a2b13a05afd6c50241f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad719b40d4a661566c29957a146a3a595"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structoscap__file__entry__list.html">oscap_file_entry_list</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__XCCDF__POLICY.html#gad719b40d4a661566c29957a146a3a595">xccdf_policy_model_get_systems_and_files</a> (struct <a class="el" href="structxccdf__policy__model.html">xccdf_policy_model</a> *policy_model)</td></tr>
<tr class="memdesc:gad719b40d4a661566c29957a146a3a595"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return names of files that are used in checks of particular rules.  <a href="group__XCCDF__POLICY.html#gad719b40d4a661566c29957a146a3a595">More...</a><br/></td></tr>
<tr class="separator:gad719b40d4a661566c29957a146a3a595"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga456e06c604baac6bb4134351150850bd"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structoscap__file__entry__list.html">oscap_file_entry_list</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__XCCDF__POLICY.html#ga456e06c604baac6bb4134351150850bd">xccdf_item_get_systems_and_files</a> (struct <a class="el" href="structxccdf__item.html">xccdf_item</a> *item)</td></tr>
<tr class="memdesc:ga456e06c604baac6bb4134351150850bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return names of files that are used in checks of particular rules.  <a href="group__XCCDF__POLICY.html#ga456e06c604baac6bb4134351150850bd">More...</a><br/></td></tr>
<tr class="separator:ga456e06c604baac6bb4134351150850bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2178c207b3893ddd301d2df468576666"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structoscap__stringlist.html">oscap_stringlist</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__XCCDF__POLICY.html#ga2178c207b3893ddd301d2df468576666">xccdf_policy_model_get_files</a> (struct <a class="el" href="structxccdf__policy__model.html">xccdf_policy_model</a> *policy_model)</td></tr>
<tr class="memdesc:ga2178c207b3893ddd301d2df468576666"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return names of files that are used in checks of particular rules.  <a href="group__XCCDF__POLICY.html#ga2178c207b3893ddd301d2df468576666">More...</a><br/></td></tr>
<tr class="separator:ga2178c207b3893ddd301d2df468576666"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf0253768dcf8b1fced143fddb2075c75"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structoscap__stringlist.html">oscap_stringlist</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__XCCDF__POLICY.html#gaf0253768dcf8b1fced143fddb2075c75">xccdf_item_get_files</a> (struct <a class="el" href="structxccdf__item.html">xccdf_item</a> *item)</td></tr>
<tr class="memdesc:gaf0253768dcf8b1fced143fddb2075c75"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return names of files that are used in checks of particular rules.  <a href="group__XCCDF__POLICY.html#gaf0253768dcf8b1fced143fddb2075c75">More...</a><br/></td></tr>
<tr class="separator:gaf0253768dcf8b1fced143fddb2075c75"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga26c7d2add2dc1975b600aa528327a266"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__XCCDF.html#gabf34f4480799efc8e1af5f4706d2666d">xccdf_test_result_type_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__XCCDF__POLICY.html#ga26c7d2add2dc1975b600aa528327a266">xccdf_test_result_resolve_and_operation</a> (<a class="el" href="group__XCCDF.html#gabf34f4480799efc8e1af5f4706d2666d">xccdf_test_result_type_t</a> A, <a class="el" href="group__XCCDF.html#gabf34f4480799efc8e1af5f4706d2666d">xccdf_test_result_type_t</a> B)</td></tr>
<tr class="memdesc:ga26c7d2add2dc1975b600aa528327a266"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return result of the AND operation for two given attributes.  <a href="group__XCCDF__POLICY.html#ga26c7d2add2dc1975b600aa528327a266">More...</a><br/></td></tr>
<tr class="separator:ga26c7d2add2dc1975b600aa528327a266"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Iterators</div></td></tr>
<tr class="memitem:ga0cf0cc247cfbb7b37787286a77e7c57e"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structxccdf__score.html">xccdf_score</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__XCCDF__POLICY.html#ga0cf0cc247cfbb7b37787286a77e7c57e">xccdf_policy_get_score</a> (struct <a class="el" href="structxccdf__policy.html">xccdf_policy</a> *policy, struct <a class="el" href="structxccdf__result.html">xccdf_result</a> *test_result, const char *system)</td></tr>
<tr class="memdesc:ga0cf0cc247cfbb7b37787286a77e7c57e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get score of the XCCDF Benchmark.  <a href="group__XCCDF__POLICY.html#ga0cf0cc247cfbb7b37787286a77e7c57e">More...</a><br/></td></tr>
<tr class="separator:ga0cf0cc247cfbb7b37787286a77e7c57e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa2ad18993c928304b44e43015fc1d4ad"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__XCCDF__POLICY.html#gaa2ad18993c928304b44e43015fc1d4ad">xccdf_policy_substitute</a> (const char *text, struct <a class="el" href="structxccdf__policy.html">xccdf_policy</a> *policy)</td></tr>
<tr class="memdesc:gaa2ad18993c928304b44e43015fc1d4ad"><td class="mdescLeft">&#160;</td><td class="mdescRight">Perform textual substitution of cdf:sub elements with respect to given XCCDF policy.  <a href="group__XCCDF__POLICY.html#gaa2ad18993c928304b44e43015fc1d4ad">More...</a><br/></td></tr>
<tr class="separator:gaa2ad18993c928304b44e43015fc1d4ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Open-scap XCCDF Policy library interface. </p>
<dl class="section author"><dt>Author</dt><dd>Maros Barabas <a href="#" onclick="location.href='mai'+'lto:'+'mba'+'ra'+'bas'+'@r'+'edh'+'at'+'.co'+'m'; return false;">mbara<span style="display: none;">.nosp@m.</span>bas@<span style="display: none;">.nosp@m.</span>redha<span style="display: none;">.nosp@m.</span>t.co<span style="display: none;">.nosp@m.</span>m</a> </dd>
<dd>
Dave Niemoller <a href="#" onclick="location.href='mai'+'lto:'+'dav'+'id'+'.ni'+'em'+'oll'+'er'+'@g2'+'-i'+'nc.'+'co'+'m'; return false;">david<span style="display: none;">.nosp@m.</span>.nie<span style="display: none;">.nosp@m.</span>molle<span style="display: none;">.nosp@m.</span>r@g2<span style="display: none;">.nosp@m.</span>-inc.<span style="display: none;">.nosp@m.</span>com</a> </dd></dl>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.3.1
</small></address>
</body>
</html>