StringChunk

glib.string_chunk.StringChunk provides efficient storage of groups of strings

String chunks are used to store groups of strings. Memory is allocated in blocks, and as strings are added to the glib.string_chunk.StringChunk they are copied into the next free position in a block. When a block is full a new block is allocated.

When storing a large number of strings, string chunks are more efficient than using func@GLib.strdup since fewer calls to malloc() are needed, and less memory is wasted in memory allocation overheads.

By adding strings with glib.string_chunk.StringChunk.insertConst it is also possible to remove duplicates.

To create a new glib.string_chunk.StringChunk use glib.string_chunk.StringChunk.new_.

To add strings to a glib.string_chunk.StringChunk use glib.string_chunk.StringChunk.insert.

To add strings to a glib.string_chunk.StringChunk, but without duplicating strings which are already in the glib.string_chunk.StringChunk, use glib.string_chunk.StringChunk.insertConst.

To free the entire glib.string_chunk.StringChunk use glib.string_chunk.StringChunk.free. It is not possible to free individual strings.

Destructor

A destructor is present on this object, but not explicitly documented in the source.

Members

Functions

clear
void clear()

Frees all strings contained within the #GStringChunk. After calling glib.string_chunk.StringChunk.clear it is not safe to access any of the strings which were contained within it.

insert
string insert(string string_)

Adds a copy of string to the #GStringChunk. It returns a pointer to the new copy of the string in the #GStringChunk. The characters in the string can be changed, if necessary, though you should not change anything after the end of the string.

insertConst
string insertConst(string string_)

Adds a copy of string to the #GStringChunk, unless the same string has already been added to the #GStringChunk with glib.string_chunk.StringChunk.insertConst.

insertLen
string insertLen(string string_, ptrdiff_t len)

Adds a copy of the first len bytes of string to the #GStringChunk. The copy is nul-terminated.