~ubuntu-branches/ubuntu/trusty/bmagic/trusty-proposed

« back to all changes in this revision

Viewing changes to doc/html/a00127.html

  • Committer: Bazaar Package Importer
  • Author(s): Roberto C. Sanchez
  • Date: 2010-04-08 16:47:58 UTC
  • mfrom: (4.1.7 sid)
  • Revision ID: james.westby@ubuntu.com-20100408164758-3vu6wmrk1dnzqnnj
Tags: 3.6.4-1
* New upstream release
* Update to Standards-Version 3.8.4 (no changes)

Show diffs side-by-side

added added

removed removed

Lines of Context:
2
2
<html xmlns="http://www.w3.org/1999/xhtml">
3
3
<head>
4
4
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5
 
<title>BitMagic: Memory Allocation</title>
 
5
<title>BitMagic: bvector serialization</title>
6
6
<link href="tabs.css" rel="stylesheet" type="text/css"/>
7
7
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
8
8
</head>
21
21
  </div>
22
22
</div>
23
23
<div class="contents">
24
 
<h1>Memory Allocation<br/>
 
24
<h1>bvector serialization<br/>
25
25
<small>
26
 
[<a class="el" href="a00117.html">BitMagic C++ Library</a>]</small>
 
26
[<a class="el" href="a00118.html">BitMagic C++ Library</a>]</small>
27
27
</h1>
28
28
<p><div class="dynheader">
29
 
Collaboration diagram for Memory Allocation:</div>
 
29
Collaboration diagram for bvector serialization:</div>
30
30
<div class="dynsection">
31
31
<center><table><tr><td><img src="a00127.png" border="0" alt="" usemap="#a00127_map"/>
32
32
<map name="a00127_map" id="a00127">
33
 
<area shape="rect" href="a00117.html" title="For more information please visit: http://bmagic.sourceforge.net." alt="" coords="5,5,149,35"/></map></td></tr></table></center>
 
33
<area shape="rect" href="a00118.html" title="For more information please visit: http://bmagic.sourceforge.net." alt="" coords="5,5,149,35"/></map></td></tr></table></center>
34
34
</div>
35
35
</p>
36
36
<table border="0" cellpadding="0" cellspacing="0">
37
37
<tr><td colspan="2"><h2>Data Structures</h2></td></tr>
38
 
<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00039.html">bm::block_allocator</a></td></tr>
39
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Default malloc based bitblock allocator class.  <a href="a00039.html#_details">More...</a><br/></td></tr>
40
 
<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00078.html">bm::ptr_allocator</a></td></tr>
41
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Default malloc based bitblock allocator class.  <a href="a00078.html#_details">More...</a><br/></td></tr>
42
 
<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00074.html">bm::mem_alloc&lt; BA, PA &gt;</a></td></tr>
43
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">BM style allocator adapter.  <a href="a00074.html#_details">More...</a><br/></td></tr>
44
 
<tr><td colspan="2"><h2>Typedefs</h2></td></tr>
45
 
<tr><td class="memItemLeft" align="right" valign="top">typedef mem_alloc<br class="typebreak"/>
46
 
&lt; block_allocator, <br class="typebreak"/>
47
 
ptr_allocator &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00127.html#gab9059bfb40a6588cdbacfd93901593c1">bm::standard_allocator</a></td></tr>
 
38
<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html">bm::serializer&lt; BV &gt;</a></td></tr>
 
39
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Bit-vector serialization class.  <a href="a00084.html#_details">More...</a><br/></td></tr>
 
40
<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00058.html">bm::deseriaizer_base&lt; DEC &gt;</a></td></tr>
 
41
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Base deserialization class.  <a href="a00058.html#_details">More...</a><br/></td></tr>
 
42
<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00059.html">bm::deserializer&lt; BV, DEC &gt;</a></td></tr>
 
43
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Class <a class="el" href="a00059.html" title="Class deserializer.">deserializer</a>.  <a href="a00059.html#_details">More...</a><br/></td></tr>
 
44
<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00083.html">bm::serial_stream_iterator&lt; DEC &gt;</a></td></tr>
 
45
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Serialization stream iterator.  <a href="a00083.html#_details">More...</a><br/></td></tr>
 
46
<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00076.html">bm::operation_deserializer&lt; BV &gt;</a></td></tr>
 
47
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Class <a class="el" href="a00059.html" title="Class deserializer.">deserializer</a>, can perform logical operation on bit-vector and serialized bit-vector.  <a href="a00076.html#_details">More...</a><br/></td></tr>
 
48
<tr><td colspan="2"><h2>Enumerations</h2></td></tr>
 
49
<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00127.html#ga537dfe6318f1f1fe18d86dac312be978">bm::serialization_flags</a> { <a class="el" href="a00127.html#gga537dfe6318f1f1fe18d86dac312be978acdd8c071c079589388c3ca7bd4f367c8">bm::BM_NO_BYTE_ORDER</a> =  1, 
 
50
<a class="el" href="a00127.html#gga537dfe6318f1f1fe18d86dac312be978a5521473081d341bc32ac59538e6a8096">bm::BM_NO_GAP_LENGTH</a> =  (1 &lt;&lt; 1)
 
51
 }</td></tr>
 
52
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>Bit mask flags for serialization algorithm. </p>
 
53
 <a href="a00127.html#ga537dfe6318f1f1fe18d86dac312be978">More...</a><br/></td></tr>
 
54
<tr><td colspan="2"><h2>Functions</h2></td></tr>
 
55
<tr><td class="memTemplParams" colspan="2">template&lt;class BV &gt; </td></tr>
 
56
<tr><td class="memTemplItemLeft" align="right" valign="top">unsigned&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00127.html#ga5210c3bda57254ef2e8c71e23306cc88">bm::serialize</a> (const BV &amp;bv, unsigned char *buf, <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *temp_block, unsigned serialization_flags=0)</td></tr>
 
57
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Saves bitvector into memory.  <a href="#ga5210c3bda57254ef2e8c71e23306cc88"></a><br/></td></tr>
 
58
<tr><td class="memTemplParams" colspan="2">template&lt;class BV &gt; </td></tr>
 
59
<tr><td class="memTemplItemLeft" align="right" valign="top">unsigned&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00127.html#ga213033b5cc6add74aa4bd1d614b56192">bm::serialize</a> (BV &amp;bv, unsigned char *buf, unsigned serialization_flags=0)</td></tr>
 
60
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Saves bitvector into memory. Allocates temporary memory block for <a class="el" href="a00044.html" title="bitvector with runtime compression of bits.">bvector</a>.  <a href="#ga213033b5cc6add74aa4bd1d614b56192"></a><br/></td></tr>
 
61
<tr><td class="memTemplParams" colspan="2">template&lt;class BV &gt; </td></tr>
 
62
<tr><td class="memTemplItemLeft" align="right" valign="top">unsigned&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00127.html#gafbe633db8da3d867f098468269fd8d3d">bm::deserialize</a> (BV &amp;bv, const unsigned char *buf, <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *temp_block=0)</td></tr>
 
63
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Bitvector deserialization from memory.  <a href="#gafbe633db8da3d867f098468269fd8d3d"></a><br/></td></tr>
48
64
</table>
49
65
<hr/><a name="_details"></a><h2>Detailed Description</h2>
50
 
<p>Memory allocation related units </p>
51
 
<hr/><h2>Typedef Documentation</h2>
52
 
<a class="anchor" id="gab9059bfb40a6588cdbacfd93901593c1"></a><!-- doxytag: member="bm::standard_allocator" ref="gab9059bfb40a6588cdbacfd93901593c1" args="" -->
53
 
<div class="memitem">
54
 
<div class="memproto">
55
 
      <table class="memname">
56
 
        <tr>
57
 
          <td class="memname">typedef mem_alloc&lt;block_allocator, ptr_allocator&gt; <a class="el" href="a00074.html">bm::standard_allocator</a></td>
58
 
        </tr>
59
 
      </table>
60
 
</div>
61
 
<div class="memdoc">
62
 
 
63
 
<p>Definition at line <a class="el" href="a00090_source.html#l00234">234</a> of file <a class="el" href="a00090_source.html">bmalloc.h</a>.</p>
64
 
 
65
 
</div>
66
 
</div>
67
 
</div>
68
 
<hr size="1"/><address style="text-align: right;"><small>Generated on Fri Jan 8 20:09:20 2010 for BitMagic by&nbsp;
 
66
<p>bvector serialization </p>
 
67
<hr/><h2>Enumeration Type Documentation</h2>
 
68
<a class="anchor" id="ga537dfe6318f1f1fe18d86dac312be978"></a><!-- doxytag: member="bm::serialization_flags" ref="ga537dfe6318f1f1fe18d86dac312be978" args="" -->
 
69
<div class="memitem">
 
70
<div class="memproto">
 
71
      <table class="memname">
 
72
        <tr>
 
73
          <td class="memname">enum <a class="el" href="a00127.html#ga537dfe6318f1f1fe18d86dac312be978">bm::serialization_flags</a></td>
 
74
        </tr>
 
75
      </table>
 
76
</div>
 
77
<div class="memdoc">
 
78
 
 
79
<p>Bit mask flags for serialization algorithm. </p>
 
80
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
 
81
<tr><td valign="top"><em><a class="anchor" id="gga537dfe6318f1f1fe18d86dac312be978acdd8c071c079589388c3ca7bd4f367c8"></a><!-- doxytag: member="BM_NO_BYTE_ORDER" ref="gga537dfe6318f1f1fe18d86dac312be978acdd8c071c079589388c3ca7bd4f367c8" args="" -->BM_NO_BYTE_ORDER</em>&nbsp;</td><td>
 
82
<p>save no byte-order info (save some space) </p>
 
83
</td></tr>
 
84
<tr><td valign="top"><em><a class="anchor" id="gga537dfe6318f1f1fe18d86dac312be978a5521473081d341bc32ac59538e6a8096"></a><!-- doxytag: member="BM_NO_GAP_LENGTH" ref="gga537dfe6318f1f1fe18d86dac312be978a5521473081d341bc32ac59538e6a8096" args="" -->BM_NO_GAP_LENGTH</em>&nbsp;</td><td>
 
85
<p>save no GAP info (save some space) </p>
 
86
</td></tr>
 
87
</table>
 
88
</dd>
 
89
</dl>
 
90
 
 
91
<p>Definition at line <a class="el" href="a00097_source.html#l01033">1033</a> of file <a class="el" href="a00097_source.html">bmserial.h</a>.</p>
 
92
 
 
93
</div>
 
94
</div>
 
95
<hr/><h2>Function Documentation</h2>
 
96
<a class="anchor" id="gafbe633db8da3d867f098468269fd8d3d"></a><!-- doxytag: member="bm::deserialize" ref="gafbe633db8da3d867f098468269fd8d3d" args="(BV &amp;bv, const unsigned char *buf, bm::word_t *temp_block=0)" -->
 
97
<div class="memitem">
 
98
<div class="memproto">
 
99
<div class="memtemplate">
 
100
template&lt;class BV &gt; </div>
 
101
      <table class="memname">
 
102
        <tr>
 
103
          <td class="memname">unsigned bm::deserialize </td>
 
104
          <td>(</td>
 
105
          <td class="paramtype">BV &amp;&nbsp;</td>
 
106
          <td class="paramname"> <em>bv</em>, </td>
 
107
        </tr>
 
108
        <tr>
 
109
          <td class="paramkey"></td>
 
110
          <td></td>
 
111
          <td class="paramtype">const unsigned char *&nbsp;</td>
 
112
          <td class="paramname"> <em>buf</em>, </td>
 
113
        </tr>
 
114
        <tr>
 
115
          <td class="paramkey"></td>
 
116
          <td></td>
 
117
          <td class="paramtype"><a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *&nbsp;</td>
 
118
          <td class="paramname"> <em>temp_block</em> = <code>0</code></td><td>&nbsp;</td>
 
119
        </tr>
 
120
        <tr>
 
121
          <td></td>
 
122
          <td>)</td>
 
123
          <td></td><td></td><td><code> [inline]</code></td>
 
124
        </tr>
 
125
      </table>
 
126
</div>
 
127
<div class="memdoc">
 
128
 
 
129
<p>Bitvector deserialization from memory. </p>
 
130
<dl><dt><b>Parameters:</b></dt><dd>
 
131
  <table border="0" cellspacing="2" cellpadding="0">
 
132
    <tr><td valign="top"></td><td valign="top"><em>buf</em>&nbsp;</td><td>- pointer on memory which keeps serialized <a class="el" href="a00044.html" title="bitvector with runtime compression of bits.">bvector</a> </td></tr>
 
133
    <tr><td valign="top"></td><td valign="top"><em>temp_block</em>&nbsp;</td><td>- pointer on temporary block, if NULL <a class="el" href="a00044.html" title="bitvector with runtime compression of bits.">bvector</a> allocates own. </td></tr>
 
134
  </table>
 
135
  </dd>
 
136
</dl>
 
137
<dl class="return"><dt><b>Returns:</b></dt><dd>Number of bytes consumed by <a class="el" href="a00059.html" title="Class deserializer.">deserializer</a>.</dd></dl>
 
138
<p>Function desrializes bitvector from memory block containig results of previous serialization. Function does not remove bits which are currently set. Effectively it means OR logical operation between current bitset and previously serialized one. </p>
 
139
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="a00004.html#a21">sample4.cpp</a>.</dd>
 
140
</dl>
 
141
<p>Definition at line <a class="el" href="a00097_source.html#l01142">1142</a> of file <a class="el" href="a00097_source.html">bmserial.h</a>.</p>
 
142
 
 
143
<p>References <a class="el" href="a00094_source.html#l00399">bm::BigEndian</a>, <a class="el" href="a00093_source.html#l00050">BM_ASSERT</a>, <a class="el" href="a00097_source.html#l00099">bm::BM_HM_NO_BO</a>, <a class="el" href="a00094_source.html#l00441">bm::globals&lt; T &gt;::byte_order()</a>, <a class="el" href="a00097_source.html#l01403">bm::deserializer&lt; BV, DEC &gt;::deserialize()</a>, <a class="el" href="a00105_source.html#l00079">bm::decoder_base::get_8()</a>, and <a class="el" href="a00094_source.html#l00400">bm::LittleEndian</a>.</p>
 
144
 
 
145
<p>Referenced by <a class="el" href="a00110_source.html#l00107">main()</a>.</p>
 
146
 
 
147
</div>
 
148
</div>
 
149
<a class="anchor" id="ga213033b5cc6add74aa4bd1d614b56192"></a><!-- doxytag: member="bm::serialize" ref="ga213033b5cc6add74aa4bd1d614b56192" args="(BV &amp;bv, unsigned char *buf, unsigned serialization_flags=0)" -->
 
150
<div class="memitem">
 
151
<div class="memproto">
 
152
<div class="memtemplate">
 
153
template&lt;class BV &gt; </div>
 
154
      <table class="memname">
 
155
        <tr>
 
156
          <td class="memname">unsigned bm::serialize </td>
 
157
          <td>(</td>
 
158
          <td class="paramtype">BV &amp;&nbsp;</td>
 
159
          <td class="paramname"> <em>bv</em>, </td>
 
160
        </tr>
 
161
        <tr>
 
162
          <td class="paramkey"></td>
 
163
          <td></td>
 
164
          <td class="paramtype">unsigned char *&nbsp;</td>
 
165
          <td class="paramname"> <em>buf</em>, </td>
 
166
        </tr>
 
167
        <tr>
 
168
          <td class="paramkey"></td>
 
169
          <td></td>
 
170
          <td class="paramtype">unsigned&nbsp;</td>
 
171
          <td class="paramname"> <em>serialization_flags</em> = <code>0</code></td><td>&nbsp;</td>
 
172
        </tr>
 
173
        <tr>
 
174
          <td></td>
 
175
          <td>)</td>
 
176
          <td></td><td></td><td><code> [inline]</code></td>
 
177
        </tr>
 
178
      </table>
 
179
</div>
 
180
<div class="memdoc">
 
181
 
 
182
<p>Saves bitvector into memory. Allocates temporary memory block for <a class="el" href="a00044.html" title="bitvector with runtime compression of bits.">bvector</a>. </p>
 
183
 
 
184
<p>Definition at line <a class="el" href="a00097_source.html#l01106">1106</a> of file <a class="el" href="a00097_source.html">bmserial.h</a>.</p>
 
185
 
 
186
<p>References <a class="el" href="a00097_source.html#l01034">bm::BM_NO_BYTE_ORDER</a>, <a class="el" href="a00097_source.html#l01035">bm::BM_NO_GAP_LENGTH</a>, <a class="el" href="a00097_source.html#l00576">bm::serializer&lt; BV &gt;::byte_order_serialization()</a>, <a class="el" href="a00097_source.html#l00570">bm::serializer&lt; BV &gt;::gap_length_serialization()</a>, <a class="el" href="a00097_source.html#l00810">bm::serializer&lt; BV &gt;::serialize()</a>, and <a class="el" href="a00097_source.html#l00551">bm::serializer&lt; BV &gt;::set_compression_level()</a>.</p>
 
187
 
 
188
</div>
 
189
</div>
 
190
<a class="anchor" id="ga5210c3bda57254ef2e8c71e23306cc88"></a><!-- doxytag: member="bm::serialize" ref="ga5210c3bda57254ef2e8c71e23306cc88" args="(const BV &amp;bv, unsigned char *buf, bm::word_t *temp_block, unsigned serialization_flags=0)" -->
 
191
<div class="memitem">
 
192
<div class="memproto">
 
193
<div class="memtemplate">
 
194
template&lt;class BV &gt; </div>
 
195
      <table class="memname">
 
196
        <tr>
 
197
          <td class="memname">unsigned bm::serialize </td>
 
198
          <td>(</td>
 
199
          <td class="paramtype">const BV &amp;&nbsp;</td>
 
200
          <td class="paramname"> <em>bv</em>, </td>
 
201
        </tr>
 
202
        <tr>
 
203
          <td class="paramkey"></td>
 
204
          <td></td>
 
205
          <td class="paramtype">unsigned char *&nbsp;</td>
 
206
          <td class="paramname"> <em>buf</em>, </td>
 
207
        </tr>
 
208
        <tr>
 
209
          <td class="paramkey"></td>
 
210
          <td></td>
 
211
          <td class="paramtype"><a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *&nbsp;</td>
 
212
          <td class="paramname"> <em>temp_block</em>, </td>
 
213
        </tr>
 
214
        <tr>
 
215
          <td class="paramkey"></td>
 
216
          <td></td>
 
217
          <td class="paramtype">unsigned&nbsp;</td>
 
218
          <td class="paramname"> <em>serialization_flags</em> = <code>0</code></td><td>&nbsp;</td>
 
219
        </tr>
 
220
        <tr>
 
221
          <td></td>
 
222
          <td>)</td>
 
223
          <td></td><td></td><td><code> [inline]</code></td>
 
224
        </tr>
 
225
      </table>
 
226
</div>
 
227
<div class="memdoc">
 
228
 
 
229
<p>Saves bitvector into memory. </p>
 
230
<p>Function serializes content of the bitvector into memory. Serialization adaptively uses compression(variation of GAP encoding) when it is benefitial.</p>
 
231
<dl><dt><b>Parameters:</b></dt><dd>
 
232
  <table border="0" cellspacing="2" cellpadding="0">
 
233
    <tr><td valign="top"></td><td valign="top"><em>buf</em>&nbsp;</td><td>- pointer on target memory area. No range checking in the function. It is responsibility of programmer to allocate sufficient amount of memory using information from calc_stat function.</td></tr>
 
234
    <tr><td valign="top"></td><td valign="top"><em>temp_block</em>&nbsp;</td><td>- pointer on temporary memory block. Cannot be 0; If you want to save memory across multiple bvectors allocate temporary block using allocate_tempblock and pass it to serialize. (Of course serialize does not deallocate temp_block.)</td></tr>
 
235
    <tr><td valign="top"></td><td valign="top"><em>serialization_flags</em>&nbsp;</td><td>Flags controlling serilization (bit-mask) (use OR-ed serialization flags)</td></tr>
 
236
  </table>
 
237
  </dd>
 
238
</dl>
 
239
<dl class="return"><dt><b>Returns:</b></dt><dd>Size of serialization block. </dd></dl>
 
240
<dl class="see"><dt><b>See also:</b></dt><dd>calc_stat, <a class="el" href="a00127.html#ga537dfe6318f1f1fe18d86dac312be978" title="Bit mask flags for serialization algorithm.">serialization_flags</a> </dd></dl>
 
241
 
 
242
<p>Definition at line <a class="el" href="a00097_source.html#l01080">1080</a> of file <a class="el" href="a00097_source.html">bmserial.h</a>.</p>
 
243
 
 
244
<p>References <a class="el" href="a00097_source.html#l01034">bm::BM_NO_BYTE_ORDER</a>, <a class="el" href="a00097_source.html#l01035">bm::BM_NO_GAP_LENGTH</a>, <a class="el" href="a00097_source.html#l00576">bm::serializer&lt; BV &gt;::byte_order_serialization()</a>, <a class="el" href="a00097_source.html#l00570">bm::serializer&lt; BV &gt;::gap_length_serialization()</a>, <a class="el" href="a00097_source.html#l00810">bm::serializer&lt; BV &gt;::serialize()</a>, and <a class="el" href="a00097_source.html#l00551">bm::serializer&lt; BV &gt;::set_compression_level()</a>.</p>
 
245
 
 
246
</div>
 
247
</div>
 
248
</div>
 
249
<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Mar 23 20:48:08 2010 for BitMagic by&nbsp;
69
250
<a href="http://www.doxygen.org/index.html">
70
251
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
71
252
</body>