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) }