From aaaea09c0ec71518310a753d120ec2c26f7f4038 Mon Sep 17 00:00:00 2001
From: panlei <2799247126@qq.com>
Date: 星期四, 22 八月 2019 15:50:30 +0800
Subject: [PATCH] read soname from register

---
 algorithm/middleware/middleware.go |   23 ++++++++++++++---------
 go.sum                             |    6 ++++++
 cache/cache.go                     |   20 ++++++++++++++++++++
 go.mod                             |    4 ++--
 4 files changed, 42 insertions(+), 11 deletions(-)

diff --git a/algorithm/middleware/middleware.go b/algorithm/middleware/middleware.go
index e0c31e5..5316a62 100644
--- a/algorithm/middleware/middleware.go
+++ b/algorithm/middleware/middleware.go
@@ -212,16 +212,21 @@
 
 func CallSo(sdkId string,rule *protomsg.Rule, am *structure.AreaMap) structure.LittleRuleResult{
 	// 鏍规嵁sdkId鏌ュ嚭鍏跺搴旂殑sdk鐨剆oName锛岃皟鐢ㄧ浉搴攕o鐨凟ntrance鏂规硶
-	var soName = ""
-	if sdkId == "812b674b-2375-4589-919a-5c1c3278a97e" {
-		soName = "face.so"
-	} else if sdkId == "812b674b-2375-4589-919a-5c1c3278a975"{
-		soName = "intrusion.so"
-	} else if sdkId == "812b674b-2375-4589-919a-5c1c3278a976" {
-		soName = "personUnsual.so"
-	} else if sdkId == "812b674b-2375-4589-919a-5c1c3278a972" {
-		soName = "faceCompare.so"
+	//var soName = ""
+	//if sdkId == "812b674b-2375-4589-919a-5c1c3278a97e" {
+	//	soName = "face.so"
+	//} else if sdkId == "812b674b-2375-4589-919a-5c1c3278a975"{
+	//	soName = "intrusion.so"
+	//} else if sdkId == "812b674b-2375-4589-919a-5c1c3278a976" {
+	//	soName = "personUnsual.so"
+	//} else if sdkId == "812b674b-2375-4589-919a-5c1c3278a972" {
+	//	soName = "faceCompare.so"
+	//}
+	soInfo,errr := cache.GetSoInfoById(sdkId)
+	if errr != nil {
+		panic("娌¤鍒版敞鍐岃〃")
 	}
+	soName := soInfo.SoName
 	p,err :=  plugin.Open("./algorithm/"+soName)
 	if err != nil {
 		panic(err)
diff --git a/cache/cache.go b/cache/cache.go
index a50f676..4827c70 100644
--- a/cache/cache.go
+++ b/cache/cache.go
@@ -18,6 +18,7 @@
 	PREFIX_RULE = "RULE_"
 	SERVER_KEY = "SERVERINFO"
 	PREFIX_SDK = "SDK_"
+	PREFIX_SO = "SO"
 )
 
 var cMap *shardmap.ShardMap
@@ -53,6 +54,8 @@
 	initServerInfo()//鍒濆鍖栨湇鍔″櫒閰嶇疆淇℃伅
 
 	initSdks() //鍒濆鍖杝dk鍒楄〃淇℃伅
+
+	initSoData()
 
 	initChan <- true
 }
@@ -202,4 +205,21 @@
 	} else {
 		return sdk,errors.New("sdk not found")
 	}
+}
+
+func initSoData() {
+	var api dbapi.SoApi
+	soinfos := api.FindAll()
+	for _,soinfo :=range soinfos {
+		cMap.Set(PREFIX_SO+soinfo.SdkId,soinfo)
+	}
+}
+
+func GetSoInfoById(sdkId string) (sdk protomsg.SoInfo,err error){
+	obj,b :=cMap.Get(PREFIX_SO + sdkId)
+	if b {
+		return obj.(protomsg.SoInfo),nil
+	} else {
+		return sdk,errors.New("sdk not found")
+	}
 }
\ No newline at end of file
diff --git a/go.mod b/go.mod
index 7e55bd2..4c9cf22 100644
--- a/go.mod
+++ b/go.mod
@@ -3,9 +3,9 @@
 go 1.12
 
 require (
-	basic.com/dbapi.git v0.0.0-20190724082851-b6ae90344405
+	basic.com/dbapi.git v0.0.0-20190822035835-8e0e9514983b
 	basic.com/pubsub/cache.git v0.0.0-20190718093725-6a413e1d7d48
-	basic.com/pubsub/protomsg.git v0.0.0-20190801122504-ad6c105f7a2b
+	basic.com/pubsub/protomsg.git v0.0.0-20190822060153-dc8ca60fc531
 	basic.com/pubsub/sdkcompare.git v0.0.0-20190715013640-f536a4647d00
 	basic.com/valib/deliver.git v0.0.0-20190531095353-25d8c3b20051
 	basic.com/valib/gopherdiscovery.git v0.0.0-20190605034340-15d89d8b4e28
diff --git a/go.sum b/go.sum
index e5cf3ce..39efd28 100644
--- a/go.sum
+++ b/go.sum
@@ -2,6 +2,8 @@
 basic.com/dbapi.git v0.0.0-20190701055817-73bca225181f/go.mod h1:eDXPnxaz6jZPDvBSk7ya7oSASWPCuUEgRTJCjsfKt/Q=
 basic.com/dbapi.git v0.0.0-20190724082851-b6ae90344405 h1:BJzdtGipKxQAaptrwUNOVQZ3Qx4jbeAf72wkqBmm5vE=
 basic.com/dbapi.git v0.0.0-20190724082851-b6ae90344405/go.mod h1:eDXPnxaz6jZPDvBSk7ya7oSASWPCuUEgRTJCjsfKt/Q=
+basic.com/dbapi.git v0.0.0-20190822035835-8e0e9514983b h1:rgPZYF2rIPESZo6zKWgRnP3nzslEY3ZMeWjr0CVIL2g=
+basic.com/dbapi.git v0.0.0-20190822035835-8e0e9514983b/go.mod h1:eDXPnxaz6jZPDvBSk7ya7oSASWPCuUEgRTJCjsfKt/Q=
 basic.com/pubsub/cache.git v0.0.0-20190712095028-e73efb4afc3b h1:UAasACFqEYUBCuZkkdxYVc1QmSyB7McvNHS36QxDJp4=
 basic.com/pubsub/cache.git v0.0.0-20190712095028-e73efb4afc3b/go.mod h1:gHLJZz2ee1cGL0X0ae69fs56bAxkDgEQwDhhXZJNUcY=
 basic.com/pubsub/cache.git v0.0.0-20190718024458-be52360c4814 h1:KoSik/aiJNDt3d+qRKExLW4pNHZ7vU1wXHhWXxZi4qo=
@@ -10,6 +12,10 @@
 basic.com/pubsub/cache.git v0.0.0-20190718093725-6a413e1d7d48/go.mod h1:gHLJZz2ee1cGL0X0ae69fs56bAxkDgEQwDhhXZJNUcY=
 basic.com/pubsub/protomsg.git v0.0.0-20190801122504-ad6c105f7a2b h1:2eskhTo22eo07AmAj3xVo31U/+qRFf6P1qhlfxoaFOc=
 basic.com/pubsub/protomsg.git v0.0.0-20190801122504-ad6c105f7a2b/go.mod h1:un5NV5VWQoblVLZfx1Rt5vyLgwR0jI92d3VJhfrJhWU=
+basic.com/pubsub/protomsg.git v0.0.0-20190821115153-4d63ce5655e6 h1:qusWXX8/w5kEzDRadRAlag956j72bcKvhaIEF/5f5k0=
+basic.com/pubsub/protomsg.git v0.0.0-20190821115153-4d63ce5655e6/go.mod h1:un5NV5VWQoblVLZfx1Rt5vyLgwR0jI92d3VJhfrJhWU=
+basic.com/pubsub/protomsg.git v0.0.0-20190822060153-dc8ca60fc531 h1:XsygHuAqvEovNNOiG80qLoV9OtdcN8IPP+xv/Ajx+Eg=
+basic.com/pubsub/protomsg.git v0.0.0-20190822060153-dc8ca60fc531/go.mod h1:un5NV5VWQoblVLZfx1Rt5vyLgwR0jI92d3VJhfrJhWU=
 basic.com/pubsub/sdkcompare.git v0.0.0-20190715013640-f536a4647d00 h1:sK+Tx7rvM9J2WnNIwrzMDjZSylWiKNfQO0prUBfKsDk=
 basic.com/pubsub/sdkcompare.git v0.0.0-20190715013640-f536a4647d00/go.mod h1:8by33F9E1w17Pw/rDgJGJXAo122w0wDENG14hiMS+RE=
 basic.com/valib/deliver.git v0.0.0-20190531095353-25d8c3b20051 h1:9flC2o3kasaM2Y6I+mY+mxmve/pyAY/UzGQZLT3lFHM=

--
Gitblit v1.8.0