diff --git a/server/notifyserver/tools/pbtools/app.js b/server/notifyserver/tools/pbtools/app.js index 7af4921..b5340be 100644 --- a/server/notifyserver/tools/pbtools/app.js +++ b/server/notifyserver/tools/pbtools/app.js @@ -70,7 +70,12 @@ class PBTools { use std::cell::RefCell; use crate::cs::cs_proto as cs; -//static mut handlers [2000]Option +struct Handler { + msg_id: i32, + handler_id: i32, +} + +static HANDLERS: Vec = Vec::new(); /* func GetNetMsgHandler(msgId uint16) Option { @@ -108,37 +113,33 @@ pub trait MsgHandler {`; fn ${finalyName}(&self, _: &f9::MsgHdr, _: Rc::>) { panic!("not implement"); - }`; + } +`; } }); data += ` } `; - /* data += ` -func init() { +pub fn registe_handlers() { `; this.csProtoPb.nested.cs.nestedArray.forEach( (item) => { if (item.name[0] == 'C' && item.name[1] == 'M') { + /* data += ` - handlers[int(CMMessageIdE__${item.name})] = &CsNetMsgHandler{ - MsgId: int(CMMessageIdE__${item.name}), - ParseCb: func (data []byte) interface{} { - msg := &${item.name}{} - proto.Unmarshal(data, msg) - return msg - }, - Cb: func (hdr *f5.MsgHdr, handler MsgHandler) { - handler.${item.name}(hdr, hdr.Msg.(*${item.name})) - }, - } -`; + HANDLERS[int(CMMessageIdE__${item.name})] = &CsNetMsgHandler{ + MsgId: int(CMMessageIdE__${item.name}), + Cb: func (hdr *f5.MsgHdr, handler MsgHandler) { + handler.${item.name}(hdr, hdr.Msg.(*${item.name})) + }, + }; +`;*/ } }); data += ` -}`;*/ +}`; fs.writeFileSync('./src/cs/cs_auto_gen.rs', data); }