Skip to content

Latest commit

 

History

History
24 lines (19 loc) · 2.03 KB

UPDATE.md

File metadata and controls

24 lines (19 loc) · 2.03 KB

Update

2020-07-17 : 增加定位器 使用定位器可以在序列化之后的二进制数据中快速查找key,并根据需要查找的数据局部解析并提取结果,不需要解析整体数据。 使用场景:中转代理服务器拿到上游发送的数据包,根据其中某个字段转发到不同的下游服务器;序列化数据作为存储格式,当 根据某个字段从磁盘中查找数据时,可以读入少部分数据并通过定位器局部反序列化提取数据。 定位器用来快速查询,目前不能用来修改原始序列化数据,之后可以看情况考虑开放更新定长数据接口。

2020-07-26 : 增加引用接口 当客户端保证需要序列化的对象的生命周期在序列化之前有效时,通过使用引用接口减少一次内存拷贝操作。

2020-07-30 : 增加parse函数模板的特化实现,直接通过ptr + length构造访问对象,提供给positioner使用,之后用于支持 0拷贝反序列化机制。

2021-06-02 : 准备增加toJson接口,因此需要准备将每个Data/Dataref的第一个字节用作记录类型信息。 同时封装parse和seri的接口函数以屏蔽这个字节,这样处理也可以在get的时候检查类型信息,增加安全性。

2021-06-03 : 实现了基本的data type处理,并在get时检查类型信息。 [doing] 实现toJson接口,将二进制数据(ELTI_BYTES)和自定义数据(ELTI_CUSTOM)编码为base64格式,但现在这个库效率不高(传值),考虑换一个。

2021-06-04 : 实现了将二进制数据和自定义数据编码为十六进制字符的选项,便于调试和观察。 对于复合数据类型的支持,见examples/seri_and_parse_2.cpp。 TODO:实现浮点数接口;实现整形数据的大小端处理;调整toJson接口返回的格式,便于阅读;目前强制将std::string和char类型的数据序列化 为ELTI_STRING类型,将std::vector<uint8_t>类型的数据序列化为ELTI_BYTES类型,但有时候std::string和char中存储的是二进制数据, 后续处理这个问题。