herr.h 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. #ifndef HW_ERR_H_
  2. #define HW_ERR_H_
  3. #include <errno.h>
  4. // F(macro, errcode, errmsg)
  5. #define FOREACH_ERR_COMMON(F) \
  6. F(ERR_OK, 0, "ok") \
  7. F(ERR_UNKNOWN, 1000, "unknown error") \
  8. F(ERR_NULL_PARAM, 1001, "null param") \
  9. F(ERR_NULL_POINTER, 1002, "null pointer") \
  10. F(ERR_NULL_DATA, 1003, "null data") \
  11. \
  12. F(ERR_INVALID_PARAM, 1010, "invalid param") \
  13. F(ERR_INVALID_HANDLE, 1011, "invalid handle") \
  14. F(ERR_INVALID_JSON, 1012, "invalid json") \
  15. F(ERR_INVALID_XML, 1013, "invalid xml") \
  16. F(ERR_INVALID_FMT, 1014, "invalid format") \
  17. \
  18. F(ERR_MISMATCH, 1020, "mismatch") \
  19. F(ERR_REQUEST, 1021, "error request") \
  20. F(ERR_RESPONSE, 1022, "error response") \
  21. F(ERR_PARSE, 1023, "parse failed") \
  22. \
  23. F(ERR_MALLOC, 1030, "malloc failed") \
  24. F(ERR_FREE, 1031, "free failed") \
  25. \
  26. F(ERR_TASK_TIMEOUT, 1100, "task timeout") \
  27. F(ERR_TASK_DEQUE_FULL, 1101, "task deque full") \
  28. F(ERR_TASK_NOT_CREATE, 1102, "task not create") \
  29. \
  30. F(ERR_OPEN_FILE, 1200, "open file failed") \
  31. F(ERR_SAVE_FILE, 1201, "save file failed") \
  32. \
  33. F(ERR_OUT_OF_RANGE, 1300, "out of range") \
  34. F(ERR_OVER_LIMIT, 1301, "over limit") \
  35. \
  36. F(ERR_BUSY, 1400, "busy")
  37. #define FOREACH_ERR_NETWORK(F) \
  38. F(ERR_ADAPTER_NOT_FOUND, 2001, "adapter not found") \
  39. F(ERR_SERVER_NOT_FOUND, 2002, "server not found") \
  40. F(ERR_SERVER_UNREACHEABLE, 2003, "server unreacheable") \
  41. F(ERR_SERVER_DISCONNECT, 2004, "server disconnect") \
  42. F(ERR_CONNECT_TIMEOUT, 2005, "connect timeout") \
  43. F(ERR_INVALID_PACKAGE, 2006, "invalid package") \
  44. F(ERR_SERVER_NOT_STARTUP, 2007, "server not startup") \
  45. F(ERR_CLIENT_DISCONNECT, 2008, "client disconnect")
  46. #define FOREACH_ERR_SERVICE(F) \
  47. F(ERR_RESOURCE_NOT_FOUND, 3000, "resource not found") \
  48. F(ERR_GROUP_NOT_FOUND, 3001, "group not found") \
  49. F(ERR_PERSON_NOT_FOUND, 3002, "person not found") \
  50. F(ERR_FACE_NOT_FOUND, 3003, "face not found") \
  51. F(ERR_DEVICE_NOT_FOUND, 3004, "device not found") \
  52. F(ERR_DEVICE_DISABLE, 3005, "device disable")
  53. #define FOREACH_ERR_GRPC(F) \
  54. F(ERR_GRPC_FIRST, 4000, "grpc error") \
  55. F(ERR_GRPC_STATUS_CANCELLED,4001, "grpc status cancelled") \
  56. F(ERR_GRPC_STATUS_UNKNOWN, 4002, "grpc status unknown") \
  57. F(ERR_GRPC_STATUS_INVALID_ARGUMENT, 4003, "grpc status invalid argument") \
  58. F(ERR_GRPC_STATUS_DEADLINE, 4004, "grpc status deadline") \
  59. F(ERR_GRPC_STATUS_NOT_FOUND, 4005, "grpc status not found") \
  60. F(ERR_GRPC_STATUS_ALREADY_EXISTS, 4006, "grpc status already exists") \
  61. F(ERR_GRPC_STATUS_PERMISSION_DENIED, 4007, "grpc status permission denied") \
  62. F(ERR_GRPC_STATUS_RESOURCE_EXHAUSTED, 4008, "grpc status resource exhausted") \
  63. F(ERR_GRPC_STATUS_FAILED_PRECONDITION, 4009, "grpc status failed precondition") \
  64. F(ERR_GRPC_STATUS_ABORTED, 4010, "grpc status aborted") \
  65. F(ERR_GRPC_STATUS_OUT_OF_RANGE, 4011, "grpc status out of range") \
  66. F(ERR_GRPC_STATUS_UNIMPLEMENTED, 4012, "grpc status unimplemented") \
  67. F(ERR_GRPC_STATUS_INTERNAL, 4013, "grpc status internal") \
  68. F(ERR_GRPC_STATUS_UNAVAILABLE, 4014, "grpc service unavailable") \
  69. F(ERR_GRPC_STATUS_DATA_LOSS, 4015, "grpc status data loss")
  70. #define FOREACH_ERR(F) \
  71. FOREACH_ERR_COMMON(F) \
  72. FOREACH_ERR_NETWORK(F) \
  73. FOREACH_ERR_SERVICE(F) \
  74. FOREACH_ERR_GRPC(F)
  75. enum H_ERR {
  76. #define ENUM_ERR(macro, errcode, _) macro = errcode,
  77. FOREACH_ERR(ENUM_ERR)
  78. #undef ENUM_ERR
  79. ERR_LAST
  80. };
  81. #ifdef __cplusplus
  82. extern "C" {
  83. #endif
  84. // errcode => errmsg
  85. const char* get_errmsg(int err);
  86. #ifdef __cplusplus
  87. } // extern "C"
  88. #endif
  89. #endif // HW_ERR_H_