blob: 12b3a53a01aeff3264f4889f914162f872bde819 [file] [log] [blame]
<!-- ##### SECTION Title ##### -->
String Chunks
<!-- ##### SECTION Short_Description ##### -->
efficient storage of groups of strings
<!-- ##### SECTION Long_Description ##### -->
<para>
String chunks are used to store groups of strings.
Memory is allocated in blocks, and as strings are added to the #GStringChunk
they are copied into the next free position in a block. When a block is
full a new block is allocated.
</para>
<para>
When storing a large number of strings, string chunks are more efficient
than using g_strdup() since fewer calls to malloc() are needed, and less
memory is wasted in memory allocation overheads.
</para>
<para>
By adding strings with g_string_chunk_insert_const() it is also possible
to remove duplicates.
</para>
<para>
To create a new #GStringChunk use g_string_chunk_new().
</para>
<para>
To add strings to a #GStringChunk use g_string_chunk_insert().
</para>
<para>
To add strings to a #GStringChunk, but without duplicating strings which are
already in the #GStringChunk, use g_string_chunk_insert_const().
</para>
<para>
To free the entire #GStringChunk use g_string_chunk_free().
It is not possible to free individual strings.
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
<!-- ##### SECTION Stability_Level ##### -->
<!-- ##### STRUCT GStringChunk ##### -->
<para>
An opaque data structure representing String Chunks.
It should only be accessed by using the following functions.
</para>
<!-- ##### FUNCTION g_string_chunk_new ##### -->
<para>
</para>
@size:
@Returns:
<!-- ##### FUNCTION g_string_chunk_insert ##### -->
<para>
</para>
@chunk:
@string:
@Returns:
<!-- ##### FUNCTION g_string_chunk_insert_const ##### -->
<para>
</para>
@chunk:
@string:
@Returns:
<!-- ##### FUNCTION g_string_chunk_insert_len ##### -->
<para>
</para>
@chunk:
@string:
@len:
@Returns:
<!-- ##### FUNCTION g_string_chunk_clear ##### -->
<para>
</para>
@chunk:
<!-- ##### FUNCTION g_string_chunk_free ##### -->
<para>
</para>
@chunk: