修复lsdb中信号报错,信号的声明需要在初始化语句的最前面

This commit is contained in:
free will committed 2022-06-30 16:46:14 +08:00
1 parent 96c60a5cae
commit 261cbd72ec
1 file changed
+7 -5
+7 -5
View File
@@ -68,6 +68,9 @@ type Lsdb struct {
func (l *Lsdb) Init(mc *common.MlsrConfig, ms *MlsrScheduler,
_face *logicface.LogicFace) {
// 信号初始化
l.OnLsdbModified = utils.NewSignal()
// 配置项
l.mlsrConfig = mc
// 调度器
@@ -106,9 +109,6 @@ func (l *Lsdb) Init(mc *common.MlsrConfig, ms *MlsrScheduler,
// 构建并安装自己的名称LSA
l.BuildAndInstallOwnNameLsa()
// 信号初始化
l.OnLsdbModified = utils.NewSignal()
}
//
@@ -311,7 +311,9 @@ func (l *Lsdb) InstallLsa(lsa lsa.ILsa) {
return
}
// 2. 触发LSDB安装LSA的动作信号 OnLsdbModified(lsa, LsdbUpdate::INSTALLED, {}, {});
l.OnLsdbModified.Emit(lsa, INSTALLED)
if !l.OnLsdbModified.IsEmpty() {
l.OnLsdbModified.Emit(lsa, INSTALLED)
}
// 3. 设置LSA超期时间事件
l.ScheduleLsaExpiration(lsa, timeToExpire)
} else if lsaInDb.GetSeqNo() < lsa.GetSeqNo() {
@@ -326,7 +328,7 @@ func (l *Lsdb) InstallLsa(lsa lsa.ILsa) {
// 2. 触发LSDB更新LSA的动作信号 OnLsdbModified(lsa, LsdbUpdate::UPDATED, namesToAdd, namesToRemove);
// todo 实现该方法:对比两个lsa,将其不同的部分取出来
updated, namesToAdd, namesToRemove := l.compareTwoLsa(lsaInDb, lsa)
if updated {
if updated && !l.OnLsdbModified.IsEmpty() {
l.OnLsdbModified.Emit(lsa, UPDATED, namesToAdd, namesToRemove)
}
// 3. 设置LSA超期时间事件