Quarks — a 2-way association between a string and a unique integer identifier.
glib.lib
#include <glib.h>
typedef GQuark;
GQuark g_quark_from_string (const gchar *string);
GQuark g_quark_from_static_string (const gchar *string);
const gchar* g_quark_to_string (GQuark quark);
GQuark g_quark_try_string (const gchar *string);
const gchar* g_intern_string (const gchar *string); const gchar* g_intern_static_string (const gchar *string);
Quarks are associations between strings and integer identifiers. Given either the string or the GQuark identifier it is possible to retrieve the other.
Quarks are used for both Datasets and Keyed Data Lists.
To create a new quark from a string, use
g_quark_from_string()
or
g_quark_from_static_string()
.
To find the string corresponding to a given GQuark, use
g_quark_to_string()
.
To find the GQuark
corresponding to a given string, use
g_quark_try_string()
.
Another use for the string pool maintained for the quark functions is string
interning, using
g_intern_string()
or
g_intern_static_string()
. An interned string is a canonical representation for a string. One important
advantage of interned strings is that they can be compared for equality by a
simple pointer comparison, rather than using strcmp()
.
typedef guint32 GQuark;
A GQuark is an integer which uniquely identifies a particular string.
GQuark g_quark_from_string (const gchar *string);
Gets the GQuark identifying the given string. If the string does not currently have an associated GQuark, a new GQuark is created, using a copy of the string.
string : |
a string. |
Returns : | the GQuark identifying the string. |
GQuark g_quark_from_static_string (const gchar *string);
Gets the GQuark identifying the given (static) string. If the string does not currently have an associated GQuark, a new GQuark is created, linked to the given string.
Note that this function is identical to
g_quark_from_string()
except that if a new GQuark
is created the string itself is used rather than a copy. This saves memory, but
can only be used if the string will
always exist. It can be used with
statically allocated strings in the main program, but not with statically
allocated memory in dynamically loaded modules, if expected to ever unload the
module again (e.g. do not use this function in GTK+ theme engines).
string : |
a string. |
Returns : | the GQuark identifying the string. |
const gchar* g_quark_to_string (GQuark quark);
Gets the string associated with the given GQuark.
Gets the GQuark
associated with the given string, or 0 if the string has no associated
GQuark.
To create GQuark if it does not already exist, use
g_quark_from_string()
or g_quark_from_static_string()
.
const gchar* g_intern_string (const gchar *string);
Returns a canonical representation for string
.
Interned strings can be compared for equality by comparing the pointers, instead
of using strcmp()
.
string : |
a string |
Returns : | a canonical representation for the string |
const gchar* g_intern_static_string (const gchar *string);
Returns a canonical representation for string
.
Interned strings can be compared for equality by comparing the pointers, instead
of using strcmp()
.
g_intern_static_string()
does not copy the string,
therefore string
must not be freed or
modified.
string : |
a static string |
Returns : | a canonical representation for the string |
For additional information or queries on this
page send
feedback
© 2005-2007 Nokia |