e语言-易语言 纯源码实现 非递归解析Protobuf全部节点并自动生成组包代码

上传者: 38743481 | 上传时间: 2021-09-05 04:37:47 | 文件大小: 753KB | 文件类型: -
前言:           Protobuf解析目前圈子没见过一个能[一次解析全部节点]的模块(类似protoc.exe --decode_raw),一般都是解析最外一层,用过Protobuf的童鞋可能知道,在面对嵌套多层并节点很多的情况下,可能会有多层循环和很多个判断,我觉得这种写法极其恶心,所以我在想能不能像json解析那样,一次解析完全部节点,然后想取哪个就哪个,也不用多次解析.           Protobuf生成也没见过一个好用的,谷歌的不知道怎么生成的,目前见到的都是复制很多次的打包,如果嵌套5层 最内层了10000字节,想象一下要拷贝几次,每次拷贝多大的内存.思路:          解析思路:首先想到的是Protobuf结构可以用理解为树结构,这样就可以把个个节点保存在树上          生成思路:首先构造一棵树,然后计算所有类型为Length_delimited(2)的长度字段,然后就可以通过中序遍历树来打包protobuf结构,避免了多次复制内存.实现:          首先Protobuf结构肯定是key-value-key-value...key-value             ①如果类型是Varint(0),那么key-value对应的就是varint-varint             ②如果是类型Length_delimited(2),对应的就是varint-varint(valueLen)-value             ③其他类型和Varint类型类似

文件下载

评论信息

  • sky_volition :
    我一般从不评论,但是你这个花了50积分下载,还要解压密码,你还没留解压密码,呢吗的,逗人玩吗
    2020-11-29

免责申明

【只为小站】的资源来自网友分享,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,【只为小站】 无法对用户传输的作品、信息、内容的权属或合法性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论 【只为小站】 经营者是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。
本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二条之规定,若资源存在侵权或相关问题请联系本站客服人员,zhiweidada#qq.com,请把#换成@,本站将给予最大的支持与配合,做到及时反馈和处理。关于更多版权及免责申明参见 版权及免责申明