package discovery
|
|
import (
|
"basic.com/pubsub/cache.git/shardmap"
|
"basic.com/pubsub/protomsg.git"
|
"basic.com/valib/logger.git"
|
"errors"
|
"github.com/gogo/protobuf/proto"
|
"sdkCompare/config"
|
"sdkCompare/util"
|
)
|
|
const (
|
SERVER_KEY = "SERVERINFO"
|
)
|
|
var cMap *shardmap.ShardMap
|
var withBus bool
|
|
func SetBus(wb bool) error {
|
withBus = wb
|
if !withBus {
|
serverIp, _, e := util.GetLocalIP(config.Server.NetworkAdapter)
|
if e != nil {
|
return e
|
}
|
cMap = shardmap.New(uint8(32))
|
cMap.Set(SERVER_KEY, protomsg.LocalConfig{
|
AlarmIp: serverIp,
|
AlarmPort: 9200,
|
})
|
}
|
return nil
|
}
|
|
func initCacheData(initChan chan bool) {
|
|
initChan <- true
|
}
|
|
var newUpdateMsg = &protomsg.DbChangeMessage{}
|
|
func updateData(b []byte) {
|
if err := proto.Unmarshal(b, newUpdateMsg); err != nil {
|
logger.Debug("dbChangeMsg unmarshal err:", err)
|
return
|
}
|
switch newUpdateMsg.Table {
|
case protomsg.TableChanged_T_Server:
|
default:
|
logger.Debug("other updateData operation")
|
|
}
|
}
|
|
func GetServerInfo() (conf protomsg.LocalConfig, err error) {
|
config, b := cMap.Get(SERVER_KEY)
|
if b {
|
return config.(protomsg.LocalConfig), nil
|
} else {
|
return conf, errors.New("conf not found")
|
}
|
}
|
|
// 判断一个数组是否包含另一个数组的所有元素
|
func arrayContains(list []string, arr []string) bool {
|
c := 0
|
if arr == nil || list == nil {
|
return false
|
}
|
for _, s := range arr {
|
for _, t := range list {
|
if s == t {
|
c++
|
break
|
}
|
}
|
}
|
return c == len(arr)
|
}
|