nng协议nni_sp_tran_sys_init();

        协议中 nni_sp_tran_sys_init();的初始化比较简单,主要对传输层的结构体进行赋值,并挂在全局链表 sp_tran_list上。 为后面的上层的初始化做准备。其中一些函数会根据 解析的

url->u_scheme [ipc] 在全局链表sp_tran_list查找对应的传输层结构体,实现初始化操作。 这里基本就是赋值和添加到链表 nni_list_append(&sp_tran_list, tran);  添加完成就完成了初始化动作。是比较简单的一块,不需要特殊关注。


nni_sp_tran_sys_init(void);
初始化函数中依次调用下面的函数,对传输层结构体进行初始化,并添加到全局链表

void
nni_sp_tran_sys_init(void)
{
#ifdef NNG_TRANSPORT_INPROC
	nni_sp_inproc_register();
#endif
#ifdef NNG_TRANSPORT_IPC
	nni_sp_ipc_register();
#endif
#ifdef NNG_TRANSPORT_TCP
	nni_sp_tcp_register();
#endif
#ifdef NNG_TRANSPORT_TLS
	nni_sp_tls_register();
#endif
#ifdef NNG_TRANSPORT_WS
	nni_sp_ws_register();
#endif
#ifdef NNG_TRANSPORT_WSS
	nni_sp_wss_register();
#endif
#ifdef NNG_TRANSPORT_ZEROTIER
	nni_sp_zt_register();
#endif
#ifdef NNG_TRANSPORT_FDC
	nni_sp_sfd_register();
#endif
}
void
nni_sp_tran_register(nni_sp_tran *tran)
{
	nni_rwlock_wrlock(&sp_tran_lk);
	if (!nni_list_node_active(&tran->tran_link)) {
		tran->tran_init();
		nni_list_append(&sp_tran_list, tran);
		nng_log_info(
		    "NNG-TRAN", "Registered transport: %s", tran->tran_scheme);
	}
	nni_rwlock_unlock(&sp_tran_lk);
}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值