#pragma once #include #include namespace std _GLIBCXX_VISIBILITY(default) { class zexception : public exception { string m_ecodeinfo = ""; int32_t m_ecode = 0; public: /** Takes a character string describing the error. */ explicit zexception(int32_t ecode, const string& __arg) { m_ecodeinfo = __arg; m_ecode = ecode; } const char* what() const noexcept override { return m_ecodeinfo.c_str(); } int32_t ecode() const noexcept { return m_ecode; } }; typedef enum { ke_ok = 10000 + 0, ke_error = 10000 + 1, ke_channel_is_close = 10000 + 2, ke_invalid_param = 10000 + 3, ke_invalid_packet_format = 10000 + 4, ke_overtime = 10000 + 5, ke_parse_config_file_fail = 10000 + 6, } zecode_t; static inline const char* zecode2str(zecode_t ecode) { switch (ecode) { case ke_ok: return "success"; case ke_channel_is_close: return "channel_is_close"; case ke_invalid_param: return "invalid_param"; case ke_invalid_packet_format: return "invalid_packet_format"; case ke_overtime: return "overtime"; case ke_parse_config_file_fail: return "parse_config_file_fail"; default: return "unkown error"; } } } // namespace std _GLIBCXX_VISIBILITY(default)