GLib.StringChunk¶
Fields¶
None
Methods¶
|
|
|
|
|
|
|
|
|
Details¶
- class GLib.StringChunk¶
GStringChunk
provides efficient storage of groups of stringsString 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.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 [method`GLib`.StringChunk.insert_const] it is also possible to remove duplicates.
To create a new
GStringChunk
use [func`GLib`.StringChunk.new].To add strings to a
GStringChunk
use [method`GLib`.StringChunk.insert].To add strings to a
GStringChunk
, but without duplicating strings which are already in theGStringChunk
, use [method`GLib`.StringChunk.insert_const].To free the entire
GStringChunk
use [method`GLib`.StringChunk.free]. It is not possible to free individual strings.- clear()[source]¶
Frees all strings contained within the
GLib.StringChunk
. After callingGLib.StringChunk.clear
() it is not safe to access any of the strings which were contained within it.New in version 2.14.
- free()[source]¶
Frees all memory allocated by the
GLib.StringChunk
. After callingGLib.StringChunk.free
() it is not safe to access any of the strings which were contained within it.
- insert(string)[source]¶
- Parameters:
string (
str
) – the string to add- Returns:
a pointer to the copy of string within the
GLib.StringChunk
- Return type:
Adds a copy of string to the
GLib.StringChunk
. It returns a pointer to the new copy of the string in theGLib.StringChunk
. The characters in the string can be changed, if necessary, though you should not change anything after the end of the string.Unlike
GLib.StringChunk.insert_const
(), this function does not check for duplicates. Also strings added withGLib.StringChunk.insert
() will not be searched byGLib.StringChunk.insert_const
() when looking for duplicates.
- insert_const(string)[source]¶
- Parameters:
string (
str
) – the string to add- Returns:
a pointer to the new or existing copy of string within the
GLib.StringChunk
- Return type:
Adds a copy of string to the
GLib.StringChunk
, unless the same string has already been added to theGLib.StringChunk
withGLib.StringChunk.insert_const
().This function is useful if you need to copy a large number of strings but do not want to waste space storing duplicates. But you must remember that there may be several pointers to the same string, and so any changes made to the strings should be done very carefully.
Note that
GLib.StringChunk.insert_const
() will not return a pointer to a string added withGLib.StringChunk.insert
(), even if they do match.
- insert_len(string, len)[source]¶
- Parameters:
- Returns:
a pointer to the copy of string within the
GLib.StringChunk
- Return type:
Adds a copy of the first len bytes of string to the
GLib.StringChunk
. The copy is nul-terminated.Since this function does not stop at nul bytes, it is the caller’s responsibility to ensure that string has at least len addressable bytes.
The characters in the returned string can be changed, if necessary, though you should not change anything after the end of the string.
New in version 2.4.