Modules | |
Simplified Error Codes | |
Error Type Lookup | |
These functions lookup error types by name or by number. | |
GWENHYWFAR_API int | GWEN_Error_FindType (const char *name) |
GWENHYWFAR_API const char * | GWEN_Error_GetTypename (int t) |
Getters And Setters | |
These functions get and set parts of an ERRORCODE. | |
GWENHYWFAR_API int | GWEN_Error_GetCode (GWEN_ERRORCODE c) |
GWENHYWFAR_API int | GWEN_Error_GetSeverity (GWEN_ERRORCODE c) |
GWENHYWFAR_API int | GWEN_Error_GetType (GWEN_ERRORCODE c) |
GWENHYWFAR_API int | GWEN_Error_IsCustom (GWEN_ERRORCODE c) |
GWENHYWFAR_API int | GWEN_Error_IsOk (GWEN_ERRORCODE c) |
GWENHYWFAR_API GWEN_ERRORCODE | GWEN_Error_new (int iscustom, int severity, int typ, int code) |
GWENHYWFAR_API void | GWEN_Error_SetCode (GWEN_ERRORCODE *c, int v) |
GWENHYWFAR_API void | GWEN_Error_SetIsCustom (GWEN_ERRORCODE *c, int iscustom) |
GWENHYWFAR_API void | GWEN_Error_SetSeverity (GWEN_ERRORCODE *c, int v) |
GWENHYWFAR_API void | GWEN_Error_SetType (GWEN_ERRORCODE *c, int v) |
Simplified Error Codes | |
In most cases you only need a simplified error code (without severity information etc). For those cases the constructed error code can be turned into a simplified code. | |
GWENHYWFAR_API int | GWEN_Error_GetSimpleCode (GWEN_ERRORCODE c) |
Error Type Registration | |
These functions are used to allocate error types. Each module should allocate a type to allow descriptive error messages. Since function pointers are involved you should carefully register and unregister the error types. | |
GWENHYWFAR_API GWEN_ERRORCODE | GWEN_Error_RegisterType (GWEN_ERRORTYPEREGISTRATIONFORM *tptr) |
GWENHYWFAR_API GWEN_ERRORCODE | GWEN_Error_UnregisterType (GWEN_ERRORTYPEREGISTRATIONFORM *tptr) |
Verbosity | |
Composing error messages. | |
GWENHYWFAR_API int | GWEN_Error_ToString (GWEN_ERRORCODE c, char *buffer, int bsize) |
Error Type Registration Form | |
GWENHYWFAR_API void | GWEN_ErrorType_free (GWEN_ERRORTYPEREGISTRATIONFORM *f) |
GWENHYWFAR_API GWEN_ERRORMESSAGEPTR | GWEN_ErrorType_GetMsgPtr (GWEN_ERRORTYPEREGISTRATIONFORM *f) |
GWENHYWFAR_API GWEN_ERRORTYPEREGISTRATIONFORM * | GWEN_ErrorType_new () |
GWENHYWFAR_API void | GWEN_ErrorType_SetMsgPtr (GWEN_ERRORTYPEREGISTRATIONFORM *f, GWEN_ERRORMESSAGEPTR msgptr) |
GWENHYWFAR_API void | GWEN_ErrorType_SetName (GWEN_ERRORTYPEREGISTRATIONFORM *f, const char *name) |
GWENHYWFAR_API void | GWEN_ErrorType_SetType (GWEN_ERRORTYPEREGISTRATIONFORM *f, int c) |
Defines | |
#define | GWEN_ERROR_COULD_NOT_REGISTER 2 |
#define | GWEN_ERROR_COULD_NOT_UNREGISTER 3 |
#define | GWEN_ERROR_INVALID_BUFFERSIZE 4 |
#define | GWEN_ERROR_SEVERITY_DEBUG 0 |
#define | GWEN_ERROR_SEVERITY_ERR 3 |
#define | GWEN_ERROR_SEVERITY_INFO 1 |
#define | GWEN_ERROR_SEVERITY_WARN 2 |
#define | GWEN_ERROR_TYPE_ERROR 0 |
#define | GWEN_ERROR_UNSPECIFIED 1 |
Typedefs | |
typedef GWEN_TYPE_UINT32 | GWEN_ERRORCODE |
typedef const char *(*) | GWEN_ERRORMESSAGEPTR (int c) |
typedef GWEN_ERRORTYPEREGISTRATIONFORM | GWEN_ERRORTYPEREGISTRATIONFORM |
Functions | |
GWENHYWFAR_API int | GWEN_ErrorType_GetType (GWEN_ERRORTYPEREGISTRATIONFORM *f) |
All errors are grouped into error types. There is no predefined error type, all modules, which want to take advantage of this module should register their own error type. When registering an error type, this module learns about the new error type:
#define GWEN_ERROR_SEVERITY_DEBUG 0 |
#define GWEN_ERROR_SEVERITY_ERR 3 |
#define GWEN_ERROR_SEVERITY_INFO 1 |
#define GWEN_ERROR_SEVERITY_WARN 2 |
#define GWEN_ERROR_TYPE_ERROR 0 |
typedef GWEN_TYPE_UINT32 GWEN_ERRORCODE |
typedef const char*(*) GWEN_ERRORMESSAGEPTR(int c) |
typedef struct GWEN_ERRORTYPEREGISTRATIONFORM GWEN_ERRORTYPEREGISTRATIONFORM |
GWENHYWFAR_API int GWEN_Error_FindType | ( | const char * | name | ) |
This function returns the type number for the given type name.
GWENHYWFAR_API int GWEN_Error_GetCode | ( | GWEN_ERRORCODE | c | ) |
Returns the 16 bit error code value.
GWENHYWFAR_API int GWEN_Error_GetSeverity | ( | GWEN_ERRORCODE | c | ) |
Returns the severity of the error
GWENHYWFAR_API int GWEN_Error_GetSimpleCode | ( | GWEN_ERRORCODE | c | ) |
GWENHYWFAR_API int GWEN_Error_GetType | ( | GWEN_ERRORCODE | c | ) |
Returns the error type.
GWENHYWFAR_API const char* GWEN_Error_GetTypename | ( | int | t | ) |
Returns the name of the type referenced by the its type number. This function is used when composing a human readable error string.
t | type number |
GWENHYWFAR_API int GWEN_Error_IsCustom | ( | GWEN_ERRORCODE | c | ) |
Checks whether this is a custom error code (which means that the error type and code has to be handled differently. Such a code might be used in programs).
GWENHYWFAR_API int GWEN_Error_IsOk | ( | GWEN_ERRORCODE | c | ) |
Checks whether the code really contains an error. If it contains a debug/info/warn code then it will be treaten as "ok".
GWENHYWFAR_API GWEN_ERRORCODE GWEN_Error_new | ( | int | iscustom, | |
int | severity, | |||
int | typ, | |||
int | code | |||
) |
Creates an error code based on the arguments given
iscustom | if !=0, then this is a custom code. Such an error code can be used by applications. No module of this library will produce errors with this set, so you can use this to take advantage of the ERRORCODE management even without registering you own error type. | |
severity | severity level of this code (might be simply a debug code, a warning, an information or an error) | |
typ | type of this code. As you read above all errors are grouped into error types. | |
code | error code. This needs only to be unique within the error type (in fact that was the reason to introduce the "error type") |
GWENHYWFAR_API GWEN_ERRORCODE GWEN_Error_RegisterType | ( | GWEN_ERRORTYPEREGISTRATIONFORM * | tptr | ) |
Register an error type. This function is called by other modules to register a unique type value for itself.
GWENHYWFAR_API void GWEN_Error_SetCode | ( | GWEN_ERRORCODE * | c, | |
int | v | |||
) |
Sets the error code.
GWENHYWFAR_API void GWEN_Error_SetIsCustom | ( | GWEN_ERRORCODE * | c, | |
int | iscustom | |||
) |
Sets the custom flag.
GWENHYWFAR_API void GWEN_Error_SetSeverity | ( | GWEN_ERRORCODE * | c, | |
int | v | |||
) |
Sets the severity level.
GWENHYWFAR_API void GWEN_Error_SetType | ( | GWEN_ERRORCODE * | c, | |
int | v | |||
) |
Sets the error type.
GWENHYWFAR_API int GWEN_Error_ToString | ( | GWEN_ERRORCODE | c, | |
char * | buffer, | |||
int | bsize | |||
) |
Composes a human readable error string which dumps all parts of an ERRORCODE.
c | error code | |
buffer | pointer to a buffer to receive the message | |
bsize | size of that buffer in bytes |
GWENHYWFAR_API GWEN_ERRORCODE GWEN_Error_UnregisterType | ( | GWEN_ERRORTYPEREGISTRATIONFORM * | tptr | ) |
When removing a module it should always unregister its assigned error type to avoid segfaultes (due to pointers pointing to nowhere).
GWENHYWFAR_API void GWEN_ErrorType_free | ( | GWEN_ERRORTYPEREGISTRATIONFORM * | f | ) |
GWENHYWFAR_API GWEN_ERRORMESSAGEPTR GWEN_ErrorType_GetMsgPtr | ( | GWEN_ERRORTYPEREGISTRATIONFORM * | f | ) |
GWENHYWFAR_API int GWEN_ErrorType_GetType | ( | GWEN_ERRORTYPEREGISTRATIONFORM * | f | ) |
GWENHYWFAR_API GWEN_ERRORTYPEREGISTRATIONFORM* GWEN_ErrorType_new | ( | ) |
GWENHYWFAR_API void GWEN_ErrorType_SetMsgPtr | ( | GWEN_ERRORTYPEREGISTRATIONFORM * | f, | |
GWEN_ERRORMESSAGEPTR | msgptr | |||
) |
GWENHYWFAR_API void GWEN_ErrorType_SetName | ( | GWEN_ERRORTYPEREGISTRATIONFORM * | f, | |
const char * | name | |||
) |
GWENHYWFAR_API void GWEN_ErrorType_SetType | ( | GWEN_ERRORTYPEREGISTRATIONFORM * | f, | |
int | c | |||
) |