00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __XMMS_ERROR_H__
00021 #define __XMMS_ERROR_H__
00022
00023 #include <glib.h>
00024 #include "xmmsc/xmmsc_errorcodes.h"
00025
00026 #define XMMS_ERROR_MESSAGE_MAXLEN 255
00027
00028 G_BEGIN_DECLS
00029
00030 typedef struct xmms_error_St {
00031 xmms_error_code_t code;
00032 gchar message[XMMS_ERROR_MESSAGE_MAXLEN + 1];
00033 } xmms_error_t;
00034
00035 static inline void
00036 xmms_error_set (xmms_error_t *err, xmms_error_code_t code, const gchar *message)
00037 {
00038 g_return_if_fail (err);
00039
00040 err->code = code;
00041 if (message) {
00042 g_strlcpy (err->message, message, XMMS_ERROR_MESSAGE_MAXLEN);
00043 } else {
00044 err->message[0] = 0;
00045 }
00046 }
00047
00048 static inline void
00049 xmms_error_reset (xmms_error_t *err)
00050 {
00051 g_return_if_fail (err);
00052
00053 err->code = XMMS_ERROR_NONE;
00054 err->message[0] = 0;
00055 }
00056
00057 #define xmms_error_iserror(e) ((e)->code != XMMS_ERROR_NONE)
00058 #define xmms_error_isok(e) ((e)->code == XMMS_ERROR_NONE)
00059
00060 #define xmms_error_type_get(e) ((e)->code)
00061
00062 const gchar *xmms_error_message_get (xmms_error_t *err);
00063
00064 G_END_DECLS
00065
00066 #endif