我有几个avro-shemas和相应的codec\u结构。我使用libserdes+avro通过serdes.cpp中的avroimpl::serialize()方法的模板版本对它们进行序列化,该方法放在我们的代码中。制作这样的本地模板版本很容易。但是从同一个文件生成avroimpl::deserialize()的模板副本似乎有问题。
在consumer中,我可以将我们的消息解码为json,但是我需要二进制格式的消息,在我们最初的c结构中。从json进行第二次解码是不可接受的解决方案。
我看到每个avro编解码器都有decode()方法,在file specific.hh中也有template decode()方法,但是如何让所有这些都与初始二进制消息一起工作呢?json输出的示例使用avro::genericdatam获得结果,然后将其解码为json。如果无法直接反序列化,是否有方法将avro::genericdatam转换/反序列化到特定结构?
我更喜欢不使用c11或更新功能的解决方案。
暂无答案!
目前还没有任何答案,快来回答吧!