110
104
The <structname>GByteArray</structname> struct allows access to the public fields of a <structname>GByteArray</structname>.
111
105
</para><variablelist role="struct">
113
<term><link linkend="guint8">guint8</link> *<structfield>data</structfield>;</term>
107
<term><link linkend="guint8">guint8</link> *<structfield>data</structfield>;</term>
114
108
<listitem><simpara>a pointer to the element data. The data may be moved as elements are
115
109
added to the <link linkend="GByteArray"><type>GByteArray</type></link>.
116
110
</simpara></listitem>
119
<term><link linkend="guint">guint</link> <structfield>len</structfield>;</term>
113
<term><link linkend="guint">guint</link> <structfield>len</structfield>;</term>
120
114
<listitem><simpara>the number of elements in the <link linkend="GByteArray"><type>GByteArray</type></link>.
122
115
</simpara></listitem>
124
117
</variablelist></refsect2>
126
<title><anchor id="g-byte-array-new" role="function"/>g_byte_array_new ()</title>
127
<indexterm><primary>g_byte_array_new</primary></indexterm><programlisting><link linkend="GByteArray">GByteArray</link>* g_byte_array_new (void);</programlisting>
118
<refsect2 id="g-byte-array-new" role="function">
119
<title>g_byte_array_new ()</title>
120
<indexterm zone="g-byte-array-new"><primary sortas="g_byte_array_new">g_byte_array_new</primary></indexterm><programlisting><link linkend="GByteArray">GByteArray</link>* g_byte_array_new (void);</programlisting>
129
122
Creates a new <link linkend="GByteArray"><type>GByteArray</type></link>.
130
123
</para><variablelist role="params">
131
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>the new <link linkend="GByteArray"><type>GByteArray</type></link>.
124
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>the new <link linkend="GByteArray"><type>GByteArray</type></link>.
134
125
</simpara></listitem></varlistentry>
135
126
</variablelist></refsect2>
137
<title><anchor id="g-byte-array-sized-new" role="function"/>g_byte_array_sized_new ()</title>
138
<indexterm><primary>g_byte_array_sized_new</primary></indexterm><programlisting><link linkend="GByteArray">GByteArray</link>* g_byte_array_sized_new (<link linkend="guint">guint</link> reserved_size);</programlisting>
127
<refsect2 id="g-byte-array-sized-new" role="function">
128
<title>g_byte_array_sized_new ()</title>
129
<indexterm zone="g-byte-array-sized-new"><primary sortas="g_byte_array_sized_new">g_byte_array_sized_new</primary></indexterm><programlisting><link linkend="GByteArray">GByteArray</link>* g_byte_array_sized_new (<link linkend="guint">guint</link> reserved_size);</programlisting>
140
131
Creates a new <link linkend="GByteArray"><type>GByteArray</type></link> with <parameter>reserved_size</parameter> bytes preallocated. This
141
132
avoids frequent reallocation, if you are going to add many bytes to
142
133
the array. Note however that the size of the array is still 0.
143
134
</para><variablelist role="params">
144
<varlistentry><term><parameter>reserved_size</parameter> :</term>
135
<varlistentry><term><parameter>reserved_size</parameter> :</term>
145
136
<listitem><simpara>number of bytes preallocated.
146
137
</simpara></listitem></varlistentry>
147
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>the new <link linkend="GByteArray"><type>GByteArray</type></link>.
138
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>the new <link linkend="GByteArray"><type>GByteArray</type></link>.
150
139
</simpara></listitem></varlistentry>
151
140
</variablelist></refsect2>
153
<title><anchor id="g-byte-array-append" role="function"/>g_byte_array_append ()</title>
154
<indexterm><primary>g_byte_array_append</primary></indexterm><programlisting><link linkend="GByteArray">GByteArray</link>* g_byte_array_append (<link linkend="GByteArray">GByteArray</link> *array,
141
<refsect2 id="g-byte-array-append" role="function">
142
<title>g_byte_array_append ()</title>
143
<indexterm zone="g-byte-array-append"><primary sortas="g_byte_array_append">g_byte_array_append</primary></indexterm><programlisting><link linkend="GByteArray">GByteArray</link>* g_byte_array_append (<link linkend="GByteArray">GByteArray</link> *array,
155
144
const <link linkend="guint8">guint8</link> *data,
156
145
<link linkend="guint">guint</link> len);</programlisting>
158
147
Adds the given bytes to the end of the <link linkend="GByteArray"><type>GByteArray</type></link>.
159
148
The array will grow in size automatically if necessary.
160
149
</para><variablelist role="params">
161
<varlistentry><term><parameter>array</parameter> :</term>
150
<varlistentry><term><parameter>array</parameter> :</term>
162
151
<listitem><simpara>a <link linkend="GByteArray"><type>GByteArray</type></link>.
163
152
</simpara></listitem></varlistentry>
164
<varlistentry><term><parameter>data</parameter> :</term>
153
<varlistentry><term><parameter>data</parameter> :</term>
165
154
<listitem><simpara>the byte data to be added.
166
155
</simpara></listitem></varlistentry>
167
<varlistentry><term><parameter>len</parameter> :</term>
156
<varlistentry><term><parameter>len</parameter> :</term>
168
157
<listitem><simpara>the number of bytes to add.
169
158
</simpara></listitem></varlistentry>
170
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>the <link linkend="GByteArray"><type>GByteArray</type></link>.
159
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>the <link linkend="GByteArray"><type>GByteArray</type></link>.
173
160
</simpara></listitem></varlistentry>
174
161
</variablelist></refsect2>
176
<title><anchor id="g-byte-array-prepend" role="function"/>g_byte_array_prepend ()</title>
177
<indexterm><primary>g_byte_array_prepend</primary></indexterm><programlisting><link linkend="GByteArray">GByteArray</link>* g_byte_array_prepend (<link linkend="GByteArray">GByteArray</link> *array,
162
<refsect2 id="g-byte-array-prepend" role="function">
163
<title>g_byte_array_prepend ()</title>
164
<indexterm zone="g-byte-array-prepend"><primary sortas="g_byte_array_prepend">g_byte_array_prepend</primary></indexterm><programlisting><link linkend="GByteArray">GByteArray</link>* g_byte_array_prepend (<link linkend="GByteArray">GByteArray</link> *array,
178
165
const <link linkend="guint8">guint8</link> *data,
179
166
<link linkend="guint">guint</link> len);</programlisting>
181
168
Adds the given data to the start of the <link linkend="GByteArray"><type>GByteArray</type></link>.
182
169
The array will grow in size automatically if necessary.
183
170
</para><variablelist role="params">
184
<varlistentry><term><parameter>array</parameter> :</term>
171
<varlistentry><term><parameter>array</parameter> :</term>
185
172
<listitem><simpara>a <link linkend="GByteArray"><type>GByteArray</type></link>.
186
173
</simpara></listitem></varlistentry>
187
<varlistentry><term><parameter>data</parameter> :</term>
174
<varlistentry><term><parameter>data</parameter> :</term>
188
175
<listitem><simpara>the byte data to be added.
189
176
</simpara></listitem></varlistentry>
190
<varlistentry><term><parameter>len</parameter> :</term>
177
<varlistentry><term><parameter>len</parameter> :</term>
191
178
<listitem><simpara>the number of bytes to add.
192
179
</simpara></listitem></varlistentry>
193
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>the <link linkend="GByteArray"><type>GByteArray</type></link>.
180
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>the <link linkend="GByteArray"><type>GByteArray</type></link>.
196
181
</simpara></listitem></varlistentry>
197
182
</variablelist></refsect2>
199
<title><anchor id="g-byte-array-remove-index" role="function"/>g_byte_array_remove_index ()</title>
200
<indexterm><primary>g_byte_array_remove_index</primary></indexterm><programlisting><link linkend="GByteArray">GByteArray</link>* g_byte_array_remove_index (<link linkend="GByteArray">GByteArray</link> *array,
183
<refsect2 id="g-byte-array-remove-index" role="function">
184
<title>g_byte_array_remove_index ()</title>
185
<indexterm zone="g-byte-array-remove-index"><primary sortas="g_byte_array_remove_index">g_byte_array_remove_index</primary></indexterm><programlisting><link linkend="GByteArray">GByteArray</link>* g_byte_array_remove_index (<link linkend="GByteArray">GByteArray</link> *array,
201
186
<link linkend="guint">guint</link> index_);</programlisting>
203
188
Removes the byte at the given index from a <link linkend="GByteArray"><type>GByteArray</type></link>.
204
189
The following bytes are moved down one place.
205
190
</para><variablelist role="params">
206
<varlistentry><term><parameter>array</parameter> :</term>
191
<varlistentry><term><parameter>array</parameter> :</term>
207
192
<listitem><simpara>a <link linkend="GByteArray"><type>GByteArray</type></link>.
208
193
</simpara></listitem></varlistentry>
209
<varlistentry><term><parameter>index_</parameter> :</term>
194
<varlistentry><term><parameter>index_</parameter> :</term>
210
195
<listitem><simpara>the index of the byte to remove.
211
196
</simpara></listitem></varlistentry>
212
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>the <link linkend="GByteArray"><type>GByteArray</type></link>.
197
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>the <link linkend="GByteArray"><type>GByteArray</type></link>.
215
198
</simpara></listitem></varlistentry>
216
199
</variablelist></refsect2>
218
<title><anchor id="g-byte-array-remove-index-fast" role="function"/>g_byte_array_remove_index_fast ()</title>
219
<indexterm><primary>g_byte_array_remove_index_fast</primary></indexterm><programlisting><link linkend="GByteArray">GByteArray</link>* g_byte_array_remove_index_fast (<link linkend="GByteArray">GByteArray</link> *array,
200
<refsect2 id="g-byte-array-remove-index-fast" role="function">
201
<title>g_byte_array_remove_index_fast ()</title>
202
<indexterm zone="g-byte-array-remove-index-fast"><primary sortas="g_byte_array_remove_index_fast">g_byte_array_remove_index_fast</primary></indexterm><programlisting><link linkend="GByteArray">GByteArray</link>* g_byte_array_remove_index_fast (<link linkend="GByteArray">GByteArray</link> *array,
220
203
<link linkend="guint">guint</link> index_);</programlisting>
222
205
Removes the byte at the given index from a <link linkend="GByteArray"><type>GByteArray</type></link>.
224
207
does not preserve the order of the <link linkend="GByteArray"><type>GByteArray</type></link>. But it is faster than
225
208
<link linkend="g-byte-array-remove-index"><function>g_byte_array_remove_index()</function></link>.
226
209
</para><variablelist role="params">
227
<varlistentry><term><parameter>array</parameter> :</term>
210
<varlistentry><term><parameter>array</parameter> :</term>
228
211
<listitem><simpara>a <link linkend="GByteArray"><type>GByteArray</type></link>.
229
212
</simpara></listitem></varlistentry>
230
<varlistentry><term><parameter>index_</parameter> :</term>
213
<varlistentry><term><parameter>index_</parameter> :</term>
231
214
<listitem><simpara>the index of the byte to remove.
232
215
</simpara></listitem></varlistentry>
233
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>the <link linkend="GByteArray"><type>GByteArray</type></link>.
216
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>the <link linkend="GByteArray"><type>GByteArray</type></link>.
236
217
</simpara></listitem></varlistentry>
237
218
</variablelist></refsect2>
239
<title><anchor id="g-byte-array-remove-range" role="function" condition="since:2.4"/>g_byte_array_remove_range ()</title>
240
<indexterm role="2.4"><primary>g_byte_array_remove_range</primary></indexterm><programlisting><link linkend="GByteArray">GByteArray</link>* g_byte_array_remove_range (<link linkend="GByteArray">GByteArray</link> *array,
219
<refsect2 id="g-byte-array-remove-range" role="function" condition="since:2.4">
220
<title>g_byte_array_remove_range ()</title>
221
<indexterm zone="g-byte-array-remove-range" role="2.4"><primary sortas="g_byte_array_remove_range">g_byte_array_remove_range</primary></indexterm><programlisting><link linkend="GByteArray">GByteArray</link>* g_byte_array_remove_range (<link linkend="GByteArray">GByteArray</link> *array,
241
222
<link linkend="guint">guint</link> index_,
242
223
<link linkend="guint">guint</link> length);</programlisting>
244
225
Removes the given number of bytes starting at the given index from a
245
226
<link linkend="GByteArray"><type>GByteArray</type></link>. The following elements are moved to close the gap.
246
227
</para><variablelist role="params">
247
<varlistentry><term><parameter>array</parameter> :</term>
228
<varlistentry><term><parameter>array</parameter> :</term>
248
229
<listitem><simpara>a <parameter>GByteArray</parameter>.
249
230
</simpara></listitem></varlistentry>
250
<varlistentry><term><parameter>index_</parameter> :</term>
231
<varlistentry><term><parameter>index_</parameter> :</term>
251
232
<listitem><simpara>the index of the first byte to remove.
252
233
</simpara></listitem></varlistentry>
253
<varlistentry><term><parameter>length</parameter> :</term>
234
<varlistentry><term><parameter>length</parameter> :</term>
254
235
<listitem><simpara>the number of bytes to remove.
255
236
</simpara></listitem></varlistentry>
256
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>the <link linkend="GByteArray"><type>GByteArray</type></link>.
237
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>the <link linkend="GByteArray"><type>GByteArray</type></link>.
257
238
</simpara></listitem></varlistentry>
258
</variablelist><para role="since">Since 2.4
263
<title><anchor id="g-byte-array-sort" role="function"/>g_byte_array_sort ()</title>
264
<indexterm><primary>g_byte_array_sort</primary></indexterm><programlisting><link linkend="void">void</link> g_byte_array_sort (<link linkend="GByteArray">GByteArray</link> *array,
239
</variablelist><para role="since">Since 2.4</para></refsect2>
240
<refsect2 id="g-byte-array-sort" role="function">
241
<title>g_byte_array_sort ()</title>
242
<indexterm zone="g-byte-array-sort"><primary sortas="g_byte_array_sort">g_byte_array_sort</primary></indexterm><programlisting><link linkend="void">void</link> g_byte_array_sort (<link linkend="GByteArray">GByteArray</link> *array,
265
243
<link linkend="GCompareFunc">GCompareFunc</link> compare_func);</programlisting>
267
245
Sorts a byte array, using <parameter>compare_func</parameter> which should be a <link linkend="qsort"><function>qsort()</function></link>-style
268
comparison function (returns less than zero for first arg is less than second
269
arg, zero for equal, greater than zero if first arg is greater than second
246
comparison function (returns less than zero for first arg is less than second
247
arg, zero for equal, greater than zero if first arg is greater than second
273
251
If two array elements compare equal, their order in the sorted array is
275
253
</para><variablelist role="params">
276
<varlistentry><term><parameter>array</parameter> :</term>
254
<varlistentry><term><parameter>array</parameter> :</term>
277
255
<listitem><simpara>a <link linkend="GByteArray"><type>GByteArray</type></link>.
278
256
</simpara></listitem></varlistentry>
279
<varlistentry><term><parameter>compare_func</parameter> :</term>
257
<varlistentry><term><parameter>compare_func</parameter> :</term>
280
258
<listitem><simpara>comparison function.
283
259
</simpara></listitem></varlistentry>
284
260
</variablelist></refsect2>
286
<title><anchor id="g-byte-array-sort-with-data" role="function"/>g_byte_array_sort_with_data ()</title>
287
<indexterm><primary>g_byte_array_sort_with_data</primary></indexterm><programlisting><link linkend="void">void</link> g_byte_array_sort_with_data (<link linkend="GByteArray">GByteArray</link> *array,
261
<refsect2 id="g-byte-array-sort-with-data" role="function">
262
<title>g_byte_array_sort_with_data ()</title>
263
<indexterm zone="g-byte-array-sort-with-data"><primary sortas="g_byte_array_sort_with_data">g_byte_array_sort_with_data</primary></indexterm><programlisting><link linkend="void">void</link> g_byte_array_sort_with_data (<link linkend="GByteArray">GByteArray</link> *array,
288
264
<link linkend="GCompareDataFunc">GCompareDataFunc</link> compare_func,
289
265
<link linkend="gpointer">gpointer</link> user_data);</programlisting>
291
267
Like <link linkend="g-byte-array-sort"><function>g_byte_array_sort()</function></link>, but the comparison function takes an extra user data
293
269
</para><variablelist role="params">
294
<varlistentry><term><parameter>array</parameter> :</term>
270
<varlistentry><term><parameter>array</parameter> :</term>
295
271
<listitem><simpara>a <link linkend="GByteArray"><type>GByteArray</type></link>.
296
272
</simpara></listitem></varlistentry>
297
<varlistentry><term><parameter>compare_func</parameter> :</term>
273
<varlistentry><term><parameter>compare_func</parameter> :</term>
298
274
<listitem><simpara>comparison function.
299
275
</simpara></listitem></varlistentry>
300
<varlistentry><term><parameter>user_data</parameter> :</term>
276
<varlistentry><term><parameter>user_data</parameter> :</term>
301
277
<listitem><simpara>data to pass to <parameter>compare_func</parameter>.
304
278
</simpara></listitem></varlistentry>
305
279
</variablelist></refsect2>
307
<title><anchor id="g-byte-array-set-size" role="function"/>g_byte_array_set_size ()</title>
308
<indexterm><primary>g_byte_array_set_size</primary></indexterm><programlisting><link linkend="GByteArray">GByteArray</link>* g_byte_array_set_size (<link linkend="GByteArray">GByteArray</link> *array,
280
<refsect2 id="g-byte-array-set-size" role="function">
281
<title>g_byte_array_set_size ()</title>
282
<indexterm zone="g-byte-array-set-size"><primary sortas="g_byte_array_set_size">g_byte_array_set_size</primary></indexterm><programlisting><link linkend="GByteArray">GByteArray</link>* g_byte_array_set_size (<link linkend="GByteArray">GByteArray</link> *array,
309
283
<link linkend="guint">guint</link> length);</programlisting>
311
285
Sets the size of the <link linkend="GByteArray"><type>GByteArray</type></link>, expanding it if necessary.
312
286
</para><variablelist role="params">
313
<varlistentry><term><parameter>array</parameter> :</term>
287
<varlistentry><term><parameter>array</parameter> :</term>
314
288
<listitem><simpara>a <link linkend="GByteArray"><type>GByteArray</type></link>.
315
289
</simpara></listitem></varlistentry>
316
<varlistentry><term><parameter>length</parameter> :</term>
290
<varlistentry><term><parameter>length</parameter> :</term>
317
291
<listitem><simpara>the new size of the <link linkend="GByteArray"><type>GByteArray</type></link>.
318
292
</simpara></listitem></varlistentry>
319
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>the <link linkend="GByteArray"><type>GByteArray</type></link>.
293
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>the <link linkend="GByteArray"><type>GByteArray</type></link>.
322
294
</simpara></listitem></varlistentry>
323
295
</variablelist></refsect2>
325
<title><anchor id="g-byte-array-free" role="function"/>g_byte_array_free ()</title>
326
<indexterm><primary>g_byte_array_free</primary></indexterm><programlisting><link linkend="guint8">guint8</link>* g_byte_array_free (<link linkend="GByteArray">GByteArray</link> *array,
296
<refsect2 id="g-byte-array-free" role="function">
297
<title>g_byte_array_free ()</title>
298
<indexterm zone="g-byte-array-free"><primary sortas="g_byte_array_free">g_byte_array_free</primary></indexterm><programlisting><link linkend="guint8">guint8</link>* g_byte_array_free (<link linkend="GByteArray">GByteArray</link> *array,
327
299
<link linkend="gboolean">gboolean</link> free_segment);</programlisting>
329
301
Frees the memory allocated by the <link linkend="GByteArray"><type>GByteArray</type></link>.
330
If <parameter>free_segment</parameter> is <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> it frees the actual byte data.
302
If <parameter>free_segment</parameter> is <link linkend="TRUE--CAPS"><literal>TRUE</literal></link> it frees the actual byte data.
331
303
</para><variablelist role="params">
332
<varlistentry><term><parameter>array</parameter> :</term>
304
<varlistentry><term><parameter>array</parameter> :</term>
333
305
<listitem><simpara>a <link linkend="GByteArray"><type>GByteArray</type></link>.
334
306
</simpara></listitem></varlistentry>
335
<varlistentry><term><parameter>free_segment</parameter> :</term>
336
<listitem><simpara>if <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> the actual byte data is freed as well.
307
<varlistentry><term><parameter>free_segment</parameter> :</term>
308
<listitem><simpara>if <link linkend="TRUE--CAPS"><literal>TRUE</literal></link> the actual byte data is freed as well.
337
309
</simpara></listitem></varlistentry>
338
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>the element data if <parameter>free_segment</parameter> is <link linkend="FALSE:CAPS"><literal>FALSE</literal></link>, otherwise <link linkend="NULL:CAPS"><literal>NULL</literal></link>
310
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>the element data if <parameter>free_segment</parameter> is <link linkend="FALSE--CAPS"><literal>FALSE</literal></link>, otherwise <link linkend="NULL--CAPS"><literal>NULL</literal></link>
341
311
</simpara></listitem></varlistentry>
342
312
</variablelist></refsect2>