1.1 --- a/epoc32/include/stdapis/glib-2.0/glib/gmessages.h Tue Nov 24 13:55:44 2009 +0000
1.2 +++ b/epoc32/include/stdapis/glib-2.0/glib/gmessages.h Tue Mar 16 16:12:26 2010 +0000
1.3 @@ -1,1 +1,366 @@
1.4 -gmessages.h
1.5 +/* GLIB - Library of useful routines for C programming
1.6 + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
1.7 + * Portions copyright (c) 2006 Nokia Corporation. All rights reserved.
1.8 + *
1.9 + * This library is free software; you can redistribute it and/or
1.10 + * modify it under the terms of the GNU Lesser General Public
1.11 + * License as published by the Free Software Foundation; either
1.12 + * version 2 of the License, or (at your option) any later version.
1.13 + *
1.14 + * This library is distributed in the hope that it will be useful,
1.15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
1.16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
1.17 + * Lesser General Public License for more details.
1.18 + *
1.19 + * You should have received a copy of the GNU Lesser General Public
1.20 + * License along with this library; if not, write to the
1.21 + * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
1.22 + * Boston, MA 02111-1307, USA.
1.23 + */
1.24 +
1.25 +/*
1.26 + * Modified by the GLib Team and others 1997-2000. See the AUTHORS
1.27 + * file for a list of people on the GLib Team. See the ChangeLog
1.28 + * files for a list of changes. These files are distributed with
1.29 + * GLib at ftp://ftp.gtk.org/pub/gtk/.
1.30 + */
1.31 +
1.32 +#ifndef __G_MESSAGES_H__
1.33 +#define __G_MESSAGES_H__
1.34 +
1.35 +#include <_ansi.h>
1.36 +#include <stdarg.h>
1.37 +#include <glib/gtypes.h>
1.38 +#include <glib/gmacros.h>
1.39 +
1.40 +/* Suppress warnings when GCC is in -pedantic mode and not -std=c99
1.41 + */
1.42 +#if (__GNUC__ >= 3 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96))
1.43 +#pragma GCC system_header
1.44 +#endif
1.45 +
1.46 +G_BEGIN_DECLS
1.47 +
1.48 +/* calculate a string size, guaranteed to fit format + args.
1.49 + */
1.50 +IMPORT_C gsize g_printf_string_upper_bound (const gchar* format,
1.51 + va_list args);
1.52 +
1.53 +/* Log level shift offset for user defined
1.54 + * log levels (0-7 are used by GLib).
1.55 + */
1.56 +#define G_LOG_LEVEL_USER_SHIFT (8)
1.57 +
1.58 +/* Glib log levels and flags.
1.59 + */
1.60 +typedef enum
1.61 +{
1.62 + /* log flags */
1.63 + G_LOG_FLAG_RECURSION = 1 << 0,
1.64 + G_LOG_FLAG_FATAL = 1 << 1,
1.65 +
1.66 + /* GLib log levels */
1.67 + G_LOG_LEVEL_ERROR = 1 << 2, /* always fatal */
1.68 + G_LOG_LEVEL_CRITICAL = 1 << 3,
1.69 + G_LOG_LEVEL_WARNING = 1 << 4,
1.70 + G_LOG_LEVEL_MESSAGE = 1 << 5,
1.71 + G_LOG_LEVEL_INFO = 1 << 6,
1.72 + G_LOG_LEVEL_DEBUG = 1 << 7,
1.73 +
1.74 + G_LOG_LEVEL_MASK = ~(G_LOG_FLAG_RECURSION | G_LOG_FLAG_FATAL)
1.75 +} GLogLevelFlags;
1.76 +
1.77 +/* GLib log levels that are considered fatal by default */
1.78 +#define G_LOG_FATAL_MASK (G_LOG_FLAG_RECURSION | G_LOG_LEVEL_ERROR)
1.79 +
1.80 +typedef void (*GLogFunc) (const gchar *log_domain,
1.81 + GLogLevelFlags log_level,
1.82 + const gchar *message,
1.83 + gpointer user_data);
1.84 +
1.85 +/* Logging mechanism
1.86 + */
1.87 +IMPORT_C guint g_log_set_handler (const gchar *log_domain,
1.88 + GLogLevelFlags log_levels,
1.89 + GLogFunc log_func,
1.90 + gpointer user_data);
1.91 +IMPORT_C void g_log_remove_handler (const gchar *log_domain,
1.92 + guint handler_id);
1.93 +IMPORT_C void g_log_default_handler (const gchar *log_domain,
1.94 + GLogLevelFlags log_level,
1.95 + const gchar *message,
1.96 + gpointer unused_data);
1.97 +IMPORT_C GLogFunc g_log_set_default_handler (GLogFunc log_func,
1.98 + gpointer user_data);
1.99 +IMPORT_C void g_log (const gchar *log_domain,
1.100 + GLogLevelFlags log_level,
1.101 + const gchar *format,
1.102 + ...) G_GNUC_PRINTF (3, 4);
1.103 +IMPORT_C void g_logv (const gchar *log_domain,
1.104 + GLogLevelFlags log_level,
1.105 + const gchar *format,
1.106 + va_list args);
1.107 +IMPORT_C GLogLevelFlags g_log_set_fatal_mask (const gchar *log_domain,
1.108 + GLogLevelFlags fatal_mask);
1.109 +IMPORT_C GLogLevelFlags g_log_set_always_fatal (GLogLevelFlags fatal_mask);
1.110 +
1.111 +/* internal */
1.112 +void _g_log_fallback_handler (const gchar *log_domain,
1.113 + GLogLevelFlags log_level,
1.114 + const gchar *message,
1.115 + gpointer unused_data) G_GNUC_INTERNAL;
1.116 +
1.117 +/* Internal functions, used to implement the following macros */
1.118 +IMPORT_C void g_return_if_fail_warning (const char *log_domain,
1.119 + const char *pretty_function,
1.120 + const char *expression);
1.121 +IMPORT_C void g_assert_warning (const char *log_domain,
1.122 + const char *file,
1.123 + const int line,
1.124 + const char *pretty_function,
1.125 + const char *expression) G_GNUC_NORETURN;
1.126 +
1.127 +
1.128 +#ifndef G_LOG_DOMAIN
1.129 +#define G_LOG_DOMAIN ((gchar*) 0)
1.130 +#endif /* G_LOG_DOMAIN */
1.131 +#ifdef G_HAVE_ISO_VARARGS
1.132 +#define g_error(...) g_log (G_LOG_DOMAIN, \
1.133 + G_LOG_LEVEL_ERROR, \
1.134 + __VA_ARGS__)
1.135 +#define g_message(...) g_log (G_LOG_DOMAIN, \
1.136 + G_LOG_LEVEL_MESSAGE, \
1.137 + __VA_ARGS__)
1.138 +#define g_critical(...) g_log (G_LOG_DOMAIN, \
1.139 + G_LOG_LEVEL_CRITICAL, \
1.140 + __VA_ARGS__)
1.141 +#define g_warning(...) g_log (G_LOG_DOMAIN, \
1.142 + G_LOG_LEVEL_WARNING, \
1.143 + __VA_ARGS__)
1.144 +#define g_debug(...) g_log (G_LOG_DOMAIN, \
1.145 + G_LOG_LEVEL_DEBUG, \
1.146 + __VA_ARGS__)
1.147 +#elif defined(G_HAVE_GNUC_VARARGS)
1.148 +#define g_error(format...) g_log (G_LOG_DOMAIN, \
1.149 + G_LOG_LEVEL_ERROR, \
1.150 + format)
1.151 +#define g_message(format...) g_log (G_LOG_DOMAIN, \
1.152 + G_LOG_LEVEL_MESSAGE, \
1.153 + format)
1.154 +#define g_critical(format...) g_log (G_LOG_DOMAIN, \
1.155 + G_LOG_LEVEL_CRITICAL, \
1.156 + format)
1.157 +#define g_warning(format...) g_log (G_LOG_DOMAIN, \
1.158 + G_LOG_LEVEL_WARNING, \
1.159 + format)
1.160 +#define g_debug(format...) g_log (G_LOG_DOMAIN, \
1.161 + G_LOG_LEVEL_DEBUG, \
1.162 + format)
1.163 +#else /* no varargs macros */
1.164 +static void
1.165 +g_error (const gchar *format,
1.166 + ...)
1.167 +{
1.168 + va_list args;
1.169 + va_start (args, format);
1.170 + g_logv (G_LOG_DOMAIN, G_LOG_LEVEL_ERROR, format, args);
1.171 + va_end (args);
1.172 +}
1.173 +static void
1.174 +g_message (const gchar *format,
1.175 + ...)
1.176 +{
1.177 + va_list args;
1.178 + va_start (args, format);
1.179 + g_logv (G_LOG_DOMAIN, G_LOG_LEVEL_MESSAGE, format, args);
1.180 + va_end (args);
1.181 +}
1.182 +static void
1.183 +g_critical (const gchar *format,
1.184 + ...)
1.185 +{
1.186 + va_list args;
1.187 + va_start (args, format);
1.188 + g_logv (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL, format, args);
1.189 + va_end (args);
1.190 +}
1.191 +static void
1.192 +g_warning (const gchar *format,
1.193 + ...)
1.194 +{
1.195 + va_list args;
1.196 + va_start (args, format);
1.197 + g_logv (G_LOG_DOMAIN, G_LOG_LEVEL_WARNING, format, args);
1.198 + va_end (args);
1.199 +}
1.200 +static void
1.201 +g_debug (const gchar *format,
1.202 + ...)
1.203 +{
1.204 + va_list args;
1.205 + va_start (args, format);
1.206 + g_logv (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, format, args);
1.207 + va_end (args);
1.208 +}
1.209 +#endif /* !__GNUC__ */
1.210 +
1.211 +typedef void (*GPrintFunc) (const gchar *string);
1.212 +IMPORT_C void g_print (const gchar *format,
1.213 + ...) G_GNUC_PRINTF (1, 2);
1.214 +IMPORT_C GPrintFunc g_set_print_handler (GPrintFunc func);
1.215 +IMPORT_C void g_printerr (const gchar *format,
1.216 + ...) G_GNUC_PRINTF (1, 2);
1.217 +IMPORT_C GPrintFunc g_set_printerr_handler (GPrintFunc func);
1.218 +
1.219 +
1.220 +/* Provide macros for error handling. The "assert" macros will
1.221 + * exit on failure. The "return" macros will exit the current
1.222 + * function. Two different definitions are given for the macros
1.223 + * if G_DISABLE_ASSERT is not defined, in order to support gcc's
1.224 + * __PRETTY_FUNCTION__ capability.
1.225 + */
1.226 +
1.227 +#ifdef G_DISABLE_ASSERT
1.228 +
1.229 +#define g_assert(expr) G_STMT_START{ (void)0; }G_STMT_END
1.230 +#define g_assert_not_reached() G_STMT_START{ (void)0; }G_STMT_END
1.231 +
1.232 +#else /* !G_DISABLE_ASSERT */
1.233 +
1.234 +#ifdef __GNUC__
1.235 +
1.236 +#define g_assert(expr) G_STMT_START{ \
1.237 + if G_LIKELY(expr) { } else \
1.238 + g_assert_warning (G_LOG_DOMAIN, \
1.239 + __FILE__, \
1.240 + __LINE__, \
1.241 + __PRETTY_FUNCTION__, \
1.242 + #expr); }G_STMT_END
1.243 +
1.244 +#define g_assert_not_reached() G_STMT_START{ \
1.245 + g_assert_warning (G_LOG_DOMAIN, \
1.246 + __FILE__, \
1.247 + __LINE__, \
1.248 + __PRETTY_FUNCTION__, \
1.249 + NULL); }G_STMT_END
1.250 +
1.251 +#else /* !__GNUC__ */
1.252 +
1.253 +#define g_assert(expr) G_STMT_START{ \
1.254 + if (expr) { } else \
1.255 + g_log (G_LOG_DOMAIN, \
1.256 + G_LOG_LEVEL_ERROR, \
1.257 + "file %s: line %d: assertion failed: (%s)", \
1.258 + __FILE__, \
1.259 + __LINE__, \
1.260 + #expr); }G_STMT_END
1.261 +
1.262 +#define g_assert_not_reached() G_STMT_START{ \
1.263 + g_log (G_LOG_DOMAIN, \
1.264 + G_LOG_LEVEL_ERROR, \
1.265 + "file %s: line %d: should not be reached", \
1.266 + __FILE__, \
1.267 + __LINE__); }G_STMT_END
1.268 +
1.269 +#endif /* __GNUC__ */
1.270 +
1.271 +#endif /* !G_DISABLE_ASSERT */
1.272 +
1.273 +
1.274 +#ifdef G_DISABLE_CHECKS
1.275 +
1.276 +#define g_return_if_fail(expr) G_STMT_START{ (void)0; }G_STMT_END
1.277 +#define g_return_val_if_fail(expr,val) G_STMT_START{ (void)0; }G_STMT_END
1.278 +#define g_return_if_reached() G_STMT_START{ return; }G_STMT_END
1.279 +#define g_return_val_if_reached(val) G_STMT_START{ return (val); }G_STMT_END
1.280 +
1.281 +#else /* !G_DISABLE_CHECKS */
1.282 +
1.283 +#ifdef __GNUC__
1.284 +
1.285 +#define g_return_if_fail(expr) G_STMT_START{ \
1.286 + if G_LIKELY(expr) { } else \
1.287 + { \
1.288 + g_return_if_fail_warning (G_LOG_DOMAIN, \
1.289 + __PRETTY_FUNCTION__, \
1.290 + #expr); \
1.291 + return; \
1.292 + }; }G_STMT_END
1.293 +
1.294 +#define g_return_val_if_fail(expr,val) G_STMT_START{ \
1.295 + if G_LIKELY(expr) { } else \
1.296 + { \
1.297 + g_return_if_fail_warning (G_LOG_DOMAIN, \
1.298 + __PRETTY_FUNCTION__, \
1.299 + #expr); \
1.300 + return (val); \
1.301 + }; }G_STMT_END
1.302 +
1.303 +#define g_return_if_reached() G_STMT_START{ \
1.304 + g_log (G_LOG_DOMAIN, \
1.305 + G_LOG_LEVEL_CRITICAL, \
1.306 + "file %s: line %d (%s): should not be reached", \
1.307 + __FILE__, \
1.308 + __LINE__, \
1.309 + __PRETTY_FUNCTION__); \
1.310 + return; }G_STMT_END
1.311 +
1.312 +#define g_return_val_if_reached(val) G_STMT_START{ \
1.313 + g_log (G_LOG_DOMAIN, \
1.314 + G_LOG_LEVEL_CRITICAL, \
1.315 + "file %s: line %d (%s): should not be reached", \
1.316 + __FILE__, \
1.317 + __LINE__, \
1.318 + __PRETTY_FUNCTION__); \
1.319 + return (val); }G_STMT_END
1.320 +
1.321 +#else /* !__GNUC__ */
1.322 +
1.323 +#define g_return_if_fail(expr) G_STMT_START{ \
1.324 + if (expr) { } else \
1.325 + { \
1.326 + g_log (G_LOG_DOMAIN, \
1.327 + G_LOG_LEVEL_CRITICAL, \
1.328 + "file %s: line %d: assertion `%s' failed", \
1.329 + __FILE__, \
1.330 + __LINE__, \
1.331 + #expr); \
1.332 + return; \
1.333 + }; }G_STMT_END
1.334 +
1.335 +#define g_return_val_if_fail(expr, val) G_STMT_START{ \
1.336 + if (expr) { } else \
1.337 + { \
1.338 + g_log (G_LOG_DOMAIN, \
1.339 + G_LOG_LEVEL_CRITICAL, \
1.340 + "file %s: line %d: assertion `%s' failed", \
1.341 + __FILE__, \
1.342 + __LINE__, \
1.343 + #expr); \
1.344 + return (val); \
1.345 + }; }G_STMT_END
1.346 +
1.347 +#define g_return_if_reached() G_STMT_START{ \
1.348 + g_log (G_LOG_DOMAIN, \
1.349 + G_LOG_LEVEL_CRITICAL, \
1.350 + "file %s: line %d: should not be reached", \
1.351 + __FILE__, \
1.352 + __LINE__); \
1.353 + return; }G_STMT_END
1.354 +
1.355 +#define g_return_val_if_reached(val) G_STMT_START{ \
1.356 + g_log (G_LOG_DOMAIN, \
1.357 + G_LOG_LEVEL_CRITICAL, \
1.358 + "file %s: line %d: should not be reached", \
1.359 + __FILE__, \
1.360 + __LINE__); \
1.361 + return (val); }G_STMT_END
1.362 +
1.363 +#endif /* !__GNUC__ */
1.364 +
1.365 +#endif /* !G_DISABLE_CHECKS */
1.366 +
1.367 +G_END_DECLS
1.368 +
1.369 +#endif /* __G_MESSAGES_H__ */
1.370 +