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

« back to all changes in this revision

Viewing changes to doc/html/a00116.html

  • Committer: Bazaar Package Importer
  • Author(s): Roberto C. Sanchez
  • Date: 2009-10-30 18:48:35 UTC
  • mfrom: (4.1.4 sid)
  • Revision ID: james.westby@ubuntu.com-20091030184835-2tqroygiq2pevwij
Tags: 3.6.0-1
New upstream release

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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: bvector serialization</title>
 
4
<link href="doxygen.css" rel="stylesheet" type="text/css">
 
5
<link href="tabs.css" rel="stylesheet" type="text/css">
 
6
</head><body>
 
7
<!-- Generated by Doxygen 1.5.5 -->
 
8
<div class="navigation" id="top">
 
9
  <div class="tabs">
 
10
    <ul>
 
11
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
 
12
      <li><a href="modules.html"><span>Modules</span></a></li>
 
13
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
 
14
      <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
 
15
      <li><a href="files.html"><span>Files</span></a></li>
 
16
      <li><a href="examples.html"><span>Examples</span></a></li>
 
17
    </ul>
 
18
  </div>
 
19
</div>
 
20
<div class="contents">
 
21
<h1>bvector serialization<br>
 
22
<small>
 
23
[<a class="el" href="a00108.html">BitMagic C++ Library</a>]</small>
 
24
</h1>
 
25
<p>
 
26
<div class="dynheader">
 
27
Collaboration diagram for bvector serialization:</div>
 
28
<div class="dynsection">
 
29
<center><table><tr><td><img src="a00116.png" border="0" alt="" usemap="#a00184_map">
 
30
<map name="a00184_map">
 
31
<area shape="rect" id="node1" href="a00108.html" title="For more information please visit: http://bmagic.sourceforge.net." alt="" coords="5,5,149,33">
 
 
b'</map></td></tr></table></center>'
 
32
</div>
 
33
<table border="0" cellpadding="0" cellspacing="0">
 
34
<tr><td></td></tr>
 
35
<tr><td colspan="2"><br><h2>Data Structures</h2></td></tr>
 
36
<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00079.html">bm::serializer&lt; BV &gt;</a></td></tr>
 
37
 
 
38
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Bit-vector serialization class.  <a href="a00079.html#_details">More...</a><br></td></tr>
 
39
<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00078.html">bm::serial_stream_iterator&lt; DEC &gt;</a></td></tr>
 
40
 
 
41
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Serialization stream iterator.  <a href="a00078.html#_details">More...</a><br></td></tr>
 
42
<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00075.html">bm::operation_deserializer&lt; BV &gt;</a></td></tr>
 
43
 
 
44
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Class <a class="el" href="a00061.html" title="Class deserializer.">deserializer</a>, can perform logical operation on bit-vector and serialized bit-vector.  <a href="a00075.html#_details">More...</a><br></td></tr>
 
45
<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html">bm::deserializer&lt; BV, DEC &gt;</a></td></tr>
 
46
 
 
47
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Class <a class="el" href="a00061.html" title="Class deserializer.">deserializer</a>.  <a href="a00061.html#_details">More...</a><br></td></tr>
 
48
<tr><td colspan="2"><br><h2>Enumerations</h2></td></tr>
 
49
<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#g537dfe6318f1f1fe18d86dac312be978">bm::serialization_flags</a> { <a class="el" href="a00116.html#gg537dfe6318f1f1fe18d86dac312be978cdd8c071c079589388c3ca7bd4f367c8">bm::BM_NO_BYTE_ORDER</a> =  1, 
 
50
<a class="el" href="a00116.html#gg537dfe6318f1f1fe18d86dac312be9785521473081d341bc32ac59538e6a8096">bm::BM_NO_GAP_LENGTH</a> =  (1 &lt;&lt; 1)
 
51
 }</td></tr>
 
52
 
 
53
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Bit mask flags for serialization algorithm.  <a href="a00116.html#g537dfe6318f1f1fe18d86dac312be978">More...</a><br></td></tr>
 
54
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
 
55
<tr><td class="memTemplParams" nowrap colspan="2">template&lt;class BV&gt; </td></tr>
 
56
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">unsigned&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00116.html#g5210c3bda57254ef2e8c71e23306cc88">bm::serialize</a> (const BV &amp;bv, unsigned char *buf, <a class="el" href="a00106.html#17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *temp_block, unsigned serialization_flags=0)</td></tr>
 
57
 
 
58
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Saves bitvector into memory.  <a href="#g5210c3bda57254ef2e8c71e23306cc88"></a><br></td></tr>
 
59
<tr><td class="memTemplParams" nowrap colspan="2">template&lt;class BV&gt; </td></tr>
 
60
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">unsigned&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00116.html#g213033b5cc6add74aa4bd1d614b56192">bm::serialize</a> (BV &amp;bv, unsigned char *buf, unsigned serialization_flags=0)</td></tr>
 
61
 
 
62
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Saves bitvector into memory. Allocates temporary memory block for <a class="el" href="a00040.html" title="bitvector with runtime compression of bits.">bvector</a>.  <a href="#g213033b5cc6add74aa4bd1d614b56192"></a><br></td></tr>
 
63
<tr><td class="memTemplParams" nowrap colspan="2">template&lt;class BV&gt; </td></tr>
 
64
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">unsigned&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00116.html#gfbe633db8da3d867f098468269fd8d3d">bm::deserialize</a> (BV &amp;bv, const unsigned char *buf, <a class="el" href="a00106.html#17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *temp_block=0)</td></tr>
 
65
 
 
66
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Bitvector deserialization from memory.  <a href="#gfbe633db8da3d867f098468269fd8d3d"></a><br></td></tr>
 
67
</table>
 
68
<hr><a name="_details"></a><h2>Detailed Description</h2>
 
69
bvector serialization <hr><h2>Enumeration Type Documentation</h2>
 
70
<a class="anchor" name="g537dfe6318f1f1fe18d86dac312be978"></a><!-- doxytag: member="bm::serialization_flags" ref="g537dfe6318f1f1fe18d86dac312be978" args="" -->
 
71
<div class="memitem">
 
72
<div class="memproto">
 
73
      <table class="memname">
 
74
        <tr>
 
75
          <td class="memname">enum <a class="el" href="a00116.html#g537dfe6318f1f1fe18d86dac312be978">bm::serialization_flags</a>          </td>
 
76
        </tr>
 
77
      </table>
 
78
</div>
 
79
<div class="memdoc">
 
80
 
 
81
<p>
 
82
Bit mask flags for serialization algorithm. 
 
83
<p>
 
84
<dl compact><dt><b>Enumerator: </b></dt><dd>
 
85
<table border="0" cellspacing="2" cellpadding="0">
 
86
<tr><td valign="top"><em><a class="anchor" name="gg537dfe6318f1f1fe18d86dac312be978cdd8c071c079589388c3ca7bd4f367c8"></a><!-- doxytag: member="BM_NO_BYTE_ORDER" ref="gg537dfe6318f1f1fe18d86dac312be978cdd8c071c079589388c3ca7bd4f367c8" args="" -->BM_NO_BYTE_ORDER</em>&nbsp;</td><td>
 
87
save no byte-order info (save some space) </td></tr>
 
88
<tr><td valign="top"><em><a class="anchor" name="gg537dfe6318f1f1fe18d86dac312be9785521473081d341bc32ac59538e6a8096"></a><!-- doxytag: member="BM_NO_GAP_LENGTH" ref="gg537dfe6318f1f1fe18d86dac312be9785521473081d341bc32ac59538e6a8096" args="" -->BM_NO_GAP_LENGTH</em>&nbsp;</td><td>
 
89
save no GAP info (save some space) </td></tr>
 
90
</table>
 
91
</dl>
 
92
 
 
93
<p>Definition at line <a class="el" href="a00136.html#l00739">739</a> of file <a class="el" href="a00136.html">bmserial.h</a>.</p>
 
94
 
 
95
</div>
 
96
</div><p>
 
97
<hr><h2>Function Documentation</h2>
 
98
<a class="anchor" name="gfbe633db8da3d867f098468269fd8d3d"></a><!-- doxytag: member="bm::deserialize" ref="gfbe633db8da3d867f098468269fd8d3d" args="(BV &amp;bv, const unsigned char *buf, bm::word_t *temp_block=0)" -->
 
99
<div class="memitem">
 
100
<div class="memproto">
 
101
<div class="memtemplate">
 
102
template&lt;class BV&gt; </div>
 
103
      <table class="memname">
 
104
        <tr>
 
105
          <td class="memname">unsigned bm::deserialize           </td>
 
106
          <td>(</td>
 
107
          <td class="paramtype">BV &amp;&nbsp;</td>
 
108
          <td class="paramname"> <em>bv</em>, </td>
 
109
        </tr>
 
110
        <tr>
 
111
          <td class="paramkey"></td>
 
112
          <td></td>
 
113
          <td class="paramtype">const unsigned char *&nbsp;</td>
 
114
          <td class="paramname"> <em>buf</em>, </td>
 
115
        </tr>
 
116
        <tr>
 
117
          <td class="paramkey"></td>
 
118
          <td></td>
 
119
          <td class="paramtype"><a class="el" href="a00106.html#17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *&nbsp;</td>
 
120
          <td class="paramname"> <em>temp_block</em> = <code>0</code></td><td>&nbsp;</td>
 
121
        </tr>
 
122
        <tr>
 
123
          <td></td>
 
124
          <td>)</td>
 
125
          <td></td><td></td><td width="100%"><code> [inline]</code></td>
 
126
        </tr>
 
127
      </table>
 
128
</div>
 
129
<div class="memdoc">
 
130
 
 
131
<p>
 
132
Bitvector deserialization from memory. 
 
133
<p>
 
134
<dl compact><dt><b>Parameters:</b></dt><dd>
 
135
  <table border="0" cellspacing="2" cellpadding="0">
 
136
    <tr><td valign="top"></td><td valign="top"><em>buf</em>&nbsp;</td><td>- pointer on memory which keeps serialized <a class="el" href="a00040.html" title="bitvector with runtime compression of bits.">bvector</a> </td></tr>
 
137
    <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="a00040.html" title="bitvector with runtime compression of bits.">bvector</a> allocates own. </td></tr>
 
138
  </table>
 
139
</dl>
 
140
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Number of bytes consumed by <a class="el" href="a00061.html" title="Class deserializer.">deserializer</a>.</dd></dl>
 
141
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. <dl compact><dt><b>Examples: </b></dt><dd>
 
142
<a class="el" href="a00004.html#a16">sample4.cpp</a>.</dl>
 
143
<p>Definition at line <a class="el" href="a00136.html#l01064">1064</a> of file <a class="el" href="a00136.html">bmserial.h</a>.</p>
 
144
 
 
145
<p>References <a class="el" href="a00134.html#l00395">bm::BigEndian</a>, <a class="el" href="a00133.html#l00041">BM_ASSERT</a>, <a class="el" href="a00136.html#l00097">bm::BM_HM_NO_BO</a>, <a class="el" href="a00136.html#l01351">bm::deserializer&lt; BV, DEC &gt;::deserialize()</a>, <a class="el" href="a00142.html#l00080">bm::decoder_base::get_8()</a>, and <a class="el" href="a00134.html#l00396">bm::LittleEndian</a>.</p>
 
146
 
 
147
<p>Referenced by <a class="el" href="a00136.html#l02784">bm::operation_deserializer&lt; BV &gt;::deserialize()</a>, and <a class="el" href="a00122.html#l00107">main()</a>.</p>
 
148
 
 
149
</div>
 
150
</div><p>
 
151
<a class="anchor" name="g213033b5cc6add74aa4bd1d614b56192"></a><!-- doxytag: member="bm::serialize" ref="g213033b5cc6add74aa4bd1d614b56192" args="(BV &amp;bv, unsigned char *buf, unsigned serialization_flags=0)" -->
 
152
<div class="memitem">
 
153
<div class="memproto">
 
154
<div class="memtemplate">
 
155
template&lt;class BV&gt; </div>
 
156
      <table class="memname">
 
157
        <tr>
 
158
          <td class="memname">unsigned bm::serialize           </td>
 
159
          <td>(</td>
 
160
          <td class="paramtype">BV &amp;&nbsp;</td>
 
161
          <td class="paramname"> <em>bv</em>, </td>
 
162
        </tr>
 
163
        <tr>
 
164
          <td class="paramkey"></td>
 
165
          <td></td>
 
166
          <td class="paramtype">unsigned char *&nbsp;</td>
 
167
          <td class="paramname"> <em>buf</em>, </td>
 
168
        </tr>
 
169
        <tr>
 
170
          <td class="paramkey"></td>
 
171
          <td></td>
 
172
          <td class="paramtype">unsigned&nbsp;</td>
 
173
          <td class="paramname"> <em>serialization_flags</em> = <code>0</code></td><td>&nbsp;</td>
 
174
        </tr>
 
175
        <tr>
 
176
          <td></td>
 
177
          <td>)</td>
 
178
          <td></td><td></td><td width="100%"><code> [inline]</code></td>
 
179
        </tr>
 
180
      </table>
 
181
</div>
 
182
<div class="memdoc">
 
183
 
 
184
<p>
 
185
Saves bitvector into memory. Allocates temporary memory block for <a class="el" href="a00040.html" title="bitvector with runtime compression of bits.">bvector</a>. 
 
186
<p>
 
187
 
 
188
<p>Definition at line <a class="el" href="a00136.html#l00812">812</a> of file <a class="el" href="a00136.html">bmserial.h</a>.</p>
 
189
 
 
190
<p>References <a class="el" href="a00136.html#l00740">bm::BM_NO_BYTE_ORDER</a>, <a class="el" href="a00136.html#l00741">bm::BM_NO_GAP_LENGTH</a>, <a class="el" href="a00136.html#l00281">bm::serializer&lt; BV &gt;::byte_order_serialization()</a>, <a class="el" href="a00136.html#l00275">bm::serializer&lt; BV &gt;::gap_length_serialization()</a>, <a class="el" href="a00136.html#l00529">bm::serializer&lt; BV &gt;::serialize()</a>, and <a class="el" href="a00136.html#l00256">bm::serializer&lt; BV &gt;::set_compression_level()</a>.</p>
 
191
 
 
192
</div>
 
193
</div><p>
 
194
<a class="anchor" name="g5210c3bda57254ef2e8c71e23306cc88"></a><!-- doxytag: member="bm::serialize" ref="g5210c3bda57254ef2e8c71e23306cc88" args="(const BV &amp;bv, unsigned char *buf, bm::word_t *temp_block, unsigned serialization_flags=0)" -->
 
195
<div class="memitem">
 
196
<div class="memproto">
 
197
<div class="memtemplate">
 
198
template&lt;class BV&gt; </div>
 
199
      <table class="memname">
 
200
        <tr>
 
201
          <td class="memname">unsigned bm::serialize           </td>
 
202
          <td>(</td>
 
203
          <td class="paramtype">const BV &amp;&nbsp;</td>
 
204
          <td class="paramname"> <em>bv</em>, </td>
 
205
        </tr>
 
206
        <tr>
 
207
          <td class="paramkey"></td>
 
208
          <td></td>
 
209
          <td class="paramtype">unsigned char *&nbsp;</td>
 
210
          <td class="paramname"> <em>buf</em>, </td>
 
211
        </tr>
 
212
        <tr>
 
213
          <td class="paramkey"></td>
 
214
          <td></td>
 
215
          <td class="paramtype"><a class="el" href="a00106.html#17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *&nbsp;</td>
 
216
          <td class="paramname"> <em>temp_block</em>, </td>
 
217
        </tr>
 
218
        <tr>
 
219
          <td class="paramkey"></td>
 
220
          <td></td>
 
221
          <td class="paramtype">unsigned&nbsp;</td>
 
222
          <td class="paramname"> <em>serialization_flags</em> = <code>0</code></td><td>&nbsp;</td>
 
223
        </tr>
 
224
        <tr>
 
225
          <td></td>
 
226
          <td>)</td>
 
227
          <td></td><td></td><td width="100%"><code> [inline]</code></td>
 
228
        </tr>
 
229
      </table>
 
230
</div>
 
231
<div class="memdoc">
 
232
 
 
233
<p>
 
234
Saves bitvector into memory. 
 
235
<p>
 
236
Function serializes content of the bitvector into memory. Serialization adaptively uses compression(variation of GAP encoding) when it is benefitial.<p>
 
237
<dl compact><dt><b>Parameters:</b></dt><dd>
 
238
  <table border="0" cellspacing="2" cellpadding="0">
 
239
    <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>
 
240
    <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>
 
241
    <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>
 
242
  </table>
 
243
</dl>
 
244
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Size of serialization block. </dd></dl>
 
245
<dl class="see" compact><dt><b>See also:</b></dt><dd>calc_stat, <a class="el" href="a00116.html#g537dfe6318f1f1fe18d86dac312be978" title="Bit mask flags for serialization algorithm.">serialization_flags</a> </dd></dl>
 
246
 
 
247
<p>Definition at line <a class="el" href="a00136.html#l00786">786</a> of file <a class="el" href="a00136.html">bmserial.h</a>.</p>
 
248
 
 
249
<p>References <a class="el" href="a00136.html#l00740">bm::BM_NO_BYTE_ORDER</a>, <a class="el" href="a00136.html#l00741">bm::BM_NO_GAP_LENGTH</a>, <a class="el" href="a00136.html#l00281">bm::serializer&lt; BV &gt;::byte_order_serialization()</a>, <a class="el" href="a00136.html#l00275">bm::serializer&lt; BV &gt;::gap_length_serialization()</a>, <a class="el" href="a00136.html#l00529">bm::serializer&lt; BV &gt;::serialize()</a>, and <a class="el" href="a00136.html#l00256">bm::serializer&lt; BV &gt;::set_compression_level()</a>.</p>
 
250
 
 
251
</div>
 
252
</div><p>
 
253
</div>
 
254
<hr size="1"><address style="text-align: right;"><small>Generated on Mon Oct 12 12:16:57 2009 for BitMagic by&nbsp;
 
255
<a href="http://www.doxygen.org/index.html">
 
256
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
 
257
</body>
 
258
</html>