1
1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
2
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
3
<title>BitMagic: Processor specific optimizations for SSE2 instructions</title>
3
<title>BitMagic: bm::decoder_base Class Reference</title>
4
4
<link href="doxygen.css" rel="stylesheet" type="text/css">
6
6
<!-- Generated by Doxygen 1.4.1 -->
7
7
<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical List</a> | <a class="qindex" href="annotated.html">Data Structures</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="namespacemembers.html">Namespace Members</a> | <a class="qindex" href="functions.html">Data Fields</a> | <a class="qindex" href="globals.html">Globals</a> | <a class="qindex" href="examples.html">Examples</a></div>
8
<h1>Processor specific optimizations for SSE2 instructions<br>
10
[<a class="el" href="a00094.html">BitMagic C++ Library</a>]</small>
13
Collaboration diagram for Processor specific optimizations for SSE2 instructions:<center><table><tr><td><img src="a00099.png" border="0" alt="" usemap="#a00160_map">
14
<map name="a00160_map">
15
<area href="a00094.html" shape="rect" coords="19,5,152,26" alt="">
16
</map></td></tr></table></center>
17
<table border="0" cellpadding="0" cellspacing="0">
9
<a class="el" href="a00129.html">bm</a>::<a class="el" href="a00099.html">decoder_base</a></div>
10
<h1>bm::decoder_base Class Reference</h1>Base class for all decoding functionality.
11
<a href="#_details">More...</a>
13
<code>#include <<a class="el" href="a00145.html">encoding.h</a>></code>
15
Inheritance diagram for bm::decoder_base:<p><center><img src="a00223.png" border="0" usemap="#a00224" alt="Inheritance graph"></center>
17
<area href="a00098.html" shape="rect" coords="7,85,89,107" alt="">
18
<area href="a00100.html" shape="rect" coords="113,85,268,107" alt="">
20
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center><table border="0" cellpadding="0" cellspacing="0">
19
<tr><td colspan="2"><br><h2>Data Structures</h2></td></tr>
20
<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00073.html">bm::sse2_empty_guard</a></td></tr>
22
<tr><td class="mdescLeft"> </td><td class="mdescRight">SSE2 reinitialization guard class. <a href="a00073.html#_details">More...</a><br></td></tr>
23
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
24
<tr><td class="memItemLeft" nowrap align="right" valign="top">BMFORCEINLINE void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00099.html#ga0">bm::sse2_xor_arr_2_mask</a> (__m128i *BMRESTRICT dst, const __m128i *BMRESTRICT src, const __m128i *BMRESTRICT src_end, <a class="el" href="a00092.html#a10">bm::word_t</a> mask)</td></tr>
26
<tr><td class="mdescLeft"> </td><td class="mdescRight">XOR array elements to specified mask dst = *src ^ mask. <a href="#ga0"></a><br></td></tr>
27
<tr><td class="memItemLeft" nowrap align="right" valign="top">BMFORCEINLINE void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00099.html#ga1">bm::sse2_andnot_arr_2_mask</a> (__m128i *BMRESTRICT dst, const __m128i *BMRESTRICT src, const __m128i *BMRESTRICT src_end, <a class="el" href="a00092.html#a10">bm::word_t</a> mask)</td></tr>
29
<tr><td class="mdescLeft"> </td><td class="mdescRight">Inverts array elements and NOT them to specified mask dst = ~*src & mask. <a href="#ga1"></a><br></td></tr>
30
<tr><td class="memItemLeft" nowrap align="right" valign="top">BMFORCEINLINE void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00099.html#ga2">bm::sse2_and_arr</a> (__m128i *BMRESTRICT dst, const __m128i *BMRESTRICT src, const __m128i *BMRESTRICT src_end)</td></tr>
32
<tr><td class="mdescLeft"> </td><td class="mdescRight">AND array elements against another array dst &= *src. <a href="#ga2"></a><br></td></tr>
33
<tr><td class="memItemLeft" nowrap align="right" valign="top">BMFORCEINLINE void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00099.html#ga3">bm::sse2_or_arr</a> (__m128i *BMRESTRICT dst, const __m128i *BMRESTRICT src, const __m128i *BMRESTRICT src_end)</td></tr>
35
<tr><td class="mdescLeft"> </td><td class="mdescRight">OR array elements against another array dst |= *src. <a href="#ga3"></a><br></td></tr>
36
<tr><td class="memItemLeft" nowrap align="right" valign="top">BMFORCEINLINE void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00099.html#ga4">bm::sse2_xor_arr</a> (__m128i *BMRESTRICT dst, const __m128i *BMRESTRICT src, const __m128i *BMRESTRICT src_end)</td></tr>
38
<tr><td class="mdescLeft"> </td><td class="mdescRight">OR array elements against another array dst |= *src. <a href="#ga4"></a><br></td></tr>
39
<tr><td class="memItemLeft" nowrap align="right" valign="top">BMFORCEINLINE void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00099.html#ga5">bm::sse2_sub_arr</a> (__m128i *BMRESTRICT dst, const __m128i *BMRESTRICT src, const __m128i *BMRESTRICT src_end)</td></tr>
41
<tr><td class="mdescLeft"> </td><td class="mdescRight">AND-NOT (SUB) array elements against another array dst &= ~*src. <a href="#ga5"></a><br></td></tr>
42
<tr><td class="memItemLeft" nowrap align="right" valign="top">BMFORCEINLINE void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00099.html#ga6">bm::sse2_set_block</a> (__m128i *BMRESTRICT dst, __m128i *BMRESTRICT dst_end, <a class="el" href="a00092.html#a10">bm::word_t</a> value)</td></tr>
44
<tr><td class="mdescLeft"> </td><td class="mdescRight">SSE2 block memset dst = value. <a href="#ga6"></a><br></td></tr>
45
<tr><td class="memItemLeft" nowrap align="right" valign="top">BMFORCEINLINE void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00099.html#ga7">bm::sse2_copy_block</a> (__m128i *BMRESTRICT dst, const __m128i *BMRESTRICT src, const __m128i *BMRESTRICT src_end)</td></tr>
47
<tr><td class="mdescLeft"> </td><td class="mdescRight">SSE2 block copy dst = *src. <a href="#ga7"></a><br></td></tr>
48
<tr><td class="memItemLeft" nowrap align="right" valign="top">BMFORCEINLINE void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00099.html#ga8">bm::sse2_invert_arr</a> (<a class="el" href="a00092.html#a10">bm::word_t</a> *first, <a class="el" href="a00092.html#a10">bm::word_t</a> *last)</td></tr>
50
<tr><td class="mdescLeft"> </td><td class="mdescRight">Invert array elements dst = ~*dst or dst ^= *dst. <a href="#ga8"></a><br></td></tr>
51
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00092.html#a9">bm::id_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00099.html#ga9">bm::sse2_bit_count</a> (const __m128i *block, const __m128i *block_end)</td></tr>
54
<hr><h2>Function Documentation</h2>
55
<a class="anchor" name="ga2" doxytag="bm::sse2_and_arr"></a><p>
56
<table class="mdTable" cellpadding="2" cellspacing="0">
59
<table cellpadding="0" cellspacing="0" border="0">
61
<td class="md" nowrap valign="top">BMFORCEINLINE void sse2_and_arr </td>
62
<td class="md" valign="top">( </td>
63
<td class="md" nowrap valign="top">__m128i *BMRESTRICT </td>
64
<td class="mdname" nowrap> <em>dst</em>, </td>
67
<td class="md" nowrap align="right"></td>
69
<td class="md" nowrap>const __m128i *BMRESTRICT </td>
70
<td class="mdname" nowrap> <em>src</em>, </td>
73
<td class="md" nowrap align="right"></td>
75
<td class="md" nowrap>const __m128i *BMRESTRICT </td>
76
<td class="mdname" nowrap> <em>src_end</em></td>
80
<td class="md">) </td>
81
<td class="md" colspan="2"></td>
87
<table cellspacing="5" cellpadding="0" border="0">
95
AND array elements against another array dst &= *src.
99
Definition at line <a class="el" href="a00107.html#l00137">137</a> of file <a class="el" href="a00107.html">bmsse2.h</a>. </td>
102
<a class="anchor" name="ga1" doxytag="bm::sse2_andnot_arr_2_mask"></a><p>
103
<table class="mdTable" cellpadding="2" cellspacing="0">
106
<table cellpadding="0" cellspacing="0" border="0">
108
<td class="md" nowrap valign="top">BMFORCEINLINE void sse2_andnot_arr_2_mask </td>
109
<td class="md" valign="top">( </td>
110
<td class="md" nowrap valign="top">__m128i *BMRESTRICT </td>
111
<td class="mdname" nowrap> <em>dst</em>, </td>
114
<td class="md" nowrap align="right"></td>
116
<td class="md" nowrap>const __m128i *BMRESTRICT </td>
117
<td class="mdname" nowrap> <em>src</em>, </td>
120
<td class="md" nowrap align="right"></td>
122
<td class="md" nowrap>const __m128i *BMRESTRICT </td>
123
<td class="mdname" nowrap> <em>src_end</em>, </td>
126
<td class="md" nowrap align="right"></td>
128
<td class="md" nowrap><a class="el" href="a00092.html#a10">bm::word_t</a> </td>
129
<td class="mdname" nowrap> <em>mask</em></td>
133
<td class="md">) </td>
134
<td class="md" colspan="2"></td>
140
<table cellspacing="5" cellpadding="0" border="0">
148
Inverts array elements and NOT them to specified mask dst = ~*src & mask.
152
Definition at line <a class="el" href="a00107.html#l00109">109</a> of file <a class="el" href="a00107.html">bmsse2.h</a>. </td>
155
<a class="anchor" name="ga9" doxytag="bm::sse2_bit_count"></a><p>
156
<table class="mdTable" cellpadding="2" cellspacing="0">
159
<table cellpadding="0" cellspacing="0" border="0">
161
<td class="md" nowrap valign="top"><a class="el" href="a00092.html#a9">bm::id_t</a> sse2_bit_count </td>
162
<td class="md" valign="top">( </td>
163
<td class="md" nowrap valign="top">const __m128i * </td>
164
<td class="mdname" nowrap> <em>block</em>, </td>
167
<td class="md" nowrap align="right"></td>
169
<td class="md" nowrap>const __m128i * </td>
170
<td class="mdname" nowrap> <em>block_end</em></td>
174
<td class="md">) </td>
175
<td class="md" colspan="2"><code> [inline]</code></td>
181
<table cellspacing="5" cellpadding="0" border="0">
189
SSE2 optimized bitcounting function implements parallel bitcounting algorithm for SSE2 instruction set.<p>
191
unsigned CalcBitCount32(unsigned b)
193
b = (b & 0x55555555) + (b >> 1 & 0x55555555);
194
b = (b & 0x33333333) + (b >> 2 & 0x33333333);
195
b = (b + (b >> 4)) & 0x0F0F0F0F;
196
b = b + (b >> 8);
197
b = (b + (b >> 16)) & 0x0000003F;
202
Definition at line <a class="el" href="a00107.html#l00414">414</a> of file <a class="el" href="a00107.html">bmsse2.h</a>. </td>
205
<a class="anchor" name="ga7" doxytag="bm::sse2_copy_block"></a><p>
206
<table class="mdTable" cellpadding="2" cellspacing="0">
209
<table cellpadding="0" cellspacing="0" border="0">
211
<td class="md" nowrap valign="top">BMFORCEINLINE void sse2_copy_block </td>
212
<td class="md" valign="top">( </td>
213
<td class="md" nowrap valign="top">__m128i *BMRESTRICT </td>
214
<td class="mdname" nowrap> <em>dst</em>, </td>
217
<td class="md" nowrap align="right"></td>
219
<td class="md" nowrap>const __m128i *BMRESTRICT </td>
220
<td class="mdname" nowrap> <em>src</em>, </td>
223
<td class="md" nowrap align="right"></td>
225
<td class="md" nowrap>const __m128i *BMRESTRICT </td>
226
<td class="mdname" nowrap> <em>src_end</em></td>
230
<td class="md">) </td>
231
<td class="md" colspan="2"></td>
237
<table cellspacing="5" cellpadding="0" border="0">
245
SSE2 block copy dst = *src.
249
Definition at line <a class="el" href="a00107.html#l00330">330</a> of file <a class="el" href="a00107.html">bmsse2.h</a>. </td>
252
<a class="anchor" name="ga8" doxytag="bm::sse2_invert_arr"></a><p>
253
<table class="mdTable" cellpadding="2" cellspacing="0">
256
<table cellpadding="0" cellspacing="0" border="0">
258
<td class="md" nowrap valign="top">BMFORCEINLINE void sse2_invert_arr </td>
259
<td class="md" valign="top">( </td>
260
<td class="md" nowrap valign="top"><a class="el" href="a00092.html#a10">bm::word_t</a> * </td>
261
<td class="mdname" nowrap> <em>first</em>, </td>
264
<td class="md" nowrap align="right"></td>
266
<td class="md" nowrap><a class="el" href="a00092.html#a10">bm::word_t</a> * </td>
267
<td class="mdname" nowrap> <em>last</em></td>
271
<td class="md">) </td>
272
<td class="md" colspan="2"></td>
278
<table cellspacing="5" cellpadding="0" border="0">
286
Invert array elements dst = ~*dst or dst ^= *dst.
290
Definition at line <a class="el" href="a00107.html#l00375">375</a> of file <a class="el" href="a00107.html">bmsse2.h</a>. </td>
293
<a class="anchor" name="ga3" doxytag="bm::sse2_or_arr"></a><p>
294
<table class="mdTable" cellpadding="2" cellspacing="0">
297
<table cellpadding="0" cellspacing="0" border="0">
299
<td class="md" nowrap valign="top">BMFORCEINLINE void sse2_or_arr </td>
300
<td class="md" valign="top">( </td>
301
<td class="md" nowrap valign="top">__m128i *BMRESTRICT </td>
302
<td class="mdname" nowrap> <em>dst</em>, </td>
305
<td class="md" nowrap align="right"></td>
307
<td class="md" nowrap>const __m128i *BMRESTRICT </td>
308
<td class="mdname" nowrap> <em>src</em>, </td>
311
<td class="md" nowrap align="right"></td>
313
<td class="md" nowrap>const __m128i *BMRESTRICT </td>
314
<td class="mdname" nowrap> <em>src_end</em></td>
318
<td class="md">) </td>
319
<td class="md" colspan="2"></td>
325
<table cellspacing="5" cellpadding="0" border="0">
333
OR array elements against another array dst |= *src.
337
Definition at line <a class="el" href="a00107.html#l00179">179</a> of file <a class="el" href="a00107.html">bmsse2.h</a>. </td>
340
<a class="anchor" name="ga6" doxytag="bm::sse2_set_block"></a><p>
341
<table class="mdTable" cellpadding="2" cellspacing="0">
344
<table cellpadding="0" cellspacing="0" border="0">
346
<td class="md" nowrap valign="top">BMFORCEINLINE void sse2_set_block </td>
347
<td class="md" valign="top">( </td>
348
<td class="md" nowrap valign="top">__m128i *BMRESTRICT </td>
349
<td class="mdname" nowrap> <em>dst</em>, </td>
352
<td class="md" nowrap align="right"></td>
354
<td class="md" nowrap>__m128i *BMRESTRICT </td>
355
<td class="mdname" nowrap> <em>dst_end</em>, </td>
358
<td class="md" nowrap align="right"></td>
360
<td class="md" nowrap><a class="el" href="a00092.html#a10">bm::word_t</a> </td>
361
<td class="mdname" nowrap> <em>value</em></td>
365
<td class="md">) </td>
366
<td class="md" colspan="2"></td>
372
<table cellspacing="5" cellpadding="0" border="0">
380
SSE2 block memset dst = value.
384
Definition at line <a class="el" href="a00107.html#l00298">298</a> of file <a class="el" href="a00107.html">bmsse2.h</a>. </td>
387
<a class="anchor" name="ga5" doxytag="bm::sse2_sub_arr"></a><p>
388
<table class="mdTable" cellpadding="2" cellspacing="0">
391
<table cellpadding="0" cellspacing="0" border="0">
393
<td class="md" nowrap valign="top">BMFORCEINLINE void sse2_sub_arr </td>
394
<td class="md" valign="top">( </td>
395
<td class="md" nowrap valign="top">__m128i *BMRESTRICT </td>
396
<td class="mdname" nowrap> <em>dst</em>, </td>
399
<td class="md" nowrap align="right"></td>
401
<td class="md" nowrap>const __m128i *BMRESTRICT </td>
402
<td class="mdname" nowrap> <em>src</em>, </td>
405
<td class="md" nowrap align="right"></td>
407
<td class="md" nowrap>const __m128i *BMRESTRICT </td>
408
<td class="mdname" nowrap> <em>src_end</em></td>
412
<td class="md">) </td>
413
<td class="md" colspan="2"></td>
419
<table cellspacing="5" cellpadding="0" border="0">
427
AND-NOT (SUB) array elements against another array dst &= ~*src.
431
Definition at line <a class="el" href="a00107.html#l00258">258</a> of file <a class="el" href="a00107.html">bmsse2.h</a>. </td>
434
<a class="anchor" name="ga4" doxytag="bm::sse2_xor_arr"></a><p>
435
<table class="mdTable" cellpadding="2" cellspacing="0">
438
<table cellpadding="0" cellspacing="0" border="0">
440
<td class="md" nowrap valign="top">BMFORCEINLINE void sse2_xor_arr </td>
441
<td class="md" valign="top">( </td>
442
<td class="md" nowrap valign="top">__m128i *BMRESTRICT </td>
443
<td class="mdname" nowrap> <em>dst</em>, </td>
446
<td class="md" nowrap align="right"></td>
448
<td class="md" nowrap>const __m128i *BMRESTRICT </td>
449
<td class="mdname" nowrap> <em>src</em>, </td>
452
<td class="md" nowrap align="right"></td>
454
<td class="md" nowrap>const __m128i *BMRESTRICT </td>
455
<td class="mdname" nowrap> <em>src_end</em></td>
459
<td class="md">) </td>
460
<td class="md" colspan="2"></td>
466
<table cellspacing="5" cellpadding="0" border="0">
474
OR array elements against another array dst |= *src.
478
Definition at line <a class="el" href="a00107.html#l00218">218</a> of file <a class="el" href="a00107.html">bmsse2.h</a>. </td>
481
<a class="anchor" name="ga0" doxytag="bm::sse2_xor_arr_2_mask"></a><p>
482
<table class="mdTable" cellpadding="2" cellspacing="0">
485
<table cellpadding="0" cellspacing="0" border="0">
487
<td class="md" nowrap valign="top">BMFORCEINLINE void sse2_xor_arr_2_mask </td>
488
<td class="md" valign="top">( </td>
489
<td class="md" nowrap valign="top">__m128i *BMRESTRICT </td>
490
<td class="mdname" nowrap> <em>dst</em>, </td>
493
<td class="md" nowrap align="right"></td>
495
<td class="md" nowrap>const __m128i *BMRESTRICT </td>
496
<td class="mdname" nowrap> <em>src</em>, </td>
499
<td class="md" nowrap align="right"></td>
501
<td class="md" nowrap>const __m128i *BMRESTRICT </td>
502
<td class="mdname" nowrap> <em>src_end</em>, </td>
505
<td class="md" nowrap align="right"></td>
507
<td class="md" nowrap><a class="el" href="a00092.html#a10">bm::word_t</a> </td>
508
<td class="mdname" nowrap> <em>mask</em></td>
512
<td class="md">) </td>
513
<td class="md" colspan="2"></td>
519
<table cellspacing="5" cellpadding="0" border="0">
527
XOR array elements to specified mask dst = *src ^ mask.
531
Definition at line <a class="el" href="a00107.html#l00084">84</a> of file <a class="el" href="a00107.html">bmsse2.h</a>. </td>
534
<hr size="1"><address style="align: right;"><small>Generated on Thu Apr 20 13:29:10 2006 for BitMagic by
22
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
23
<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00099.html#a0">decoder_base</a> (const unsigned char *buf)</td></tr>
25
<tr><td class="memItemLeft" nowrap align="right" valign="top">BMFORCEINLINE unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="a00099.html#a1">get_8</a> ()</td></tr>
27
<tr><td class="mdescLeft"> </td><td class="mdescRight">Reads character from the decoding buffer. <a href="#a1"></a><br></td></tr>
28
<tr><td class="memItemLeft" nowrap align="right" valign="top">BMFORCEINLINE unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="a00099.html#a2">size</a> () const </td></tr>
30
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns size of the current decoding stream. <a href="#a2"></a><br></td></tr>
31
<tr><td class="memItemLeft" nowrap align="right" valign="top">BMFORCEINLINE void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00099.html#a3">seek</a> (int delta)</td></tr>
33
<tr><td class="mdescLeft"> </td><td class="mdescRight">change current position <a href="#a3"></a><br></td></tr>
34
<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
35
<tr><td class="memItemLeft" nowrap align="right" valign="top">const unsigned char * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00099.html#p0">buf_</a></td></tr>
37
<tr><td class="memItemLeft" nowrap align="right" valign="top">const unsigned char * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00099.html#p1">start_</a></td></tr>
40
<hr><a name="_details"></a><h2>Detailed Description</h2>
41
Base class for all decoding functionality.
45
Definition at line <a class="el" href="a00145.html#l00064">64</a> of file <a class="el" href="a00145.html">encoding.h</a>.<hr><h2>Constructor & Destructor Documentation</h2>
46
<a class="anchor" name="a0" doxytag="bm::decoder_base::decoder_base"></a><p>
47
<table class="mdTable" cellpadding="2" cellspacing="0">
50
<table cellpadding="0" cellspacing="0" border="0">
52
<td class="md" nowrap valign="top">bm::decoder_base::decoder_base </td>
53
<td class="md" valign="top">( </td>
54
<td class="md" nowrap valign="top">const unsigned char * </td>
55
<td class="mdname1" valign="top" nowrap> <em>buf</em> </td>
56
<td class="md" valign="top"> ) </td>
57
<td class="md" nowrap><code> [inline]</code></td>
63
<table cellspacing="5" cellpadding="0" border="0">
73
Definition at line <a class="el" href="a00145.html#l00067">67</a> of file <a class="el" href="a00145.html">encoding.h</a>.
75
References <a class="el" href="a00145.html#l00077">buf_</a>, and <a class="el" href="a00145.html#l00078">start_</a>. </td>
78
<hr><h2>Member Function Documentation</h2>
79
<a class="anchor" name="a1" doxytag="bm::decoder_base::get_8"></a><p>
80
<table class="mdTable" cellpadding="2" cellspacing="0">
83
<table cellpadding="0" cellspacing="0" border="0">
85
<td class="md" nowrap valign="top">BMFORCEINLINE unsigned char bm::decoder_base::get_8 </td>
86
<td class="md" valign="top">( </td>
87
<td class="mdname1" valign="top" nowrap> </td>
88
<td class="md" valign="top"> ) </td>
89
<td class="md" nowrap><code> [inline]</code></td>
95
<table cellspacing="5" cellpadding="0" border="0">
103
Reads character from the decoding buffer.
107
Definition at line <a class="el" href="a00145.html#l00069">69</a> of file <a class="el" href="a00145.html">encoding.h</a>.
109
References <a class="el" href="a00140.html#l00079">BMFORCEINLINE</a>, and <a class="el" href="a00145.html#l00077">buf_</a>. </td>
112
<a class="anchor" name="a3" doxytag="bm::decoder_base::seek"></a><p>
113
<table class="mdTable" cellpadding="2" cellspacing="0">
116
<table cellpadding="0" cellspacing="0" border="0">
118
<td class="md" nowrap valign="top">BMFORCEINLINE void bm::decoder_base::seek </td>
119
<td class="md" valign="top">( </td>
120
<td class="md" nowrap valign="top">int </td>
121
<td class="mdname1" valign="top" nowrap> <em>delta</em> </td>
122
<td class="md" valign="top"> ) </td>
123
<td class="md" nowrap><code> [inline]</code></td>
129
<table cellspacing="5" cellpadding="0" border="0">
137
change current position
141
Definition at line <a class="el" href="a00145.html#l00075">75</a> of file <a class="el" href="a00145.html">encoding.h</a>.
143
References <a class="el" href="a00145.html#l00077">buf_</a>.
145
Referenced by <a class="el" href="a00145.html#l00363">bm::decoder_little_endian::get_16()</a>, <a class="el" href="a00145.html#l00300">bm::decoder::get_16()</a>, <a class="el" href="a00145.html#l00343">bm::decoder_little_endian::get_32()</a>, and <a class="el" href="a00145.html#l00275">bm::decoder::get_32()</a>. </td>
148
<a class="anchor" name="a2" doxytag="bm::decoder_base::size"></a><p>
149
<table class="mdTable" cellpadding="2" cellspacing="0">
152
<table cellpadding="0" cellspacing="0" border="0">
154
<td class="md" nowrap valign="top">BMFORCEINLINE unsigned bm::decoder_base::size </td>
155
<td class="md" valign="top">( </td>
156
<td class="mdname1" valign="top" nowrap> </td>
157
<td class="md" valign="top"> ) </td>
158
<td class="md" nowrap> const<code> [inline]</code></td>
164
<table cellspacing="5" cellpadding="0" border="0">
172
Returns size of the current decoding stream.
176
Definition at line <a class="el" href="a00145.html#l00072">72</a> of file <a class="el" href="a00145.html">encoding.h</a>.
178
References <a class="el" href="a00145.html#l00077">buf_</a>, and <a class="el" href="a00145.html#l00078">start_</a>. </td>
181
<hr><h2>Field Documentation</h2>
182
<a class="anchor" name="p0" doxytag="bm::decoder_base::buf_"></a><p>
183
<table class="mdTable" cellpadding="2" cellspacing="0">
186
<table cellpadding="0" cellspacing="0" border="0">
188
<td class="md" nowrap valign="top">const unsigned char* <a class="el" href="a00099.html#p0">bm::decoder_base::buf_</a><code> [protected]</code> </td>
194
<table cellspacing="5" cellpadding="0" border="0">
204
Definition at line <a class="el" href="a00145.html#l00077">77</a> of file <a class="el" href="a00145.html">encoding.h</a>.
206
Referenced by <a class="el" href="a00145.html#l00067">decoder_base()</a>, <a class="el" href="a00145.html#l00069">get_8()</a>, <a class="el" href="a00145.html#l00075">seek()</a>, and <a class="el" href="a00145.html#l00072">size()</a>. </td>
209
<a class="anchor" name="p1" doxytag="bm::decoder_base::start_"></a><p>
210
<table class="mdTable" cellpadding="2" cellspacing="0">
213
<table cellpadding="0" cellspacing="0" border="0">
215
<td class="md" nowrap valign="top">const unsigned char* <a class="el" href="a00099.html#p1">bm::decoder_base::start_</a><code> [protected]</code> </td>
221
<table cellspacing="5" cellpadding="0" border="0">
231
Definition at line <a class="el" href="a00145.html#l00078">78</a> of file <a class="el" href="a00145.html">encoding.h</a>.
233
Referenced by <a class="el" href="a00145.html#l00067">decoder_base()</a>, and <a class="el" href="a00145.html#l00072">size()</a>. </td>
236
<hr>The documentation for this class was generated from the following file:<ul>
237
<li><a class="el" href="a00145.html">encoding.h</a></ul>
238
<hr size="1"><address style="align: right;"><small>Generated on Sun Aug 5 14:12:40 2007 for BitMagic by
535
239
<a href="http://www.doxygen.org/index.html">
536
240
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.1 </small></address>