| 1 | /* GLIB - Library of useful routines for C programming | 
|---|
| 2 | * Copyright (C) 1995-1997  Peter Mattis, Spencer Kimball and Josh MacDonald | 
|---|
| 3 | * | 
|---|
| 4 | * This library is free software; you can redistribute it and/or | 
|---|
| 5 | * modify it under the terms of the GNU Lesser General Public | 
|---|
| 6 | * License as published by the Free Software Foundation; either | 
|---|
| 7 | * version 2.1 of the License, or (at your option) any later version. | 
|---|
| 8 | * | 
|---|
| 9 | * This library is distributed in the hope that it will be useful, | 
|---|
| 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
|---|
| 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the GNU | 
|---|
| 12 | * Lesser General Public License for more details. | 
|---|
| 13 | * | 
|---|
| 14 | * You should have received a copy of the GNU Lesser General Public | 
|---|
| 15 | * License along with this library; if not, see <http://www.gnu.org/licenses/>. | 
|---|
| 16 | */ | 
|---|
| 17 |  | 
|---|
| 18 | /* | 
|---|
| 19 | * Modified by the GLib Team and others 1997-2000.  See the AUTHORS | 
|---|
| 20 | * file for a list of people on the GLib Team.  See the ChangeLog | 
|---|
| 21 | * files for a list of changes.  These files are distributed with | 
|---|
| 22 | * GLib at ftp://ftp.gtk.org/pub/gtk/. | 
|---|
| 23 | */ | 
|---|
| 24 |  | 
|---|
| 25 | #ifndef __G_QUARK_H__ | 
|---|
| 26 | #define __G_QUARK_H__ | 
|---|
| 27 |  | 
|---|
| 28 | #if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) | 
|---|
| 29 | #error "Only <glib.h> can be included directly." | 
|---|
| 30 | #endif | 
|---|
| 31 |  | 
|---|
| 32 | #include <glib/gtypes.h> | 
|---|
| 33 |  | 
|---|
| 34 | G_BEGIN_DECLS | 
|---|
| 35 |  | 
|---|
| 36 | typedef guint32 GQuark; | 
|---|
| 37 |  | 
|---|
| 38 | /* Quarks (string<->id association) | 
|---|
| 39 | */ | 
|---|
| 40 | GLIB_AVAILABLE_IN_ALL | 
|---|
| 41 | GQuark                g_quark_try_string         (const gchar *string); | 
|---|
| 42 | GLIB_AVAILABLE_IN_ALL | 
|---|
| 43 | GQuark                g_quark_from_static_string (const gchar *string); | 
|---|
| 44 | GLIB_AVAILABLE_IN_ALL | 
|---|
| 45 | GQuark                g_quark_from_string        (const gchar *string); | 
|---|
| 46 | GLIB_AVAILABLE_IN_ALL | 
|---|
| 47 | const gchar *         g_quark_to_string          (GQuark       quark) G_GNUC_CONST; | 
|---|
| 48 |  | 
|---|
| 49 | #define G_DEFINE_QUARK(QN, q_n)                                         \ | 
|---|
| 50 | GQuark                                                                  \ | 
|---|
| 51 | q_n##_quark (void)                                                      \ | 
|---|
| 52 | {                                                                       \ | 
|---|
| 53 | static GQuark q;                                                      \ | 
|---|
| 54 | \ | 
|---|
| 55 | if G_UNLIKELY (q == 0)                                                \ | 
|---|
| 56 | q = g_quark_from_static_string (#QN);                               \ | 
|---|
| 57 | \ | 
|---|
| 58 | return q;                                                             \ | 
|---|
| 59 | } | 
|---|
| 60 |  | 
|---|
| 61 | GLIB_AVAILABLE_IN_ALL | 
|---|
| 62 | const gchar *         g_intern_string            (const gchar *string); | 
|---|
| 63 | GLIB_AVAILABLE_IN_ALL | 
|---|
| 64 | const gchar *         g_intern_static_string     (const gchar *string); | 
|---|
| 65 |  | 
|---|
| 66 | G_END_DECLS | 
|---|
| 67 |  | 
|---|
| 68 | #endif /* __G_QUARK_H__ */ | 
|---|
| 69 |  | 
|---|