长安链源码分析之网络模块 net-liquid(7)
作者:李
- 2022-10-19 湖南
本文字数:997 字
阅读完需:约 1 分钟
本文已参与「开源摘星计划」,欢迎正在阅读的你加入。活动链接:https://github.com/weopenprojects/WeOpen-Star
notiffee 属于 Host 包下
定义了一些通知回调的函数,
然后定义了一个实现结构体,实现结构体里面定义了函数,用来提供给使用方设置进去,支持对应的回调函数
// Notifiee contains functions for host notifying call back.
//Notifiee 包含了host通知的回调接口
type Notifiee interface {
// PeerConnected will be invoked when a new connection established.
//当节点建立连接时触发
PeerConnected(pid peer.ID)
// PeerDisconnected will be invoked when a connection disconnected.
//当节点失去连接时触发
PeerDisconnected(pid peer.ID)
// PeerProtocolSupported will be invoked when a peer support a new protocol.
//当节点支持一个协议的时候触发
PeerProtocolSupported(protocolID protocol.ID, pid peer.ID)
// PeerProtocolUnsupported will be invoked when a peer cancel supporting a new protocol.
//当节点注销一个协议的时候触发
PeerProtocolUnsupported(protocolID protocol.ID, pid peer.ID)
}
var _ Notifiee = (*NotifieeBundle)(nil)
// NotifieeBundle is a bundle implementation of Notifee interface.
//NotifieeBundle 是Notifee 接口的实现
type NotifieeBundle struct {
PeerConnectedFunc func(peer.ID)
PeerDisconnectedFunc func(peer.ID)
PeerProtocolSupportedFunc func(protocolID protocol.ID, pid peer.ID)
PeerProtocolUnsupportedFunc func(protocolID protocol.ID, pid peer.ID)
}
func (n *NotifieeBundle) PeerConnected(pid peer.ID) {
if n.PeerConnectedFunc != nil {
n.PeerConnectedFunc(pid)
}
}
func (n *NotifieeBundle) PeerDisconnected(pid peer.ID) {
if n.PeerDisconnectedFunc != nil {
n.PeerDisconnectedFunc(pid)
}
}
func (n *NotifieeBundle) PeerProtocolSupported(protocolID protocol.ID, pid peer.ID) {
if n.PeerProtocolSupportedFunc != nil {
n.PeerProtocolSupportedFunc(protocolID, pid)
}
}
func (n *NotifieeBundle) PeerProtocolUnsupported(protocolID protocol.ID, pid peer.ID) {
if n.PeerProtocolUnsupportedFunc != nil {
n.PeerProtocolUnsupportedFunc(protocolID, pid)
}
}
复制代码
划线
评论
复制
发布于: 刚刚阅读数: 4
李
关注
还未添加个人签名 2018-05-04 加入
还未添加个人简介
评论