是否有支持部分序列化的现有C++序列化库?支持部分序列化的C++序列化库?
通过“局部串行”我的意思是,我可能要保存的3个特定成员的值,以后还可以到保存的副本适用于不同的实例。我只会更新这3个成员,并保留其他成员。
这对于通过网络同步数据很有用。假设我在客户端和服务器上有一些对象,并且当服务器上的成员发生更改时,我想向客户端发送一条消息,其中包含该成员的更新值,该成员仅为。我不想通过电线发送整个对象的副本。
boost::serialization
一眼看起来像它仅支持全有或全无。
编辑:3年后最初写这个我回头看它,我对自己说,“武汉理工大学?” boost :: serialization可以让你定义你想要保存或不保存的成员,所以它会支持'部分序列化',正如我似乎已经描述的那样。此外,由于C++缺乏反射序列化库,因此要求您明确指定要保存的每个成员,除非他们带有某种外部工具来解析源文件或具有用于生成C++代码的单独输入文件格式(例如什么协议缓冲区)。我认为我写这篇文章时一定会在概念上感到困惑。
我不会说我“显然不想要序列化”。也许序列化库通常不会考虑这种用例,但我认为这是完全序列化的一个非常自然的扩展,希望能够仅保存对象成员的一个子集。通过网络发送数据只是一种可能的用例。 –
我的意思不是迂腐,但序列化是关于保存足够的信息,以便能够从中重建语义相同的克隆。这些属性的子集可能就足够了(如果可以计算其余的)。然而在这里,我们有一个不同的案例:它真的是更多的观察者模式。观察者模式实际上是关于沟通......所以我们正在谈论事件(或消息)。是否涉及网络并不重要(尽管它有点复杂)。 –
我的意思并不是迂腐,但是如果序列化节省了足够的信息来创建语义相同的克隆,部分序列化可以节省足够的信息以创建部分语义相同的“克隆”;)或者相同,比原来窄)的观点。 –