mirror of
https://github.com/shadow1ng/fscan.git
synced 2026-09-22 03:10:42 +08:00
37 lines
707 B
Go
37 lines
707 B
Go
package common
|
|
|
|
import "sync"
|
|
|
|
// ResultCallback 扫描结果回调函数类型
|
|
type ResultCallback func(result interface{})
|
|
|
|
var (
|
|
resultCallback ResultCallback
|
|
callbackMu sync.RWMutex
|
|
)
|
|
|
|
// SetResultCallback 设置结果回调函数(Web模式使用)
|
|
func SetResultCallback(cb ResultCallback) {
|
|
callbackMu.Lock()
|
|
defer callbackMu.Unlock()
|
|
resultCallback = cb
|
|
}
|
|
|
|
// NotifyResult 通知结果给回调函数
|
|
func NotifyResult(result interface{}) {
|
|
callbackMu.RLock()
|
|
cb := resultCallback
|
|
callbackMu.RUnlock()
|
|
|
|
if cb != nil {
|
|
cb(result)
|
|
}
|
|
}
|
|
|
|
// ClearResultCallback 清除结果回调函数
|
|
func ClearResultCallback() {
|
|
callbackMu.Lock()
|
|
defer callbackMu.Unlock()
|
|
resultCallback = nil
|
|
}
|