From e3d8ac1ce502e5a5f9dc762da301b0060b641811 Mon Sep 17 00:00:00 2001 From: chenshijun <csj_sky@126.com> Date: 星期一, 07 十二月 2020 15:56:42 +0800 Subject: [PATCH] 修改适配新的版本接口 --- bhomebus.go | 68 ++++++++++++----- libcbhomebus.c | 64 +++++++++++----- libcbhomebus_func.h | 30 +++++- libcbhomebus.h | 33 ++++++-- 4 files changed, 139 insertions(+), 56 deletions(-) diff --git a/bhomebus.go b/bhomebus.go index 89b4645..97563cd 100644 --- a/bhomebus.go +++ b/bhomebus.go @@ -360,14 +360,14 @@ return int(ret) } -// StartBus socket -func (s *Socket) StartBus() int { - if libbhomebus == nil || s.socket == nil { - return -1 - } - - return int(C.wrap_fn_socket_start_bus(libbhomebus, s.socket)) -} +//// StartBus socket +//func (s *Socket) StartBus() int { +// if libbhomebus == nil || s.socket == nil { +// return -1 +// } +// +// return int(C.wrap_fn_socket_start_bus(libbhomebus, s.socket)) +//} // Pub socket func (s *Socket) Pub(nodes []NetNode, topic string, data []byte) int { @@ -455,7 +455,7 @@ } // Sub socket -func (s *Socket) Sub(topic string, key int) int { +func (s *Socket) Sub(topic string) int { if libbhomebus == nil || s.socket == nil { return -1 } @@ -463,46 +463,46 @@ ctopic := C.CString(topic) defer C.free(unsafe.Pointer(ctopic)) - return int(C.wrap_fn_socket_sub(libbhomebus, s.socket, unsafe.Pointer(ctopic), C.int(len(topic)), C.int(key))) + return int(C.wrap_fn_socket_sub(libbhomebus, s.socket, unsafe.Pointer(ctopic), C.int(len(topic)))) } // SubTimeout socket -func (s *Socket) SubTimeout(topic string, key int, milliseconds int) int { +func (s *Socket) SubTimeout(topic string, milliseconds int) int { if libbhomebus == nil || s.socket == nil { return -1 } ctopic := C.CString(topic) defer C.free(unsafe.Pointer(ctopic)) - return int(C.wrap_fn_socket_sub_timeout(libbhomebus, s.socket, unsafe.Pointer(ctopic), C.int(len(topic)), C.int(key), 0, C.int(milliseconds*1000000))) + return int(C.wrap_fn_socket_sub_timeout(libbhomebus, s.socket, unsafe.Pointer(ctopic), C.int(len(topic)), 0, C.int(milliseconds*1000000))) } // SubNowait socket -func (s *Socket) SubNowait(topic string, key int) int { +func (s *Socket) SubNowait(topic string) int { if libbhomebus == nil || s.socket == nil { return -1 } ctopic := C.CString(topic) defer C.free(unsafe.Pointer(ctopic)) - return int(C.wrap_fn_socket_sub_nowait(libbhomebus, s.socket, unsafe.Pointer(ctopic), C.int(len(topic)), C.int(key))) + return int(C.wrap_fn_socket_sub_nowait(libbhomebus, s.socket, unsafe.Pointer(ctopic), C.int(len(topic)))) } // Desub socket -func (s *Socket) Desub(topic string, key int) int { +func (s *Socket) Desub(topic string) int { if libbhomebus == nil || s.socket == nil { return -1 } ctopic := C.CString(topic) defer C.free(unsafe.Pointer(ctopic)) - return int(C.wrap_fn_socket_desub(libbhomebus, s.socket, unsafe.Pointer(&ctopic), C.int(len(topic)), C.int(key))) + return int(C.wrap_fn_socket_desub(libbhomebus, s.socket, unsafe.Pointer(&ctopic), C.int(len(topic)))) } // DesubTimeout socket -func (s *Socket) DesubTimeout(topic string, key int, milliseconds int) int { +func (s *Socket) DesubTimeout(topic string, milliseconds int) int { if libbhomebus == nil || s.socket == nil { return -1 } @@ -510,18 +510,18 @@ ctopic := C.CString(topic) defer C.free(unsafe.Pointer(ctopic)) - return int(C.wrap_fn_socket_desub_timeout(libbhomebus, s.socket, unsafe.Pointer(&ctopic), C.int(len(topic)), C.int(key), 0, C.int(milliseconds*1000000))) + return int(C.wrap_fn_socket_desub_timeout(libbhomebus, s.socket, unsafe.Pointer(&ctopic), C.int(len(topic)), 0, C.int(milliseconds*1000000))) } // DesubNowait socket -func (s *Socket) DesubNowait(topic string, key int) int { +func (s *Socket) DesubNowait(topic string) int { if libbhomebus == nil || s.socket == nil { return -1 } ctopic := C.CString(topic) defer C.free(unsafe.Pointer(ctopic)) - return int(C.wrap_fn_socket_desub_nowait(libbhomebus, s.socket, unsafe.Pointer(&ctopic), C.int(len(topic)), C.int(key))) + return int(C.wrap_fn_socket_desub_nowait(libbhomebus, s.socket, unsafe.Pointer(&ctopic), C.int(len(topic)))) } // Getkey socket @@ -610,3 +610,31 @@ return int(C.wrap_fn_server_socket_start(libbhomebus, s.socket)) } + +// ServerOpen bus server +func BusServerOpen() *Socket { + if libbhomebus == nil { + return nil + } + + sock := C.wrap_fn_bus_server_socket_open(libbhomebus) + return &Socket{sock} +} + +// Close close +func (s *Socket) BusClose() { + if libbhomebus == nil { + return + } + + C.wrap_fn_bus_server_socket_close(libbhomebus, s.socket) +} + +// Start start +func (s *Socket) BusStart() int { + if libbhomebus == nil { + return -1 + } + + return int(C.wrap_fn_bus_server_socket_start(libbhomebus, s.socket)) +} diff --git a/libcbhomebus.c b/libcbhomebus.c index 9046a11..da3750b 100644 --- a/libcbhomebus.c +++ b/libcbhomebus.c @@ -197,14 +197,14 @@ return fn_socket_sendandrecv_nowait(_socket, (net_node_t*)node_arr, arrlen, send_buf, send_size, (net_mod_recv_msg_t**)recv_arr, recv_arr_size); } -int wrap_fn_socket_start_bus(hbhomebus lib, void * _socket) -{ - if(!fn_socket_start_bus){ - fn_socket_start_bus = (tfn_net_mod_socket_start_bus)dlsym(lib,l_net_mod_socket_start_bus); - check_with_ret(fn_socket_start_bus, lib, -1); - } - return fn_socket_start_bus(_socket); -} +//int wrap_fn_socket_start_bus(hbhomebus lib, void * _socket) +//{ +// if(!fn_socket_start_bus){ +// fn_socket_start_bus = (tfn_net_mod_socket_start_bus)dlsym(lib,l_net_mod_socket_start_bus); +// check_with_ret(fn_socket_start_bus, lib, -1); +// } +// return fn_socket_start_bus(_socket); +//} int wrap_fn_socket_pub(hbhomebus lib, void *_socket, void *node_arr, int node_arr_len, char *topic, int topic_size, void *content, int content_size) { @@ -233,58 +233,58 @@ return fn_socket_pub_nowait(_socket, (net_node_t*)node_arr, node_arr_len, topic, topic_size, content, content_size); } -int wrap_fn_socket_sub(hbhomebus lib, void * _socket, void *topic, int size, int key) +int wrap_fn_socket_sub(hbhomebus lib, void * _socket, void *topic, int size) { if(!fn_socket_sub){ fn_socket_sub = (tfn_net_mod_socket_sub)dlsym(lib,l_net_mod_socket_sub); check_with_ret(fn_socket_sub, lib, -1); } - return fn_socket_sub(_socket, topic, size, key); + return fn_socket_sub(_socket, topic, size); } -int wrap_fn_socket_sub_timeout(hbhomebus lib, void * _socket, void *topic, int size, int key, int sec, int nsec) +int wrap_fn_socket_sub_timeout(hbhomebus lib, void * _socket, void *topic, int size, int sec, int nsec) { if(!fn_socket_sub_timeout){ fn_socket_sub_timeout = (tfn_net_mod_socket_sub_timeout)dlsym(lib,l_net_mod_socket_sub_timeout); check_with_ret(fn_socket_sub_timeout, lib, -1); } - return fn_socket_sub_timeout(_socket, topic, size, key, sec, nsec); + return fn_socket_sub_timeout(_socket, topic, size, sec, nsec); } -int wrap_fn_socket_sub_nowait(hbhomebus lib, void * _socket, void *topic, int size, int key) +int wrap_fn_socket_sub_nowait(hbhomebus lib, void * _socket, void *topic, int size) { if(!fn_socket_sub_nowait){ fn_socket_sub_nowait = (tfn_net_mod_socket_sub_nowait)dlsym(lib,l_net_mod_socket_sub_nowait); check_with_ret(fn_socket_sub_nowait, lib, -1); } - return fn_socket_sub_nowait(_socket, topic, size, key); + return fn_socket_sub_nowait(_socket, topic, size); } -int wrap_fn_socket_desub(hbhomebus lib, void * _socket, void *topic, int size, int key) +int wrap_fn_socket_desub(hbhomebus lib, void * _socket, void *topic, int size) { if(!fn_socket_desub){ fn_socket_desub = (tfn_net_mod_socket_desub)dlsym(lib,l_net_mod_socket_desub); check_with_ret(fn_socket_desub, lib, -1); } - return fn_socket_desub(_socket, topic, size, key); + return fn_socket_desub(_socket, topic, size); } -int wrap_fn_socket_desub_timeout(hbhomebus lib, void * _socket, void *topic, int size, int key, int sec, int nsec) +int wrap_fn_socket_desub_timeout(hbhomebus lib, void * _socket, void *topic, int size, int sec, int nsec) { if(!fn_socket_desub_timeout){ fn_socket_desub_timeout = (tfn_net_mod_socket_desub_timeout)dlsym(lib,l_net_mod_socket_desub_timeout); check_with_ret(fn_socket_desub_timeout, lib, -1); } - return fn_socket_desub_timeout(_socket, topic, size, key, sec, nsec); + return fn_socket_desub_timeout(_socket, topic, size, sec, nsec); } -int wrap_fn_socket_desub_nowait(hbhomebus lib, void * _socket, void *topic, int size, int key) +int wrap_fn_socket_desub_nowait(hbhomebus lib, void * _socket, void *topic, int size) { if(!fn_socket_desub_nowait){ fn_socket_desub_nowait = (tfn_net_mod_socket_sub_nowait)dlsym(lib,l_net_mod_socket_sub_nowait); check_with_ret(fn_socket_desub_nowait, lib, -1); } - return fn_socket_desub_nowait(_socket, topic, size, key); + return fn_socket_desub_nowait(_socket, topic, size); } int wrap_fn_socket_get_key(hbhomebus lib, void * _socket) @@ -353,3 +353,27 @@ } return fn_server_socket_start(_socket); } + +void *wrap_fn_bus_server_socket_open(hbhomebus lib){ + if (!fn_bus_server_socket_open){ + fn_bus_server_socket_open = (tfn_bus_server_socket_wrapper_open)dlsym(lib, l_bus_server_socket_wrapper_open); + check_with_ret(fn_bus_server_socket_open, lib, NULL); + } + return fn_bus_server_socket_open(); +} + +void wrap_fn_bus_server_socket_close(hbhomebus lib, void* _socket){ + if (!fn_bus_server_socket_close){ + fn_bus_server_socket_close = (tfn_bus_server_socket_wrapper_close)dlsym(lib, l_bus_server_socket_wrapper_close); + check_only(fn_bus_server_socket_close, lib); + } + fn_bus_server_socket_close(_socket); +} + +int wrap_fn_bus_server_socket_start(hbhomebus lib, void* _socket){ + if (!fn_bus_server_socket_start){ + fn_bus_server_socket_start = (tfn_bus_server_socket_wrapper_start_bus)dlsym(lib, l_bus_server_socket_wrapper_start_bus); + check_with_ret(fn_bus_server_socket_start, lib, -1); + } + return fn_bus_server_socket_start(_socket); +} diff --git a/libcbhomebus.h b/libcbhomebus.h index d637d63..0ffdf89 100644 --- a/libcbhomebus.h +++ b/libcbhomebus.h @@ -28,7 +28,7 @@ static tfn_net_mod_socket_sendandrecv fn_socket_sendandrecv = NULL; static tfn_net_mod_socket_sendandrecv_timeout fn_socket_sendandrecv_timeout = NULL; static tfn_net_mod_socket_sendandrecv_nowait fn_socket_sendandrecv_nowait = NULL; -static tfn_net_mod_socket_start_bus fn_socket_start_bus = NULL; +//static tfn_net_mod_socket_start_bus fn_socket_start_bus = NULL; static tfn_net_mod_socket_pub fn_socket_pub = NULL; static tfn_net_mod_socket_pub_timeout fn_socket_pub_timeout = NULL; static tfn_net_mod_socket_pub_nowait fn_socket_pub_nowait = NULL; @@ -47,6 +47,11 @@ static tfn_net_mod_server_socket_open fn_server_socket_open = NULL; static tfn_net_mod_server_socket_close fn_server_socket_close = NULL; static tfn_net_mod_server_socket_start fn_server_socket_start = NULL; + +// bus +static tfn_bus_server_socket_wrapper_open fn_bus_server_socket_open = NULL; +static tfn_bus_server_socket_wrapper_close fn_bus_server_socket_close = NULL; +static tfn_bus_server_socket_wrapper_start_bus fn_bus_server_socket_start = NULL; ////////////////////////////////////////////////////////////////////// // labels @@ -70,7 +75,7 @@ const static char l_net_mod_socket_sendandrecv[] = "net_mod_socket_sendandrecv"; const static char l_net_mod_socket_sendandrecv_timeout[] = "net_mod_socket_sendandrecv_timeout"; const static char l_net_mod_socket_sendandrecv_nowait[] = "net_mod_socket_sendandrecv_nowait"; -const static char l_net_mod_socket_start_bus[] = "net_mod_socket_start_bus"; +//const static char l_net_mod_socket_start_bus[] = "net_mod_socket_start_bus"; const static char l_net_mod_socket_pub[] = "net_mod_socket_pub"; const static char l_net_mod_socket_pub_timeout[] = "net_mod_socket_pub_timeout"; const static char l_net_mod_socket_pub_nowait[] = "net_mod_socket_pub_nowait"; @@ -89,6 +94,11 @@ const static char l_net_mod_server_socket_open[] = "net_mod_server_socket_open"; const static char l_net_mod_server_socket_close[] = "net_mod_server_socket_close"; const static char l_net_mod_server_socket_start[] = "net_mod_server_socket_start"; + +// bus +const static char l_bus_server_socket_wrapper_open[] = "bus_server_socket_wrapper_open"; +const static char l_bus_server_socket_wrapper_close[] = "bus_server_socket_wrapper_close"; +const static char l_bus_server_socket_wrapper_start_bus[] = "bus_server_socket_wrapper_start_bus"; ////////////////////////////////////////////////////////////////////// // dlopen dynamic library @@ -119,16 +129,16 @@ void ** recv_arr, int *recv_arr_size, int timeout); int wrap_fn_socket_sendandrecv_nowait(hbhomebus lib, void *_sockt, void *node_arr, int arrlen, void *send_buf, int send_size, void ** recv_arr, int *recv_arr_size) ; -int wrap_fn_socket_start_bus(hbhomebus lib, void * _socket); +//int wrap_fn_socket_start_bus(hbhomebus lib, void * _socket); int wrap_fn_socket_pub(hbhomebus lib, void *_sockt, void *node_arr, int node_arr_len, char *topic, int topic_size, void *content, int content_size); int wrap_fn_socket_pub_timeout(hbhomebus lib, void *_sockt, void *node_arr, int node_arr_len, char *topic, int topic_size, void *content, int content_size, int timeout); int wrap_fn_socket_pub_nowait(hbhomebus lib, void *_sockt, void *node_arr, int node_arr_len, char *topic, int topic_size, void *content, int content_size); -int wrap_fn_socket_sub(hbhomebus lib, void * _socket, void *topic, int size, int key); -int wrap_fn_socket_sub_timeout(hbhomebus lib, void * _socket, void *topic, int size, int key, int sec, int nsec); -int wrap_fn_socket_sub_nowait(hbhomebus lib, void * _socket, void *topic, int size, int key); -int wrap_fn_socket_desub(hbhomebus lib, void * _socket, void *topic, int size, int key); -int wrap_fn_socket_desub_timeout(hbhomebus lib, void * _socket, void *topic, int size, int key, int sec, int nsec); -int wrap_fn_socket_desub_nowait(hbhomebus lib, void * _socket, void *topic, int size, int key); +int wrap_fn_socket_sub(hbhomebus lib, void * _socket, void *topic, int size); +int wrap_fn_socket_sub_timeout(hbhomebus lib, void * _socket, void *topic, int size, int sec, int nsec); +int wrap_fn_socket_sub_nowait(hbhomebus lib, void * _socket, void *topic, int size); +int wrap_fn_socket_desub(hbhomebus lib, void * _socket, void *topic, int size); +int wrap_fn_socket_desub_timeout(hbhomebus lib, void * _socket, void *topic, int size, int sec, int nsec); +int wrap_fn_socket_desub_nowait(hbhomebus lib, void * _socket, void *topic, int size); int wrap_fn_socket_get_key(hbhomebus lib, void * _socket) ; void wrap_fn_socket_free_recv_msg_arr(hbhomebus lib, void * arr, int size); void wrap_fn_socket_free(hbhomebus lib, void *buf) ; @@ -140,6 +150,11 @@ void wrap_fn_server_socket_close(hbhomebus lib, void* _socket); int wrap_fn_server_socket_start(hbhomebus lib, void* _socket); +//bus +void *wrap_fn_bus_server_socket_open(hbhomebus lib); +void wrap_fn_bus_server_socket_close(hbhomebus lib, void* _socket); +int wrap_fn_bus_server_socket_start(hbhomebus lib, void* _socket); + #ifdef __cplusplus } #endif diff --git a/libcbhomebus_func.h b/libcbhomebus_func.h index 83d663d..0479a28 100644 --- a/libcbhomebus_func.h +++ b/libcbhomebus_func.h @@ -127,7 +127,7 @@ * * @return 0 鎴愬姛锛� 鍏朵粬鍊� 澶辫触鐨勯敊璇爜 */ -typedef int (*tfn_net_mod_socket_start_bus)(void * _socket); +//typedef int (*tfn_net_mod_socket_start_bus)(void * _socket); /** @@ -147,10 +147,10 @@ * @size 涓婚闀垮害 * @key 鎬荤嚎绔彛 */ -typedef int (*tfn_net_mod_socket_sub)(void * _socket, void *topic, int size, int key); +typedef int (*tfn_net_mod_socket_sub)(void * _socket, void *topic, int size); // 瓒呮椂杩斿洖銆� @sec 绉� 锛� @nsec 绾崇 -typedef int (*tfn_net_mod_socket_sub_timeout)(void * _socket, void *topic, int size, int key, int sec, int nsec); -typedef int (*tfn_net_mod_socket_sub_nowait)(void * _socket, void *topic, int size, int key); +typedef int (*tfn_net_mod_socket_sub_timeout)(void * _socket, void *topic, int size, int sec, int nsec); +typedef int (*tfn_net_mod_socket_sub_nowait)(void * _socket, void *topic, int size); /** @@ -159,10 +159,10 @@ * @size 涓婚闀垮害 * @key 鎬荤嚎绔彛 */ -typedef int (*tfn_net_mod_socket_desub)(void * _socket, void *topic, int size, int key); +typedef int (*tfn_net_mod_socket_desub)(void * _socket, void *topic, int size); // 瓒呮椂杩斿洖銆� @sec 绉� 锛� @nsec 绾崇 -typedef int (*tfn_net_mod_socket_desub_timeout)(void * _socket, void *topic, int size, int key, int sec, int nsec); -typedef int (*tfn_net_mod_socket_desub_nowait)(void * _socket, void *topic, int size, int key); +typedef int (*tfn_net_mod_socket_desub_timeout)(void * _socket, void *topic, int size, int sec, int nsec); +typedef int (*tfn_net_mod_socket_desub_nowait)(void * _socket, void *topic, int size); /** @@ -190,6 +190,7 @@ */ typedef int(*tfn_shm_mod_socket_remove_keys) (int*, int); + /** * 鍒涘缓 */ @@ -205,6 +206,21 @@ */ typedef int (*tfn_net_mod_server_socket_start)(void *_sockt); +/** + * bus鍒涘缓 + */ +typedef void *(*tfn_bus_server_socket_wrapper_open)() ; + +/** + * bus鍏抽棴 + */ +typedef void (*tfn_bus_server_socket_wrapper_close)(void *_sockt) ; + +/** + * bus鍚姩 + */ +typedef int (*tfn_bus_server_socket_wrapper_start_bus)(void *_sockt); + #ifdef __cplusplus } #endif -- Gitblit v1.8.0