Link Kit C-SDK
4.1.0
|
安全隧道能力连接的功能实现 更多...
#include <stdint.h>
类 | |
struct | aiot_tunnel_service_t |
本地服务信息 更多... | |
struct | aiot_tunnel_event_t |
tunnel内部事件 更多... | |
struct | aiot_tunnel_connect_param_t |
隧道建连需要的参数 更多... | |
类型定义 | |
typedef void(* | aiot_tunnel_event_handler_t) (void *handle, const aiot_tunnel_event_t *event, void *userdata) |
tunnel内部事件回调函数接口定义 更多... | |
函数 | |
void * | aiot_tunnel_init (void) |
创建tunnel管理模块实例, 并以默认值配置会话参数 更多... | |
int32_t | aiot_tunnel_setopt (void *handle, aiot_tunnel_option_t option, void *data) |
配置tunnel管理模块 更多... | |
int32_t | aiot_tunnel_deinit (void **handle) |
结束tunnel管理模块, 销毁实例并回收资源 更多... | |
void * | aiot_tunnel_start (void *handle) |
开始tunnel管理服务,作为后台线程开始运行,会一直阻塞,直至退出 更多... | |
int32_t | aiot_tunnel_stop (void *handle) |
关闭tunnel管理服务,作为线程开始运行 更多... | |
int32_t | aiot_tunnel_add (void *handle, char *tunnel_id, aiot_tunnel_connect_param_t *params) |
向隧道管理模块增加隧道,并建连 更多... | |
int32_t | aiot_tunnel_update (void *handle, char *tunnel_id, aiot_tunnel_connect_param_t *params) |
更新隧道建来呢信息 更多... | |
int32_t | aiot_tunnel_delete (void *handle, char *tunnel_id) |
从隧道管理模块删除隧道,并断连 更多... | |
安全隧道能力连接的功能实现
typedef void(* aiot_tunnel_event_handler_t) (void *handle, const aiot_tunnel_event_t *event, void *userdata) |
tunnel内部事件回调函数接口定义
当tunnel内部事件被触发时, 调用此函数. 如连接成功/断开连接/
[in] | handle | tunnel管理模块句柄 |
[in] | event | tunnel消息结构体, 存放内部事件 |
[in] | userdata | 用户上下文 |
enum aiot_tunnel_option_t |
枚举值 | |
---|---|
AIOT_TUNNELOPT_EVENT_HANDLER |
设置内部事件回调, 它在内部事件触发, 告知用户 数据类型: ( aiot_tunnel_event_handler_t ) |
AIOT_TUNNELOPT_USERDATA |
用户需要SDK暂存的上下文 这个上下文指针会在 AIOT_TUNNELOPT_EVENT_HANDLER 设置的回调被调用时, 由SDK传给用户 数据类型: (void *) |
AIOT_TUNNELOPT_NETWORK_CRED |
tunnel建联时, 网络使用的安全凭据 该配置项用于为底层网络配置aiot_sysdep_network_cred_t 安全凭据数据
数据类型: (aiot_sysdep_network_cred_t *) |
AIOT_TUNNELOPT_ADD_SERVICE |
新增本地可提供的远程服务 |
AIOT_TUNNELOPT_MAX |
void* aiot_tunnel_init | ( | void | ) |
创建tunnel管理模块实例, 并以默认值配置会话参数
非NULL | tunnel实例的句柄 |
NULL | 初始化失败, 一般是内存分配失败导致 |
int32_t aiot_tunnel_setopt | ( | void * | handle, |
aiot_tunnel_option_t | option, | ||
void * | data | ||
) |
配置tunnel管理模块
[in] | handle | tunnel管理模块句柄 |
[in] | option | 配置选项, 更多信息请参考aiot_tunnel_option_t |
[in] | data | 配置选项数据, 更多信息请参考aiot_tunnel_option_t |
<STATE_SUCCESS | 参数配置失败 |
>=STATE_SUCCESS | 参数配置成功 |
int32_t aiot_tunnel_deinit | ( | void ** | handle | ) |
结束tunnel管理模块, 销毁实例并回收资源
[in] | handle | 指向tunnel管理模块句柄的指针 |
<STATE_SUCCESS | 执行失败 |
>=STATE_SUCCESS | 执行成功 |
void* aiot_tunnel_start | ( | void * | handle | ) |
开始tunnel管理服务,作为后台线程开始运行,会一直阻塞,直至退出
[in] | handle | 指向tunnel管理模块句柄的指针 |
<STATE_SUCCESS | 执行失败, 更多信息请参考 STATE_TUNNEL_* 定义 |
>=STATE_SUCCESS | 执行成功 |
int32_t aiot_tunnel_stop | ( | void * | handle | ) |
关闭tunnel管理服务,作为线程开始运行
[in] | handle | 指向tunnel管理模块句柄的指针 |
<STATE_SUCCESS | 执行失败, 更多信息请参考 STATE_TUNNEL_* 定义 |
>=STATE_SUCCESS | 执行成功 |
int32_t aiot_tunnel_add | ( | void * | handle, |
char * | tunnel_id, | ||
aiot_tunnel_connect_param_t * | params | ||
) |
向隧道管理模块增加隧道,并建连
[in] | handle | 指向tunnel管理模块句柄的指针 |
[in] | tunnel_id | 隧道id |
[in] | params | 隧道的建连信息 |
<STATE_SUCCESS | 执行失败, 更多信息请参考 STATE_TUNNEL_* 定义 |
>=STATE_SUCCESS | 执行成功 |
int32_t aiot_tunnel_update | ( | void * | handle, |
char * | tunnel_id, | ||
aiot_tunnel_connect_param_t * | params | ||
) |
更新隧道建来呢信息
[in] | handle | 指向tunnel管理模块句柄的指针 |
[in] | tunnel_id | 隧道id |
[in] | params | 隧道的建连信息 |
当该隧道id已经存在,且在线时,会断连后使用新的建连信息建连 当该隧道id已经存在,且不在线时,会使用新的建连信息建连 当该隧道id不存在,会直接使用新的建连信息建连
<STATE_SUCCESS | 执行失败, 更多信息请参考 STATE_TUNNEL_* 定义 |
>=STATE_SUCCESS | 执行成功 |
int32_t aiot_tunnel_delete | ( | void * | handle, |
char * | tunnel_id | ||
) |
从隧道管理模块删除隧道,并断连
[in] | handle | 指向tunnel管理模块句柄的指针 |
[in] | tunnel_id | 隧道的信息 |
<STATE_SUCCESS | 执行失败, 更多信息请参考 STATE_TUNNEL_* 定义 |
>=STATE_SUCCESS | 执行成功 |