From ad4f3dcedab29a690c5eedbb08ba1b393917db0b Mon Sep 17 00:00:00 2001
From: lichao <lichao@aiotlink.com>
Date: 星期三, 21 四月 2021 17:39:34 +0800
Subject: [PATCH] update go api.
---
/dev/null | 1
api/bhsgo/bhome_node_test.go | 15 +++++++
go.sum | 31 +++++++++++++++
api/bhsgo/bhome_node.go | 42 ++++++---------------
go.mod | 2 +
api/bhsgo/bh_api_go.h | 10 ++--
6 files changed, 65 insertions(+), 36 deletions(-)
diff --git a/api/bhsgo/bh_api.h b/api/bhsgo/bh_api.h
deleted file mode 100644
index 627e3b4..0000000
--- a/api/bhsgo/bh_api.h
+++ /dev/null
@@ -1 +0,0 @@
-../../src/bh_api.h
\ No newline at end of file
diff --git a/api/bhsgo/bh_api_go.h b/api/bhsgo/bh_api_go.h
index cc22172..ba0b6f5 100644
--- a/api/bhsgo/bh_api_go.h
+++ b/api/bhsgo/bh_api_go.h
@@ -18,21 +18,21 @@
#ifndef BH_API_GO_NVOG9GI5
#define BH_API_GO_NVOG9GI5
-#include "bh_api.h"
+#include "../../src/bh_api.h"
typedef const void *PCVoid;
-extern void CGoSubDataCallback(PCVoid proc_id,
+extern void cgoSubDataCallback(PCVoid proc_id,
int proc_id_len,
PCVoid data,
int data_len);
-extern void CGoServerCallback(PCVoid proc_id,
+extern void cgoServerCallback(PCVoid proc_id,
int proc_id_len,
PCVoid data,
int data_len,
void *src);
-extern void CGoClientCallback(PCVoid proc_id,
+extern void cgoClientCallback(PCVoid proc_id,
int proc_id_len,
PCVoid msg_id,
int msg_id_len,
@@ -41,7 +41,7 @@
static void CGoStartWorker()
{
- BHStartWorker(&CGoServerCallback, &CGoSubDataCallback, &CGoClientCallback);
+ BHStartWorker(&cgoServerCallback, &cgoSubDataCallback, &cgoClientCallback);
}
#endif // end of include guard: BH_API_GO_NVOG9GI5
diff --git a/api/bhsgo/bhome_node.go b/api/bhsgo/bhome_node.go
index dcc8248..c5d4019 100644
--- a/api/bhsgo/bhome_node.go
+++ b/api/bhsgo/bhome_node.go
@@ -9,11 +9,10 @@
import (
bh "bhshmq/proto/source/bhome_msg"
- "fmt"
"unsafe"
)
-func BHApiIn1Out1(bhfunc C.FBHApiIn1Out1, data []byte, reply *bh.MsgCommonReply, timeout_ms int) bool {
+func bhApiIn1Out1(bhfunc C.FBHApiIn1Out1, data []byte, reply *bh.MsgCommonReply, timeout_ms int) bool {
creply := unsafe.Pointer(nil)
creply_len := C.int(0)
defer C.BHFree(creply, creply_len)
@@ -27,22 +26,22 @@
func Register(proc *bh.ProcInfo, reply *bh.MsgCommonReply, timeout_ms int) bool {
data, _ := proc.Marshal()
- return BHApiIn1Out1(C.FBHApiIn1Out1(C.BHRegister), data, reply, timeout_ms)
+ return bhApiIn1Out1(C.FBHApiIn1Out1(C.BHRegister), data, reply, timeout_ms)
}
func RegisterTopics(topics *bh.MsgTopicList, reply *bh.MsgCommonReply, timeout_ms int) bool {
data, _ := topics.Marshal()
- return BHApiIn1Out1(C.FBHApiIn1Out1(C.BHRegisterTopics), data, reply, timeout_ms)
+ return bhApiIn1Out1(C.FBHApiIn1Out1(C.BHRegisterTopics), data, reply, timeout_ms)
}
func Subscribe(topics *bh.MsgTopicList, reply *bh.MsgCommonReply, timeout_ms int) bool {
data, _ := topics.Marshal()
- return BHApiIn1Out1(C.FBHApiIn1Out1(C.BHSubscribeTopics), data, reply, timeout_ms)
+ return bhApiIn1Out1(C.FBHApiIn1Out1(C.BHSubscribeTopics), data, reply, timeout_ms)
}
-func Heartbeat(topics *bh.MsgTopicList, reply *bh.MsgCommonReply, timeout_ms int) bool {
+func Heartbeat(topics *bh.ProcInfo, reply *bh.MsgCommonReply, timeout_ms int) bool {
data, _ := topics.Marshal()
- return BHApiIn1Out1(C.FBHApiIn1Out1(C.BHHeartbeat), data, reply, timeout_ms)
+ return bhApiIn1Out1(C.FBHApiIn1Out1(C.BHHeartbeat), data, reply, timeout_ms)
}
func HeartbeatEasy(timeout_ms int) bool {
@@ -133,24 +132,24 @@
var cgoClientCB ClientCB
var cgoSubDataCB SubDataCB
-//export CGoSubDataCallback
-func CGoSubDataCallback(cpid C.PCVoid, pid_len C.int, data C.PCVoid, data_len C.int) {
+//export cgoSubDataCallback
+func cgoSubDataCallback(cpid C.PCVoid, pid_len C.int, data C.PCVoid, data_len C.int) {
proc_id := string(C.GoBytes(unsafe.Pointer(cpid), pid_len))
msg := bh.MsgPublish{}
msg.Unmarshal(C.GoBytes(unsafe.Pointer(data), data_len))
cgoSubDataCB(&proc_id, &msg)
}
-//export CGoServerCallback
-func CGoServerCallback(cpid C.PCVoid, pid_len C.int, data C.PCVoid, data_len C.int, src unsafe.Pointer) {
+//export cgoServerCallback
+func cgoServerCallback(cpid C.PCVoid, pid_len C.int, data C.PCVoid, data_len C.int, src unsafe.Pointer) {
proc_id := string(C.GoBytes(unsafe.Pointer(cpid), pid_len))
msg := bh.MsgRequestTopic{}
msg.Unmarshal(C.GoBytes(unsafe.Pointer(data), data_len))
cgoServerCB(src, &proc_id, &msg)
}
-//export CGoClientCallback
-func CGoClientCallback(cpid C.PCVoid, pid_len C.int, msgid C.PCVoid, msgid_len C.int, data C.PCVoid, data_len C.int) {
+//export cgoClientCallback
+func cgoClientCallback(cpid C.PCVoid, pid_len C.int, msgid C.PCVoid, msgid_len C.int, data C.PCVoid, data_len C.int) {
proc_id := string(C.GoBytes(unsafe.Pointer(cpid), pid_len))
msg_id := C.GoBytes(unsafe.Pointer(msgid), msgid_len)
var msg bh.MsgRequestTopicReply
@@ -164,20 +163,3 @@
cgoSubDataCB = sub
C.CGoStartWorker()
}
-
-/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-// user code:
-
-func ServerCallback(src unsafe.Pointer, proc_id *string, req *bh.MsgRequestTopic) {
- fmt.Println("user server cb called, request topic: " + string(req.Topic) + ", data:" + string(req.Data))
- reply := bh.MsgRequestTopicReply{}
- reply.Data = []byte("reply 1234")
- SendReply(src, &reply)
-}
-
-func SubDataCallback(proc_id *string, pub *bh.MsgPublish) {
- fmt.Println("user sub data cb called")
-}
-func ClientCallback(proc_id *string, msg_id *[]byte, reply *bh.MsgRequestTopicReply) {
- fmt.Println("user client cb reply: " + string(reply.Data))
-}
\ No newline at end of file
diff --git a/api/bhsgo/bhome_node_test.go b/api/bhsgo/bhome_node_test.go
index d4f4278..3629d89 100644
--- a/api/bhsgo/bhome_node_test.go
+++ b/api/bhsgo/bhome_node_test.go
@@ -5,8 +5,22 @@
"fmt"
"testing"
"time"
+ "unsafe"
)
+func ServerCallback(src unsafe.Pointer, proc_id *string, req *bh.MsgRequestTopic) {
+ fmt.Println("user server cb called, request topic: " + string(req.Topic) + ", data:" + string(req.Data))
+ reply := bh.MsgRequestTopicReply{}
+ reply.Data = []byte("reply 1234")
+ SendReply(src, &reply)
+}
+
+func SubDataCallback(proc_id *string, pub *bh.MsgPublish) {
+ fmt.Println("user sub data cb called")
+}
+func ClientCallback(proc_id *string, msg_id *[]byte, reply *bh.MsgRequestTopicReply) {
+ fmt.Println("user client cb reply: " + string(reply.Data))
+}
func TestRegister(t *testing.T) {
proc_id := "test_proc"
proc := bh.ProcInfo{}
@@ -20,6 +34,7 @@
fmt.Println("register ok")
} else {
fmt.Println("register failed")
+ t.Log("register error")
return
}
diff --git a/go.mod b/go.mod
index b7dcd0c..0e9701b 100644
--- a/go.mod
+++ b/go.mod
@@ -1,3 +1,5 @@
module bhshmq
go 1.14
+
+require github.com/gogo/protobuf v1.3.2 // indirect
diff --git a/go.sum b/go.sum
new file mode 100644
index 0000000..faf43b7
--- /dev/null
+++ b/go.sum
@@ -0,0 +1,31 @@
+github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
+github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
+github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
+github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
+github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
+github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
+golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
+golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
+golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
+golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
+golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
+golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
+golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
+golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
+golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
+golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
+golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
+golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
+golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
+golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
--
Gitblit v1.8.0