package util import ( "fmt" "flag" "basic.com/pubsub/protomsg.git" "basic.com/dbapi.git" "github.com/gogo/protobuf/proto" "basic.com/valib/gopherdiscovery.git" "os" ) /************************* * 1. store all struct data * 2. define function for get difference data type * 3. recive data from sqlite process. and call conpos function. ***********************/ var camval dbapi.CameraApi var taskapi dbapi.TaskApi var sdkapi dbapi.SdkApi var IsInit bool var CameraIds []protomsg.Camera var CameraTasks []protomsg.CameraAndTaskInfo //var TaskSdks []protomsg.TaskSdkInfo var TaskSdks []protomsg.TaskSdkRun var Sdklist []string var Sdkinfos []protomsg.Sdk var urlServer = flag.String("urlServer","tcp://127.0.0.1:40007","heartbeat address of url server") var urlPubSub = flag.String("urlPubsub","tcp://127.0.0.1:5007", "heartbeat pubsub address of url server") var dbip = flag.String("dbip","127.0.0.1","address of database ip") var dbport = flag.Int("dbport", 8001, "port of database port") var Sdkflag = make(chan bool) var TaskSdkflag = make(chan bool) var Cameraflag = make(chan bool) var newsdkmsg = &protomsg.DbChangeMessage{} func processinit(initchan chan bool) { CameraIds = camval.FindAll() fmt.Println("==============camera camera with task ================") CameraTasks = camval.FindAllCameraAndTask() fmt.Println(CameraTasks) TaskSdks = taskapi.FindAllTaskSdkRun() Sdklist = sdkapi.GetAllSdkIds() Sdkinfos = sdkapi.FindAll("") initchan <- true } func Getdata(opt []byte) { if err := proto.Unmarshal(opt, newsdkmsg); err != nil { fmt.Println("publichshMessage ", err) return } switch newsdkmsg.Table { case protomsg.TableChanged_T_Camera: fmt.Println("update camera") os.Exit(1) CameraIds = camval.FindAll() Cameraflag <- true case protomsg.TableChanged_T_CameraTask: fmt.Println("update cameratask") os.Exit(1) CameraTasks = camval.FindAllCameraAndTask() fmt.Println("update cameratask finished!") case protomsg.TableChanged_T_TaskSdk: fmt.Println("update tasksdk") os.Exit(1) TaskSdks = taskapi.FindAllTaskSdkRun() TaskSdkflag <- true case protomsg.TableChanged_T_Sdk: fmt.Println("update sdk") os.Exit(1) Sdklist = sdkapi.GetAllSdkIds() Sdkinfos = sdkapi.FindAll("") Sdkflag <- true fmt.Println("update finished!") default: fmt.Println("unknow type operation") os.Exit(1) } fmt.Println(newsdkmsg) } func Init(initchan chan bool) { dbapi.Init(*dbip, *dbport) clientOne, _ := gopherdiscovery.ClientWithSub(*urlServer, *urlPubSub, "ip:local") recvinit := clientOne.HeartBeatMsg() fmt.Println(<-recvinit) processinit(initchan) peers, _ := clientOne.Peers() for x := range peers { Getdata(x) os.Exit(1) } }