我收到了一份定义了一组通过串行通信信道传输和接收的消息的文档。我想将传入的消息反序列化为对象,并序列化我的出站消息。在线路上传输的编码已经确定且不可更改,包括头部中的各种位域和不同的有效载荷。
class Message{
int msg_num : 7
int dest_addr : 4
bool SRR : 1
bool IDE : 1
int source_addr : 6
//... and so on...
}
我研究了使用protobufs,但是它们的变长编码方法已经确定。我还看了boost-serialization,但根据我目前所读的内容,那里的编码方式并不完全清楚。
因此,有几个问题:
- 我可以使用boost-serialization将我的字节流转换为对象吗?
- 为了避免编写自己的序列化例程(维护混乱),是否有一种首选机制来完成我的任务(例如,自定义boost-serialization Archive,或者其他我尚未发现的方法)?