123 lines
4.4 KiB
C
123 lines
4.4 KiB
C
|
#ifndef HV_ERR_H_
|
||
|
#define HV_ERR_H_
|
||
|
|
||
|
#include <errno.h>
|
||
|
|
||
|
#include "hexport.h"
|
||
|
|
||
|
#ifndef SYS_NERR
|
||
|
#define SYS_NERR 133
|
||
|
#endif
|
||
|
|
||
|
// F(errcode, name, errmsg)
|
||
|
// [1, 133]
|
||
|
#define FOREACH_ERR_SYS(F)
|
||
|
|
||
|
// [1xx~5xx]
|
||
|
#define FOREACH_ERR_STATUS(F)
|
||
|
|
||
|
// [1xxx]
|
||
|
#define FOREACH_ERR_COMMON(F) \
|
||
|
F(0, OK, "OK") \
|
||
|
F(1000, UNKNOWN, "Unknown error") \
|
||
|
\
|
||
|
F(1001, NULL_PARAM, "Null parameter") \
|
||
|
F(1002, NULL_POINTER, "Null pointer") \
|
||
|
F(1003, NULL_DATA, "Null data") \
|
||
|
F(1004, NULL_HANDLE, "Null handle") \
|
||
|
\
|
||
|
F(1011, INVALID_PARAM, "Invalid parameter")\
|
||
|
F(1012, INVALID_POINTER, "Invalid pointer") \
|
||
|
F(1013, INVALID_DATA, "Invalid data") \
|
||
|
F(1014, INVALID_HANDLE, "Invalid handle") \
|
||
|
F(1015, INVALID_JSON, "Invalid json") \
|
||
|
F(1016, INVALID_XML, "Invalid xml") \
|
||
|
F(1017, INVALID_FMT, "Invalid format") \
|
||
|
F(1018, INVALID_PROTOCOL, "Invalid protocol") \
|
||
|
F(1019, INVALID_PACKAGE, "Invalid package") \
|
||
|
\
|
||
|
F(1021, OUT_OF_RANGE, "Out of range") \
|
||
|
F(1022, OVER_LIMIT, "Over the limit") \
|
||
|
F(1023, MISMATCH, "Mismatch") \
|
||
|
F(1024, PARSE, "Parse failed") \
|
||
|
\
|
||
|
F(1030, OPEN_FILE, "Open file failed") \
|
||
|
F(1031, SAVE_FILE, "Save file failed") \
|
||
|
F(1032, READ_FILE, "Read file failed") \
|
||
|
F(1033, WRITE_FILE, "Write file failed")\
|
||
|
\
|
||
|
F(1040, SSL, "SSL/TLS error") \
|
||
|
F(1041, NEW_SSL_CTX, "New SSL_CTX failed") \
|
||
|
F(1042, NEW_SSL, "New SSL failed") \
|
||
|
F(1043, SSL_HANDSHAKE, "SSL handshake failed") \
|
||
|
\
|
||
|
F(1100, TASK_TIMEOUT, "Task timeout") \
|
||
|
F(1101, TASK_QUEUE_FULL, "Task queue full") \
|
||
|
F(1102, TASK_QUEUE_EMPTY, "Task queue empty") \
|
||
|
\
|
||
|
F(1400, REQUEST, "Bad request") \
|
||
|
F(1401, RESPONSE, "Bad response") \
|
||
|
|
||
|
// [-1xxx]
|
||
|
#define FOREACH_ERR_FUNC(F) \
|
||
|
F(-1001, MALLOC, "malloc() error") \
|
||
|
F(-1002, REALLOC, "realloc() error") \
|
||
|
F(-1003, CALLOC, "calloc() error") \
|
||
|
F(-1004, FREE, "free() error") \
|
||
|
\
|
||
|
F(-1011, SOCKET, "socket() error") \
|
||
|
F(-1012, BIND, "bind() error") \
|
||
|
F(-1013, LISTEN, "listen() error") \
|
||
|
F(-1014, ACCEPT, "accept() error") \
|
||
|
F(-1015, CONNECT, "connect() error") \
|
||
|
F(-1016, RECV, "recv() error") \
|
||
|
F(-1017, SEND, "send() error") \
|
||
|
F(-1018, RECVFROM, "recvfrom() error") \
|
||
|
F(-1019, SENDTO, "sendto() error") \
|
||
|
F(-1020, SETSOCKOPT, "setsockopt() error") \
|
||
|
F(-1021, GETSOCKOPT, "getsockopt() error") \
|
||
|
|
||
|
// grpc [4xxx]
|
||
|
#define FOREACH_ERR_GRPC(F) \
|
||
|
F(4000, GRPC_FIRST, "grpc no error") \
|
||
|
F(4001, GRPC_STATUS_CANCELLED, "grpc status: cancelled") \
|
||
|
F(4002, GRPC_STATUS_UNKNOWN, "grpc unknown error") \
|
||
|
F(4003, GRPC_STATUS_INVALID_ARGUMENT, "grpc status: invalid argument")\
|
||
|
F(4004, GRPC_STATUS_DEADLINE, "grpc status: deadline") \
|
||
|
F(4005, GRPC_STATUS_NOT_FOUND, "grpc status: not found") \
|
||
|
F(4006, GRPC_STATUS_ALREADY_EXISTS, "grpc status: already exists") \
|
||
|
F(4007, GRPC_STATUS_PERMISSION_DENIED, "grpc status: permission denied") \
|
||
|
F(4008, GRPC_STATUS_RESOURCE_EXHAUSTED, "grpc status: resource exhausted") \
|
||
|
F(4009, GRPC_STATUS_FAILED_PRECONDITION,"grpc status: failed precondition") \
|
||
|
F(4010, GRPC_STATUS_ABORTED, "grpc status: aborted") \
|
||
|
F(4011, GRPC_STATUS_OUT_OF_RANGE, "grpc status: out of range") \
|
||
|
F(4012, GRPC_STATUS_UNIMPLEMENTED, "grpc status: unimplemented") \
|
||
|
F(4013, GRPC_STATUS_INTERNAL, "grpc internal error") \
|
||
|
F(4014, GRPC_STATUS_UNAVAILABLE, "grpc service unavailable") \
|
||
|
F(4015, GRPC_STATUS_DATA_LOSS, "grpc status: data loss") \
|
||
|
|
||
|
#define FOREACH_ERR(F) \
|
||
|
FOREACH_ERR_COMMON(F) \
|
||
|
FOREACH_ERR_FUNC(F) \
|
||
|
FOREACH_ERR_GRPC(F) \
|
||
|
|
||
|
#undef ERR_OK // prevent conflict
|
||
|
enum {
|
||
|
#define F(errcode, name, errmsg) ERR_##name = errcode,
|
||
|
FOREACH_ERR(F)
|
||
|
#undef F
|
||
|
};
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
extern "C" {
|
||
|
#endif
|
||
|
|
||
|
// errcode => errmsg
|
||
|
HV_EXPORT const char* hv_strerror(int err);
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
} // extern "C"
|
||
|
#endif
|
||
|
|
||
|
#endif // HV_ERR_H_
|