#pragma once

/**
 * @brief SDK 常用错误码
 */
enum USER_ERRNO {
    ERR_SUCCESS = 0,                    ///< 成功
    ERR_INPUT_PARAMS,                   ///< 输入参数错误
    ERR_UN_SUPPORT,                     ///< 不支持的操作
    ERR_CALL_SHELL,                     ///< 调用Shell命令失败
    ERR_ITEM_EXISTS,                    ///< 该内容已经存在
    ERR_ITEM_UNEXISTS,                  ///< 该内容不存在
    ERR_SYS_INIT,                       ///< 系统中断
    ERR_SYS_CALL,                       ///< 系统调用
    ERR_LOAD_LIBRARY,                   ///< 加载系统库失败
    ERR_MAP_LIBRARY,                    ///< 加载系统库接口失败
    ERR_SYS_TIMEOUT,                    ///< 系统超时
    ERR_SYSTEM_UNINITIALIZE,            ///< 系统未初始化
    ERR_CREATE_FILE,                    ///< 创建文件/目录失败
    ERR_OPEN_FILE,                      ///< 打开文件失败
    ERR_READ_FILE,                      ///< 读取文件失败
    ERR_WRITE_FILE,                     ///< 写入文件失败
    ERR_FILE_NOT_EXISTS,                ///< 文件不存在
    ERR_FILE_LOCKED,                    ///< 文件被锁定
    ERR_GET_FILE_SIZE,                  ///< 获取文件大小失败
    ERR_FIND_FILE,                      ///< 查找文件失败
    ERR_COPY_FILE,                      ///< 复制文件失败
    ERR_OPEN_SCM,                       ///< 打开服务管理器设备失败
    ERR_OPEN_SERVICE,                   ///< 打开服务失败
    ERR_CREATE_SERVICE,                 ///< 创建服务失败
    ERR_START_SERVICE,                  ///< 启动服务失败
    ERR_STOP_SERVICE,                   ///< 停止服务失败
    ERR_DELETE_SERVICE,                 ///< 删除服务失败
    ERR_CONFIG_SERVICE,                 ///< 修改服务配置失败
    ERR_GET_SERVICESSTATUS,             ///< 获取服务状态失败
    ERR_MALLOC_MEMORY,                  ///< 分配内存失败
    ERR_MMAP_MEMORY,                    ///< 共享内存失败
    ERR_MEMORY_STR,                     ///< 字符串操作失败
    ERR_CREATE_PROCESS,                 ///< 创建进程失败
    ERR_PROCESS_RETURN,                 ///< 进程调用返回失败
    ERR_CREATE_THREAD,                  ///< 创建线程失败
    ERR_CREATE_TIMER,                   ///< 创建定时器失败
    ERR_DELETE_TIMER,                   ///< 销毁定时器失败
    ERR_SOCKET_CREATE,                  ///< 创建 SOCKET 失败
    ERR_SOCKET_BIND,                    ///< 绑定 SOCKET 端口失败
    ERR_SOCKET_CONNECT,                 ///< 连接 TCP SOCKET 服务器失败
    ERR_SOCKET_LISTEN,                  ///< TCP SOCKET 服务监听失败
    ERR_SOCKET_BIND_PORT,               ///< 绑定端口失败
    ERR_SOCKET_SET_OPT,                 ///< 设置 SOCKET 参数失败
    ERR_SOCKET_GET_OPT,                 ///< 读取 SOCKET 参数失败
    ERR_BCRYPT_OPEN = 100,              ///< 创建加密算法失败
    ERR_BCRYPT_GETPROPERTY,             ///< 获取加密算法属性失败
    ERR_BCRYPT_CREATEHASH,              ///< 创建 Hash 算法失败
    ERR_BCRYPT_HASHDATA,                ///< 计算 Hash 数据失败
    ERR_BCRYPT_FINISHHASH,              ///< 计算 Hash 结果失败
    ERR_NET_UNCONNECT = 200,            ///< 网络未连接
    ERR_NET_CATEGORY_MODE,              ///< 网络工作模式
    ERR_NET_INTELNEL_ICS,               ///< 共享 Intelnet 网络 ICS 共享失败
    ERR_NET_WIREGUARD_ICS,              ///< 共享 WireGuard 网络 ICS 共享失败
    ERR_GET_IPFOWARDTBL   = 300,        ///< 获取系统 IP 转发表失败
    ERR_CREATE_COMMOBJECT = 400,        ///< 创建 COM 对象失败
    ERR_CALL_COMMOBJECT,                ///< 调用 COM 对象失败
    ERR_JSON_CREATE = 500,              ///< 创建 JSON 对象失败
    ERR_JSON_DECODE,                    ///< 从 JSON 反序列化对象失败
    ERR_HTTP_SERVER_RSP = 600,  ///< HTTP 服务端返回错误
    ERR_HTTP_POST_DATA,         ///< 发送 POST 请求失败
    ERR_NET_ADD_ROUTE,          ///< 添加路由失败
    ERR_NET_REMOVE_ROUTE,       ///< 删除路由失败
};