ksh*_*har 2 c++ session resume state save
我有一个分布式C++应用程序,它由分布在2台机器上的4个进程组成.其中一个应用程序用作其余应用程序的"控制中心".
我希望能够将当前状态保存到文件并稍后再次加载.究竟什么是"状态"由系统中的每个模块单独定义.保存时,模块状态应合并为一个文件.加载时,每个模块都应该从文件中读取状态数据.
必须将状态保存到人类可读的文本文件中,因为它将由一些用户编辑.因此二进制文件格式不是一种选择.此外,首选标准文件格式,如XML或YAML.
您如何建议实现我刚才描述的状态保存/加载的基本框架?我更喜欢执行此任务所需的最小数据序列化工作.此外,该框架应该允许轻松添加更多数据以便将来保存.
看一下boost.Serialize lib.对于(非)流对象到(xml)文件,这是一个非常好的库.
而不是编写加载和保存功能,您的类只需要编写一个序列化函数,这个函数将双向工作.
class X
{
friend class boost::serialization::access;
template<class Archive>
void serialize(Archive & ar, const unsigned int version)
{
ar & make_nvp("degrees(=xml_tagname)", degrees);
ar & make_nvp("minutes(=xml_tagname)", minutes);;
ar & BOOST_SERIALIZATION_NVP(seconds); // =auto xml tag
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2855 次 |
| 最近记录: |