diff options
author | Luiz Capitulino <lcapitulino@redhat.com> | 2009-11-18 23:05:30 -0200 |
---|---|---|
committer | Anthony Liguori <aliguori@us.ibm.com> | 2009-12-03 09:41:20 -0600 |
commit | 9f9daf9a636c0e6ea435c93bfbccaf05e581eed9 (patch) | |
tree | 2e8c0b5b0453f487cd3c0eab5cf48222284a1bc9 /qerror.h | |
parent | 64084a03c375802150c5d1d0d6e72606f23553a7 (diff) |
Introduce QError
QError is a high-level data type which represents an exception
in QEMU, it stores the following error information:
- class Error class name (eg. "ServiceUnavailable")
- description A detailed error description, which can contain
references to run-time error data
- filename The file name of where the error occurred
- line number The exact line number of the error
- function The function name of where the error occurred
- run-time data Any run-time error data
Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Diffstat (limited to 'qerror.h')
-rw-r--r-- | qerror.h | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/qerror.h b/qerror.h new file mode 100644 index 0000000000..01703ee2b8 --- /dev/null +++ b/qerror.h @@ -0,0 +1,42 @@ +/* + * QError header file. + * + * Copyright (C) 2009 Red Hat Inc. + * + * Authors: + * Luiz Capitulino <lcapitulino@redhat.com> + * + * This work is licensed under the terms of the GNU LGPL, version 2.1 or later. + * See the COPYING.LIB file in the top-level directory. + */ +#ifndef QERROR_H +#define QERROR_H + +#include "qdict.h" +#include <stdarg.h> + +typedef struct QErrorStringTable { + const char *desc; + const char *error_fmt; +} QErrorStringTable; + +typedef struct QError { + QObject_HEAD; + QDict *error; + int linenr; + const char *file; + const char *func; + const QErrorStringTable *entry; +} QError; + +QError *qerror_new(void); +QError *qerror_from_info(const char *file, int linenr, const char *func, + const char *fmt, va_list *va); +void qerror_print(const QError *qerror); +QError *qobject_to_qerror(const QObject *obj); + +/* + * QError class list + */ + +#endif /* QERROR_H */ |