Blame docs/reference/glib/html/glib-String-Chunks.html

Packit 84794d
Packit 84794d
<html>
Packit 84794d
<head>
Packit 84794d
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
Packit 84794d
<title>String Chunks: GLib Reference Manual</title>
Packit 84794d
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
Packit 84794d
<link rel="home" href="index.html" title="GLib Reference Manual">
Packit 84794d
<link rel="up" href="glib-data-types.html" title="GLib Data Types">
Packit 84794d
<link rel="prev" href="glib-Strings.html" title="Strings">
Packit 84794d
<link rel="next" href="glib-Arrays.html" title="Arrays">
Packit 84794d
<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
Packit 84794d
<link rel="stylesheet" href="style.css" type="text/css">
Packit 84794d
</head>
Packit 84794d
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
Packit 84794d
Packit 84794d
Packit 84794d
Top  | 
Packit 84794d
                  Description
Packit 84794d
Packit 84794d
Home
Packit 84794d
Up
Packit 84794d
Prev
Packit 84794d
Next
Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d

String Chunks

Packit 84794d

String Chunks — efficient storage of groups of strings

Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d

Functions

Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d
GStringChunk *
Packit 84794d
Packit 84794d
Packit 84794d
g_string_chunk_new ()
Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d
gchar *
Packit 84794d
Packit 84794d
Packit 84794d
g_string_chunk_insert ()
Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d
gchar *
Packit 84794d
Packit 84794d
Packit 84794d
g_string_chunk_insert_const ()
Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d
gchar *
Packit 84794d
Packit 84794d
Packit 84794d
g_string_chunk_insert_len ()
Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d
void
Packit 84794d
Packit 84794d
Packit 84794d
g_string_chunk_clear ()
Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d
void
Packit 84794d
Packit 84794d
Packit 84794d
g_string_chunk_free ()
Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d

Types and Values

Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d
 
Packit 84794d
GStringChunk
Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d

Includes

Packit 84794d
#include <gmodule.h>
Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d

Description

Packit 84794d

String chunks are used to store groups of strings. Memory is

Packit 84794d
allocated in blocks, and as strings are added to the GStringChunk
Packit 84794d
they are copied into the next free position in a block. When a block
Packit 84794d
is full a new block is allocated.

Packit 84794d

When storing a large number of strings, string chunks are more

Packit 84794d
efficient than using g_strdup() since fewer calls to malloc() are
Packit 84794d
needed, and less memory is wasted in memory allocation overheads.

Packit 84794d

By adding strings with g_string_chunk_insert_const() it is also

Packit 84794d
possible to remove duplicates.

Packit 84794d

To create a new GStringChunk use g_string_chunk_new().

Packit 84794d

To add strings to a GStringChunk use g_string_chunk_insert().

Packit 84794d

To add strings to a GStringChunk, but without duplicating strings

Packit 84794d
which are already in the GStringChunk, use
Packit 84794d
g_string_chunk_insert_const().

Packit 84794d

To free the entire GStringChunk use g_string_chunk_free(). It is

Packit 84794d
not possible to free individual strings.

Packit 84794d
Packit 84794d
Packit 84794d

Functions

Packit 84794d
Packit 84794d

g_string_chunk_new ()

Packit 84794d
GStringChunk *
Packit 84794d
g_string_chunk_new (gsize size);
Packit 84794d

Creates a new GStringChunk.

Packit 84794d
Packit 84794d

Parameters

Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d

size

Packit 84794d

the default size of the blocks of memory which are

Packit 84794d
allocated to store the strings. If a particular string
Packit 84794d
is larger than this default size, a larger block of
Packit 84794d
memory will be allocated for it.

Packit 84794d
 
Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d

Returns

Packit 84794d

a new GStringChunk

Packit 84794d
Packit 84794d
Packit 84794d

Packit 84794d
Packit 84794d

g_string_chunk_insert ()

Packit 84794d
gchar *
Packit 84794d
g_string_chunk_insert (GStringChunk *chunk,
Packit 84794d
                       const gchar *string);
Packit 84794d

Adds a copy of string

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

Packit 84794d

Unlike g_string_chunk_insert_const(), this function

Packit 84794d
does not check for duplicates. Also strings added
Packit 84794d
with g_string_chunk_insert() will not be searched
Packit 84794d
by g_string_chunk_insert_const() when looking for
Packit 84794d
duplicates.

Packit 84794d
Packit 84794d

Parameters

Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d

chunk

Packit 84794d

a GStringChunk

Packit 84794d
 
Packit 84794d
Packit 84794d
Packit 84794d

string

Packit 84794d

the string to add

Packit 84794d
 
Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d

Returns

Packit 84794d

a pointer to the copy of string

Packit 84794d
within
Packit 84794d
the GStringChunk

Packit 84794d
Packit 84794d
Packit 84794d

Packit 84794d
Packit 84794d

g_string_chunk_insert_const ()

Packit 84794d
gchar *
Packit 84794d
g_string_chunk_insert_const (GStringChunk *chunk,
Packit 84794d
                             const gchar *string);
Packit 84794d

Adds a copy of string

Packit 84794d
 to the GStringChunk, unless the same
Packit 84794d
string has already been added to the GStringChunk with
Packit 84794d
g_string_chunk_insert_const().

Packit 84794d

This function is useful if you need to copy a large number

Packit 84794d
of strings but do not want to waste space storing duplicates.
Packit 84794d
But you must remember that there may be several pointers to
Packit 84794d
the same string, and so any changes made to the strings
Packit 84794d
should be done very carefully.

Packit 84794d

Note that g_string_chunk_insert_const() will not return a

Packit 84794d
pointer to a string added with g_string_chunk_insert(), even
Packit 84794d
if they do match.

Packit 84794d
Packit 84794d

Parameters

Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d

chunk

Packit 84794d

a GStringChunk

Packit 84794d
 
Packit 84794d
Packit 84794d
Packit 84794d

string

Packit 84794d

the string to add

Packit 84794d
 
Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d

Returns

Packit 84794d

a pointer to the new or existing copy of string

Packit 84794d
within the GStringChunk

Packit 84794d
Packit 84794d
Packit 84794d

Packit 84794d
Packit 84794d

g_string_chunk_insert_len ()

Packit 84794d
gchar *
Packit 84794d
g_string_chunk_insert_len (GStringChunk *chunk,
Packit 84794d
                           const gchar *string,
Packit 84794d
                           gssize len);
Packit 84794d

Adds a copy of the first len

Packit 84794d
 bytes of string
Packit 84794d
 to the GStringChunk.
Packit 84794d
The copy is nul-terminated.

Packit 84794d

Since this function does not stop at nul bytes, it is the caller's

Packit 84794d
responsibility to ensure that string
Packit 84794d
 has at least len
Packit 84794d
 addressable
Packit 84794d
bytes.

Packit 84794d

The characters in the returned string can be changed, if necessary,

Packit 84794d
though you should not change anything after the end of the string.

Packit 84794d
Packit 84794d

Parameters

Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d

chunk

Packit 84794d

a GStringChunk

Packit 84794d
 
Packit 84794d
Packit 84794d
Packit 84794d

string

Packit 84794d

bytes to insert

Packit 84794d
 
Packit 84794d
Packit 84794d
Packit 84794d

len

Packit 84794d

number of bytes of string

Packit 84794d
to insert, or -1 to insert a
Packit 84794d
nul-terminated string

Packit 84794d
 
Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d

Returns

Packit 84794d

a pointer to the copy of string

Packit 84794d
within the GStringChunk

Packit 84794d
Packit 84794d

Since: 2.4

Packit 84794d
Packit 84794d

Packit 84794d
Packit 84794d

g_string_chunk_clear ()

Packit 84794d
void
Packit 84794d
g_string_chunk_clear (GStringChunk *chunk);
Packit 84794d

Frees all strings contained within the GStringChunk.

Packit 84794d
After calling g_string_chunk_clear() it is not safe to
Packit 84794d
access any of the strings which were contained within it.

Packit 84794d
Packit 84794d

Parameters

Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d

chunk

Packit 84794d

a GStringChunk

Packit 84794d
 
Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d

Since: 2.14

Packit 84794d
Packit 84794d

Packit 84794d
Packit 84794d

g_string_chunk_free ()

Packit 84794d
void
Packit 84794d
g_string_chunk_free (GStringChunk *chunk);
Packit 84794d

Frees all memory allocated by the GStringChunk.

Packit 84794d
After calling g_string_chunk_free() it is not safe to
Packit 84794d
access any of the strings which were contained within it.

Packit 84794d
Packit 84794d

Parameters

Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d

chunk

Packit 84794d

a GStringChunk

Packit 84794d
 
Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d

Types and Values

Packit 84794d
Packit 84794d

GStringChunk

Packit 84794d
typedef struct _GStringChunk GStringChunk;
Packit 84794d

An opaque data structure representing String Chunks.

Packit 84794d
It should only be accessed by using the following functions.

Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d
Packit 84794d

Generated by GTK-Doc V1.29.1
Packit 84794d
</body>
Packit 84794d
</html>