00001 #ifndef PROTON_ERROR_H
00002 #define PROTON_ERROR_H 1
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #include <proton/import_export.h>
00026 #include <stdarg.h>
00027
00028 #ifdef __cplusplus
00029 extern "C" {
00030 #endif
00031
00044 typedef struct pn_error_t pn_error_t;
00045
00046 #define PN_OK (0)
00047 #define PN_EOS (-1)
00048 #define PN_ERR (-2)
00049 #define PN_OVERFLOW (-3)
00050 #define PN_UNDERFLOW (-4)
00051 #define PN_STATE_ERR (-5)
00052 #define PN_ARG_ERR (-6)
00053 #define PN_TIMEOUT (-7)
00054 #define PN_INTR (-8)
00055 #define PN_INPROGRESS (-9)
00056 #define PN_OUT_OF_MEMORY (-10)
00057 #define PN_ABORTED (-11)
00063 PN_EXTERN const char *pn_code(int code);
00064
00068 PN_EXTERN pn_error_t *pn_error(void);
00069
00073 PN_EXTERN void pn_error_free(pn_error_t *error);
00074
00078 PN_EXTERN void pn_error_clear(pn_error_t *error);
00079
00083 PN_EXTERN int pn_error_set(pn_error_t *error, int code, const char *text);
00084
00089 PN_EXTERN int pn_error_vformat(pn_error_t *error, int code, const char *fmt, va_list ap);
00090
00095 PN_EXTERN int pn_error_format(pn_error_t *error, int code, const char *fmt, ...);
00096
00100 PN_EXTERN int pn_error_code(pn_error_t *error);
00101
00106 PN_EXTERN const char *pn_error_text(pn_error_t *error);
00107
00111 PN_EXTERN int pn_error_copy(pn_error_t *error, pn_error_t *src);
00112
00116 #define PN_RETURN_IF_ERROR(x) \
00117 do {\
00118 int r = (x);\
00119 if (r < 0) return r; \
00120 } while (0)
00121
00129 #ifdef __cplusplus
00130 }
00131 #endif
00132
00133 #endif