XFusion API v1.3.0
|
ping 功能实现。 更多...
结构体 | |
struct | _xf_ping_cfg_t |
ping 配置类型。 更多... | |
struct | _xf_ping_cfg_update_flags_t |
ping 更新配置标志。 更多... | |
struct | _xf_ping_ctx_t |
ping 会话的上下文。 更多... | |
宏定义 | |
#define | XF_PING_THREAD_NAME "xf_ping" |
#define | XF_PING_DEFAULT_CONFIG() |
默认 ping 配置 | |
类型定义 | |
typedef struct _xf_ping_ctx_t * | xf_ping_t |
ping 会话句柄。 | |
typedef struct _xf_ping_cfg_t | xf_ping_cfg_t |
ping 配置类型。 | |
typedef struct _xf_ping_cfg_update_flags_t | xf_ping_cfg_update_flags_t |
ping 更新配置标志。 | |
typedef enum _xf_ping_event_code_t | xf_ping_event_code_t |
Ping 事件声明。 | |
typedef int32_t | xf_ping_event_id_t |
ping 事件 id。见 xf_ping_event_code_t. | |
typedef void(* | xf_ping_cb_t) (xf_ping_event_id_t event_id, xf_ping_t hdl, void *user_args) |
ping 回调函数原型。 | |
typedef struct _xf_ping_ctx_t | xf_ping_ctx_t |
ping 会话的上下文。 | |
枚举 | |
enum | _xf_ping_event_code_t { XF_PING_EVENT_SUCC = 0x00 , XF_PING_EVENT_TIMEOUT , XF_PING_EVENT_END , XF_PING_EVENT_DELETE , XF_PING_EVENT_MAX } |
Ping 事件声明。 更多... | |
函数 | |
xf_err_t | xf_ping_new_session (const xf_ping_cfg_t *p_cfg, xf_ping_cb_t cb_func, void *user_args, xf_ping_t *hdl_out) |
创建 ping 会话。 | |
xf_err_t | xf_ping_delete_session (xf_ping_t hdl) |
删除 ping 会话。 | |
xf_err_t | xf_ping_start (xf_ping_t hdl) |
启动 ping 会话。 | |
xf_err_t | xf_ping_restart (xf_ping_t hdl, const xf_ping_cfg_t *p_cfg, xf_ping_cfg_update_flags_t *p_flags) |
重新启动 ping 会话。 | |
bool | xf_ping_is_running (xf_ping_t hdl) |
检查 ping 是否正在运行。 | |
xf_err_t | xf_ping_stop (xf_ping_t hdl) |
停止 ping 会话。 | |
ping 功能实现。
#define XF_PING_DEFAULT_CONFIG | ( | ) |
默认 ping 配置
typedef struct _xf_ping_ctx_t* xf_ping_t |
typedef struct _xf_ping_cfg_t xf_ping_cfg_t |
ping 配置类型。
typedef struct _xf_ping_cfg_update_flags_t xf_ping_cfg_update_flags_t |
ping 更新配置标志。
typedef enum _xf_ping_event_code_t xf_ping_event_code_t |
Ping 事件声明。
<xf_ping_cfg_t>.auto_delete_flag = true
. 将会在运行一次结束后,内部 task 自动删除 ping 会话。 此时注意通过 XF_PING_EVENT_DELETE
事件将 xf_ping_new_session()
传出的句柄 置为空指针,防止野指针。 设置了 <xf_ping_cfg_t>.auto_delete_flag = true
后,不需要再调用 xf_ping_delete_session()
。<xf_ping_cfg_t>.auto_delete_flag = false
, 当一个 ping 会话不再需要后,请通过 xf_ping_delete_session()
删除会话, 并将外部保存的句柄置为 NULL。 typedef int32_t xf_ping_event_id_t |
ping 事件 id。见 xf_ping_event_code_t.
typedef void(* xf_ping_cb_t) (xf_ping_event_id_t event_id, xf_ping_t hdl, void *user_args) |
ping 回调函数原型。
event_id | 事件 id. 根据事件类型, 见 xf_ping_event_code_t. |
hdl | 事件数据. 需要根据事件 id 强转为对应的类型. |
user_args | 用户数据. xf_ping_new_session() 时传入. |
typedef struct _xf_ping_ctx_t xf_ping_ctx_t |
ping 会话的上下文。
public:
部分是在回调中可读的, 用户 禁止 修改其中任何内容。 Ping 事件声明。
<xf_ping_cfg_t>.auto_delete_flag = true
. 将会在运行一次结束后,内部 task 自动删除 ping 会话。 此时注意通过 XF_PING_EVENT_DELETE
事件将 xf_ping_new_session()
传出的句柄 置为空指针,防止野指针。 设置了 <xf_ping_cfg_t>.auto_delete_flag = true
后,不需要再调用 xf_ping_delete_session()
。<xf_ping_cfg_t>.auto_delete_flag = false
, 当一个 ping 会话不再需要后,请通过 xf_ping_delete_session()
删除会话, 并将外部保存的句柄置为 NULL。 枚举值 | |
---|---|
XF_PING_EVENT_SUCC | 收到 ICMP 应答数据包。 |
XF_PING_EVENT_TIMEOUT | ICMP 应答数据包超时。 |
XF_PING_EVENT_END | ping 会话完成。 |
XF_PING_EVENT_DELETE | ping 会话已删除。 |
XF_PING_EVENT_MAX | ping 事件 ID 最大值,无效 ID。 |
xf_err_t xf_ping_new_session | ( | const xf_ping_cfg_t * | p_cfg, |
xf_ping_cb_t | cb_func, | ||
void * | user_args, | ||
xf_ping_t * | hdl_out | ||
) |
xf_err_t xf_ping_restart | ( | xf_ping_t | hdl, |
const xf_ping_cfg_t * | p_cfg, | ||
xf_ping_cfg_update_flags_t * | p_flags | ||
) |
bool xf_ping_is_running | ( | xf_ping_t | hdl | ) |