|
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 |
|
|
Packit |
ae235b |
|
|
Packit |
ae235b |
|
|
Packit |
ae235b |
|
|
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>
|