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

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

String Chunks

Packit ae235b

String Chunks — efficient storage of groups of strings

Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b

Functions

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

Types and Values

Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
 
Packit ae235b
GStringChunk
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b

Includes

Packit ae235b
#include <gmodule.h>
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b

Description

Packit ae235b

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

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

Packit ae235b

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

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

Packit ae235b

By adding strings with g_string_chunk_insert_const() it is also

Packit ae235b
possible to remove duplicates.

Packit ae235b

To create a new GStringChunk use g_string_chunk_new().

Packit ae235b

To add strings to a GStringChunk use g_string_chunk_insert().

Packit ae235b

To add strings to a GStringChunk, but without duplicating strings

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

Packit ae235b

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

Packit ae235b
not possible to free individual strings.

Packit ae235b
Packit ae235b
Packit ae235b

Functions

Packit ae235b
Packit ae235b

g_string_chunk_new ()

Packit ae235b
GStringChunk *
Packit ae235b
g_string_chunk_new (gsize size);
Packit ae235b

Creates a new GStringChunk.

Packit ae235b
Packit ae235b

Parameters

Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b

size

Packit ae235b

the default size of the blocks of memory which are

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

Packit ae235b
 
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b

Returns

Packit ae235b

a new GStringChunk

Packit ae235b
Packit ae235b
Packit ae235b

Packit ae235b
Packit ae235b

g_string_chunk_insert ()

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

Adds a copy of string

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

Packit ae235b

Unlike g_string_chunk_insert_const(), this function

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

Packit ae235b
Packit ae235b

Parameters

Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b

chunk

Packit ae235b

a GStringChunk

Packit ae235b
 
Packit ae235b
Packit ae235b
Packit ae235b

string

Packit ae235b

the string to add

Packit ae235b
 
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b

Returns

Packit ae235b

a pointer to the copy of string

Packit ae235b
within
Packit ae235b
the GStringChunk

Packit ae235b
Packit ae235b
Packit ae235b

Packit ae235b
Packit ae235b

g_string_chunk_insert_const ()

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

Adds a copy of string

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

Packit ae235b

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

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

Packit ae235b

Note that g_string_chunk_insert_const() will not return a

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

Packit ae235b
Packit ae235b

Parameters

Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b

chunk

Packit ae235b

a GStringChunk

Packit ae235b
 
Packit ae235b
Packit ae235b
Packit ae235b

string

Packit ae235b

the string to add

Packit ae235b
 
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b

Returns

Packit ae235b

a pointer to the new or existing copy of string

Packit ae235b
within the GStringChunk

Packit ae235b
Packit ae235b
Packit ae235b

Packit ae235b
Packit ae235b

g_string_chunk_insert_len ()

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

Adds a copy of the first len

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

Packit ae235b

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

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

Packit ae235b

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

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

Packit ae235b
Packit ae235b

Parameters

Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b

chunk

Packit ae235b

a GStringChunk

Packit ae235b
 
Packit ae235b
Packit ae235b
Packit ae235b

string

Packit ae235b

bytes to insert

Packit ae235b
 
Packit ae235b
Packit ae235b
Packit ae235b

len

Packit ae235b

number of bytes of string

Packit ae235b
to insert, or -1 to insert a
Packit ae235b
nul-terminated string

Packit ae235b
 
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b

Returns

Packit ae235b

a pointer to the copy of string

Packit ae235b
within the GStringChunk

Packit ae235b
Packit ae235b

Since: 2.4

Packit ae235b
Packit ae235b

Packit ae235b
Packit ae235b

g_string_chunk_clear ()

Packit ae235b
void
Packit ae235b
g_string_chunk_clear (GStringChunk *chunk);
Packit ae235b

Frees all strings contained within the GStringChunk.

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

Packit ae235b
Packit ae235b

Parameters

Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b

chunk

Packit ae235b

a GStringChunk

Packit ae235b
 
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b

Since: 2.14

Packit ae235b
Packit ae235b

Packit ae235b
Packit ae235b

g_string_chunk_free ()

Packit ae235b
void
Packit ae235b
g_string_chunk_free (GStringChunk *chunk);
Packit ae235b

Frees all memory allocated by the GStringChunk.

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

Packit ae235b
Packit ae235b

Parameters

Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b

chunk

Packit ae235b

a GStringChunk

Packit ae235b
 
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b

Types and Values

Packit ae235b
Packit ae235b

GStringChunk

Packit ae235b
typedef struct _GStringChunk GStringChunk;
Packit ae235b

An opaque data structure representing String Chunks.

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

Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b
Packit ae235b

Generated by GTK-Doc V1.27
Packit ae235b
</body>
Packit ae235b
</html>