epoc32/include/stdapis/glib-2.0/glib/gmessages.h
branchSymbian2
changeset 2 2fe1408b6811
parent 0 061f57f2323e
     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 +