diff --git a/server/notifyserver/tools/pbtools/app.js b/server/notifyserver/tools/pbtools/app.js index 0616afc..b2e7703 100644 --- a/server/notifyserver/tools/pbtools/app.js +++ b/server/notifyserver/tools/pbtools/app.js @@ -74,7 +74,7 @@ use crate::cs::cs_msgid as cs_msgid; pub struct Handler { msg_id: i32, handler_id: i32, - cb: Box::, + cb: Box::, } static mut HANDLERS: Vec> = Vec::new(); @@ -89,7 +89,7 @@ pub fn get_net_msg_handler(msg_id: u16) -> &'static Option { } } -pub fn reg_handler_id(msg_id: u16, handler_id: i32){ +pub fn reg_handler_id(msg_id: u16, handler_id: i32) { unsafe { if (msg_id as usize) < HANDLERS.len() { match &mut HANDLERS[msg_id as usize] { @@ -104,11 +104,23 @@ pub fn reg_handler_id(msg_id: u16, handler_id: i32){ } } -/* -func DispatchMsg(handler *CsNetMsgHandler, hdr *f5.MsgHdr, msgHandler MsgHandler) { - handler.Cb(hdr, msgHandler) +pub fn dispatch_msg(msg_id: u16, hdr: &f9::MsgHdr, h: &dyn MsgHandler) { + let mut handler: &Option = &None; + unsafe { + handler = get_net_msg_handler(msg_id); + } + match handler { + Some(v) => { + (*v.cb)(hdr, h); + } + None => { + + } + } } +/* + func ParsePb(msgId uint16, data []byte) interface{} { handler := handlers[msgId] if handler == nil {