GRU - Generic Reusable Utilities
gru_status.h
Go to the documentation of this file.
1 
16 #ifndef GRU_STATUS_H
17 #define GRU_STATUS_H
18 
19 #include <assert.h>
20 #include <errno.h>
21 #include <stdarg.h>
22 #include <stdbool.h>
23 #include <stdint.h>
24 #include <stdio.h>
25 #include <stdlib.h>
26 #include <string.h>
27 
28 #include "common/gru_portable.h"
29 
30 #ifdef __cplusplus
31 extern "C" {
32 #endif
33 
34 #define GRU_MAX_ERROR_MESSAGE 1024
35 
36 /*
37  * Valid status codes
38  */
39 typedef enum gru_status_code_t_ {
43 
47 typedef struct gru_status_t_ {
48  char *message;
51 
57 
66  gru_status_code_t code,
67  const char *message,
68  ...);
69 
76 gru_export void
77  gru_status_strerror(gru_status_t *status, gru_status_code_t code, int errnum);
78 
84 
90 
96 gru_export bool gru_status_error(const gru_status_t *status);
97 
103 gru_export bool gru_status_success(const gru_status_t *status);
104 
105 #ifdef __cplusplus
106 }
107 #endif
108 
109 #endif /* GRU_STATUS_H */
#define gru_export
Definition: gru_portable.h:19
gru_export void gru_status_reset(gru_status_t *status)
Resets the status.
Definition: gru_status.c:49
gru_export bool gru_status_success(const gru_status_t *status)
Checks for success status.
Definition: gru_status.c:87
gru_export gru_status_t gru_status_new()
Create a new status object.
Definition: gru_status.c:18
gru_export void gru_status_set(gru_status_t *status, gru_status_code_t code, const char *message,...)
Sets the status.
Definition: gru_status.c:26
gru_status_code_t_
Definition: gru_status.h:39
@ GRU_SUCCESS
Definition: gru_status.h:40
@ GRU_FAILURE
Definition: gru_status.h:41
struct gru_status_t_ gru_status_t
Status type.
gru_export void gru_status_strerror(gru_status_t *status, gru_status_code_t code, int errnum)
Sets the status from the errno.
Definition: gru_status.c:59
gru_export bool gru_status_error(const gru_status_t *status)
Checks for error status.
Definition: gru_status.c:83
gru_export void gru_status_set_success(gru_status_t *status)
Sets the status to success.
Definition: gru_status.c:55
enum gru_status_code_t_ gru_status_code_t
Status type.
Definition: gru_status.h:47
char * message
Definition: gru_status.h:48
gru_status_code_t code
Definition: gru_status.h:49