1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
3
<title>BitMagic: bm::decoder Class Reference</title>
4
<link href="doxygen.css" rel="stylesheet" type="text/css">
5
<link href="tabs.css" rel="stylesheet" type="text/css">
7
<!-- Generated by Doxygen 1.5.5 -->
1
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
<html xmlns="http://www.w3.org/1999/xhtml">
4
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5
<title>BitMagic: bm::deseriaizer_base< DEC > Class Template Reference</title>
6
<link href="tabs.css" rel="stylesheet" type="text/css"/>
7
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
10
<!-- Generated by Doxygen 1.6.1 -->
8
11
<div class="navigation" id="top">
11
14
<li><a href="index.html"><span>Main Page</span></a></li>
12
15
<li><a href="modules.html"><span>Modules</span></a></li>
13
16
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
14
<li class="current"><a href="classes.html"><span>Data Structures</span></a></li>
17
<li class="current"><a href="annotated.html"><span>Data Structures</span></a></li>
15
18
<li><a href="files.html"><span>Files</span></a></li>
16
19
<li><a href="examples.html"><span>Examples</span></a></li>
21
<li><a href="classes.html"><span>Alphabetical List</span></a></li>
22
24
<li><a href="annotated.html"><span>Data Structures</span></a></li>
25
<li><a href="classes.html"><span>Data Structure Index</span></a></li>
23
26
<li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
24
27
<li><a href="functions.html"><span>Data Fields</span></a></li>
27
<div class="navpath"><a class="el" href="a00106.html">bm</a>::<a class="el" href="a00057.html">decoder</a>
30
<div class="navpath"><a class="el" href="a00110.html">bm</a>::<a class="el" href="a00057.html">deseriaizer_base</a>
30
33
<div class="contents">
31
<h1>bm::decoder Class Reference</h1><!-- doxytag: class="bm::decoder" --><!-- doxytag: inherits="bm::decoder_base" -->Class for decoding data from memory buffer.
32
<a href="#_details">More...</a>
34
<code>#include <<a class="el" href="a00142.html">encoding.h</a>></code>
36
<div class="dynheader">
37
Inheritance diagram for bm::decoder:</div>
38
<div class="dynsection">
39
<p><center><img src="a00354.png" border="0" usemap="#a00355" alt="Inheritance graph"></center>
41
<area shape="rect" id="node2" href="a00058.html" title="Base class for all decoding functionality." alt="" coords="5,6,133,34">
42
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center></div>
43
<div class="dynheader">
44
Collaboration diagram for bm::decoder:</div>
45
<div class="dynsection">
46
<p><center><img src="a00356.png" border="0" usemap="#a00357" alt="Collaboration graph"></center>
48
<area shape="rect" id="node2" href="a00058.html" title="Base class for all decoding functionality." alt="" coords="5,6,133,34">
49
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center></div>
34
<h1>bm::deseriaizer_base< DEC > Class Template Reference<br/>
36
[<a class="el" href="a00121.html">bvector serialization</a>]</small>
37
</h1><!-- doxytag: class="bm::deseriaizer_base" -->
38
<p>Base deserialization class.
39
<a href="#_details">More...</a></p>
41
<p><code>#include <<a class="el" href="a00092_source.html">bmserial.h</a>></code></p>
42
<div class="dynheader">
43
Inheritance diagram for bm::deseriaizer_base< DEC >:</div>
44
<div class="dynsection">
45
<div class="center"><img src="a00244.png" border="0" usemap="#bm_1_1deseriaizer__base_3_01DEC_01_4_inherit__map" alt="Inheritance graph"/></div>
46
<map name="bm_1_1deseriaizer__base_3_01DEC_01_4_inherit__map" id="bm_1_1deseriaizer__base_3_01DEC_01_4_inherit__map">
47
<area shape="rect" href="a00058.html" title="Class deserializer." alt="" coords="5,83,168,112"/><area shape="rect" href="a00079.html" title="Serialization stream iterator." alt="" coords="192,83,413,112"/></map>
48
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
50
49
<table border="0" cellpadding="0" cellspacing="0">
52
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
53
<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00057.html#73bf9b02a979483dcb1b06f71191a358">decoder</a> (const unsigned char *buf)</td></tr>
55
<tr><td class="mdescLeft"> </td><td class="mdescRight">Construction. <a href="#73bf9b02a979483dcb1b06f71191a358"></a><br></td></tr>
56
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00106.html#e64960202b691ae1b6efe5fec12cb5af">bm::short_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00057.html#870cab2b7facfd504cc094bcfcbe0fd5">get_16</a> ()</td></tr>
58
<tr><td class="mdescLeft"> </td><td class="mdescRight">Reads 16bit word from the decoding buffer. <a href="#870cab2b7facfd504cc094bcfcbe0fd5"></a><br></td></tr>
59
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00106.html#17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00057.html#14e9ecc4a864b259ee445c2cf434df96">get_32</a> ()</td></tr>
61
<tr><td class="mdescLeft"> </td><td class="mdescRight">Reads 32 bit word from the decoding buffer. <a href="#14e9ecc4a864b259ee445c2cf434df96"></a><br></td></tr>
62
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00057.html#216e3cd09d77a216ded7038e676f79d5">get_32</a> (<a class="el" href="a00106.html#17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *w, unsigned count)</td></tr>
64
<tr><td class="mdescLeft"> </td><td class="mdescRight">Reads block of 32-bit words from the decoding buffer. <a href="#216e3cd09d77a216ded7038e676f79d5"></a><br></td></tr>
65
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00057.html#053d500db2a141a8f29a8a1f5431434d">get_16</a> (<a class="el" href="a00106.html#e64960202b691ae1b6efe5fec12cb5af">bm::short_t</a> *s, unsigned count)</td></tr>
67
<tr><td class="mdescLeft"> </td><td class="mdescRight">Reads block of 32-bit words from the decoding buffer. <a href="#053d500db2a141a8f29a8a1f5431434d"></a><br></td></tr>
50
<tr><td colspan="2"><h2>Public Types</h2></td></tr>
51
<tr><td class="memItemLeft" align="right" valign="top">typedef DEC </td><td class="memItemRight" valign="bottom"><a class="el" href="a00057.html#ae453292ecf6fc43678d2308cedf50772">decoder_type</a></td></tr>
52
<tr><td colspan="2"><h2>Protected Member Functions</h2></td></tr>
53
<tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00057.html#a931719914a0bea3491b2ba5ebf97cb03">deseriaizer_base</a> ()</td></tr>
54
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00057.html#abbd0f97d8c8bd1017cd65885870c2426">read_gap_block</a> (<a class="el" href="a00057.html#ae453292ecf6fc43678d2308cedf50772">decoder_type</a> &<a class="el" href="a00053.html">decoder</a>, unsigned block_type, <a class="el" href="a00110.html#ac654d6319039a86546d235a236fc7cf6">bm::gap_word_t</a> *dst_block, <a class="el" href="a00110.html#ac654d6319039a86546d235a236fc7cf6">bm::gap_word_t</a> &gap_head)</td></tr>
55
<tr><td class="mdescLeft"> </td><td class="mdescRight">Read GAP block from the stream. <a href="#abbd0f97d8c8bd1017cd65885870c2426"></a><br/></td></tr>
69
<hr><a name="_details"></a><h2>Detailed Description</h2>
70
Class for decoding data from memory buffer.
72
Properly handles aligment issues with integer data types.
73
<p>Definition at line <a class="el" href="a00142.html#l00098">98</a> of file <a class="el" href="a00142.html">encoding.h</a>.</p>
74
<hr><h2>Constructor & Destructor Documentation</h2>
75
<a class="anchor" name="73bf9b02a979483dcb1b06f71191a358"></a><!-- doxytag: member="bm::decoder::decoder" ref="73bf9b02a979483dcb1b06f71191a358" args="(const unsigned char *buf)" -->
77
<div class="memproto">
78
<table class="memname">
80
<td class="memname">bm::decoder::decoder </td>
82
<td class="paramtype">const unsigned char * </td>
83
<td class="paramname"> <em>buf</em> </td>
84
<td> ) </td>
85
<td width="100%"><code> [inline]</code></td>
94
<dl compact><dt><b>Parameters:</b></dt><dd>
95
<table border="0" cellspacing="2" cellpadding="0">
96
<tr><td valign="top"></td><td valign="top"><em>buf</em> </td><td>- pointer to the decoding memory. </td></tr>
100
<p>Definition at line <a class="el" href="a00142.html#l00613">613</a> of file <a class="el" href="a00142.html">encoding.h</a>.</p>
104
<hr><h2>Member Function Documentation</h2>
105
<a class="anchor" name="870cab2b7facfd504cc094bcfcbe0fd5"></a><!-- doxytag: member="bm::decoder::get_16" ref="870cab2b7facfd504cc094bcfcbe0fd5" args="()" -->
106
<div class="memitem">
107
<div class="memproto">
108
<table class="memname">
110
<td class="memname">BMFORCEINLINE <a class="el" href="a00106.html#e64960202b691ae1b6efe5fec12cb5af">bm::short_t</a> bm::decoder::get_16 </td>
112
<td class="paramname"> </td>
113
<td> ) </td>
114
<td width="100%"></td>
121
Reads 16bit word from the decoding buffer.
124
<p>Definition at line <a class="el" href="a00142.html#l00622">622</a> of file <a class="el" href="a00142.html">encoding.h</a>.</p>
126
<p>References <a class="el" href="a00142.html#l00088">bm::decoder_base::buf_</a>.</p>
130
<a class="anchor" name="14e9ecc4a864b259ee445c2cf434df96"></a><!-- doxytag: member="bm::decoder::get_32" ref="14e9ecc4a864b259ee445c2cf434df96" args="()" -->
131
<div class="memitem">
132
<div class="memproto">
133
<table class="memname">
135
<td class="memname">BMFORCEINLINE <a class="el" href="a00106.html#17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> bm::decoder::get_32 </td>
137
<td class="paramname"> </td>
138
<td> ) </td>
139
<td width="100%"></td>
146
Reads 32 bit word from the decoding buffer.
149
<p>Definition at line <a class="el" href="a00142.html#l00637">637</a> of file <a class="el" href="a00142.html">encoding.h</a>.</p>
151
<p>References <a class="el" href="a00142.html#l00088">bm::decoder_base::buf_</a>.</p>
155
<a class="anchor" name="216e3cd09d77a216ded7038e676f79d5"></a><!-- doxytag: member="bm::decoder::get_32" ref="216e3cd09d77a216ded7038e676f79d5" args="(bm::word_t *w, unsigned count)" -->
156
<div class="memitem">
157
<div class="memproto">
158
<table class="memname">
160
<td class="memname">void bm::decoder::get_32 </td>
162
<td class="paramtype"><a class="el" href="a00106.html#17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> * </td>
163
<td class="paramname"> <em>w</em>, </td>
166
<td class="paramkey"></td>
168
<td class="paramtype">unsigned </td>
169
<td class="paramname"> <em>count</em></td><td> </td>
174
<td></td><td></td><td width="100%"><code> [inline]</code></td>
181
Reads block of 32-bit words from the decoding buffer.
183
<dl compact><dt><b>Parameters:</b></dt><dd>
184
<table border="0" cellspacing="2" cellpadding="0">
185
<tr><td valign="top"></td><td valign="top"><em>w</em> </td><td>- pointer on memory block to read into. </td></tr>
186
<tr><td valign="top"></td><td valign="top"><em>count</em> </td><td>- size of memory block in words. </td></tr>
190
<p>Definition at line <a class="el" href="a00142.html#l00656">656</a> of file <a class="el" href="a00142.html">encoding.h</a>.</p>
192
<p>References <a class="el" href="a00142.html#l00088">bm::decoder_base::buf_</a>, and <a class="el" href="a00142.html#l00086">bm::decoder_base::seek()</a>.</p>
196
<a class="anchor" name="053d500db2a141a8f29a8a1f5431434d"></a><!-- doxytag: member="bm::decoder::get_16" ref="053d500db2a141a8f29a8a1f5431434d" args="(bm::short_t *s, unsigned count)" -->
197
<div class="memitem">
198
<div class="memproto">
199
<table class="memname">
201
<td class="memname">void bm::decoder::get_16 </td>
203
<td class="paramtype"><a class="el" href="a00106.html#e64960202b691ae1b6efe5fec12cb5af">bm::short_t</a> * </td>
204
<td class="paramname"> <em>s</em>, </td>
207
<td class="paramkey"></td>
209
<td class="paramtype">unsigned </td>
210
<td class="paramname"> <em>count</em></td><td> </td>
215
<td></td><td></td><td width="100%"><code> [inline]</code></td>
222
Reads block of 32-bit words from the decoding buffer.
224
<dl compact><dt><b>Parameters:</b></dt><dd>
225
<table border="0" cellspacing="2" cellpadding="0">
226
<tr><td valign="top"></td><td valign="top"><em>s</em> </td><td>- pointer on memory block to read into. </td></tr>
227
<tr><td valign="top"></td><td valign="top"><em>count</em> </td><td>- size of memory block in words. </td></tr>
231
<p>Definition at line <a class="el" href="a00142.html#l00690">690</a> of file <a class="el" href="a00142.html">encoding.h</a>.</p>
233
<p>References <a class="el" href="a00142.html#l00088">bm::decoder_base::buf_</a>, and <a class="el" href="a00142.html#l00086">bm::decoder_base::seek()</a>.</p>
237
<hr>The documentation for this class was generated from the following file:<ul>
238
<li><a class="el" href="a00142.html">encoding.h</a></ul>
240
<hr size="1"><address style="text-align: right;"><small>Generated on Mon Oct 12 12:17:26 2009 for BitMagic by
57
<hr/><a name="_details"></a><h2>Detailed Description</h2>
58
<h3>template<class DEC><br/>
59
class bm::deseriaizer_base< DEC ></h3>
61
<p>Base deserialization class. </p>
63
<p>Definition at line <a class="el" href="a00092_source.html#l00250">250</a> of file <a class="el" href="a00092_source.html">bmserial.h</a>.</p>
64
<hr/><h2>Member Typedef Documentation</h2>
65
<a class="anchor" id="ae453292ecf6fc43678d2308cedf50772"></a><!-- doxytag: member="bm::deseriaizer_base::decoder_type" ref="ae453292ecf6fc43678d2308cedf50772" args="" -->
67
<div class="memproto">
68
<div class="memtemplate">
69
template<class DEC> </div>
70
<table class="memname">
72
<td class="memname">typedef DEC <a class="el" href="a00057.html">bm::deseriaizer_base</a>< DEC >::<a class="el" href="a00057.html#ae453292ecf6fc43678d2308cedf50772">decoder_type</a></td>
78
<p>Reimplemented in <a class="el" href="a00058.html#a34d196efac18e976843727d6266cdf40">bm::deserializer< BV, DEC ></a>, and <a class="el" href="a00079.html#a195c435365f734b2b5b30f432e019cf5">bm::serial_stream_iterator< DEC ></a>.</p>
80
<p>Definition at line <a class="el" href="a00092_source.html#l00253">253</a> of file <a class="el" href="a00092_source.html">bmserial.h</a>.</p>
84
<hr/><h2>Constructor & Destructor Documentation</h2>
85
<a class="anchor" id="a931719914a0bea3491b2ba5ebf97cb03"></a><!-- doxytag: member="bm::deseriaizer_base::deseriaizer_base" ref="a931719914a0bea3491b2ba5ebf97cb03" args="()" -->
87
<div class="memproto">
88
<div class="memtemplate">
89
template<class DEC> </div>
90
<table class="memname">
92
<td class="memname"><a class="el" href="a00057.html">bm::deseriaizer_base</a>< DEC >::<a class="el" href="a00057.html">deseriaizer_base</a> </td>
94
<td class="paramname"></td>
95
<td> ) </td>
96
<td><code> [inline, protected]</code></td>
102
<p>Definition at line <a class="el" href="a00092_source.html#l00255">255</a> of file <a class="el" href="a00092_source.html">bmserial.h</a>.</p>
106
<hr/><h2>Member Function Documentation</h2>
107
<a class="anchor" id="abbd0f97d8c8bd1017cd65885870c2426"></a><!-- doxytag: member="bm::deseriaizer_base::read_gap_block" ref="abbd0f97d8c8bd1017cd65885870c2426" args="(decoder_type &decoder, unsigned block_type, bm::gap_word_t *dst_block, bm::gap_word_t &gap_head)" -->
108
<div class="memitem">
109
<div class="memproto">
110
<div class="memtemplate">
111
template<class DEC > </div>
112
<table class="memname">
114
<td class="memname">void <a class="el" href="a00057.html">bm::deseriaizer_base</a>< DEC >::read_gap_block </td>
116
<td class="paramtype"><a class="el" href="a00057.html#ae453292ecf6fc43678d2308cedf50772">decoder_type</a> & </td>
117
<td class="paramname"> <em>decoder</em>, </td>
120
<td class="paramkey"></td>
122
<td class="paramtype">unsigned </td>
123
<td class="paramname"> <em>block_type</em>, </td>
126
<td class="paramkey"></td>
128
<td class="paramtype"><a class="el" href="a00110.html#ac654d6319039a86546d235a236fc7cf6">bm::gap_word_t</a> * </td>
129
<td class="paramname"> <em>dst_block</em>, </td>
132
<td class="paramkey"></td>
134
<td class="paramtype"><a class="el" href="a00110.html#ac654d6319039a86546d235a236fc7cf6">bm::gap_word_t</a> & </td>
135
<td class="paramname"> <em>gap_head</em></td><td> </td>
140
<td></td><td></td><td><code> [inline, protected]</code></td>
146
<p>Read GAP block from the stream. </p>
148
<p>Definition at line <a class="el" href="a00092_source.html#l01129">1129</a> of file <a class="el" href="a00092_source.html">bmserial.h</a>.</p>
150
<p>References <a class="el" href="a00089_source.html#l00047">BM_ASSERT</a>, <a class="el" href="a00090_source.html#l02064">bm::gap_invert()</a>, <a class="el" href="a00090_source.html#l02122">bm::gap_length()</a>, <a class="el" href="a00088_source.html#l00071">bm::gap_max_bits</a>, <a class="el" href="a00090_source.html#l01993">bm::gap_set_all()</a>, <a class="el" href="a00090_source.html#l01098">bm::gap_set_value()</a>, <a class="el" href="a00092_source.html#l00084">bm::set_block_arrgap</a>, <a class="el" href="a00092_source.html#l00087">bm::set_block_arrgap_egamma</a>, <a class="el" href="a00092_source.html#l00089">bm::set_block_arrgap_egamma_inv</a>, <a class="el" href="a00092_source.html#l00090">bm::set_block_arrgap_inv</a>, <a class="el" href="a00092_source.html#l00085">bm::set_block_bit_1bit</a>, <a class="el" href="a00092_source.html#l00080">bm::set_block_gap</a>, and <a class="el" href="a00092_source.html#l00086">bm::set_block_gap_egamma</a>.</p>
152
<p>Referenced by <a class="el" href="a00092_source.html#l01232">bm::deserializer< BV, DEC >::deserialize_gap()</a>, and <a class="el" href="a00092_source.html#l02771">bm::serial_stream_iterator< DEC >::get_gap_block()</a>.</p>
156
<hr/>The documentation for this class was generated from the following file:<ul>
157
<li><a class="el" href="a00092_source.html">bmserial.h</a></li>
160
<hr size="1"/><address style="text-align: right;"><small>Generated on Sun Nov 22 10:49:48 2009 for BitMagic by
241
161
<a href="http://www.doxygen.org/index.html">
242
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
162
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>