快速业务通道

我做的一个C++用的Serialization库(含部分源码)

作者 佚名技术 来源 程序设计 浏览 发布时间 2012-06-29
Field FieldName="StringMember">
19           <vcoString Value="Left" />
20         </vcoField>
21       </vcoClass>
22     </vcoField>
23     <vcoField FieldName="RightTree">
24       <vcoClass TypeName="TestTree">
25         <vcoField FieldName="IntegerMember">
26           <vcoInt Value="1E000000" />
27         </vcoField>
28         <vcoField FieldName="LeftTree">
29           <vcoNull />
30         </vcoField>
31         <vcoField FieldName="RightTree">
32           <vcoNull />
33         </vcoField>
34         <vcoField FieldName="StringMember">
35           <vcoString Value="Right" />
36         </vcoField>
37       </vcoClass>
38     </vcoField>
39     <vcoField FieldName="StringMember">
40       <vcoString Value="Root" />
41     </vcoField>
42   </vcoClass>
43 </SerializedObject>

造这种东西出来是有特殊的目的的,并不打算将这个Serialization做成一个非常通用的Serialization。

关键部分的代码如下:

头文件:

1 /*******************************************************************************
2 Vczh Library++ 2.0
3 数据结构::序列化
4 开发者:陈梓瀚
5
6 接口:
7 类:
8 VL_SerializableObject :可序列化对象基类
9 VL_Serializer :序列化/反序列化处理器
10 函数:
11 VL_REGISTER_SERIALIZABLE_CLASS :注册可序列化类型
12 VL_REGISTER_SERIALIZABLE_FIELD :注册可序列化成员变量
13 *******************************************************************************/
14
15 #ifndef VL_SERIALIZATION
16 #define VL_SERIALIZATION
17
18 #include "Data\VL_Data_List.h"
19 #include "Data\VL_Data_Map.h"
20 #include "VL_CommonData.h"
21
22 namespace vl
23 {
24 namespace serialization
25 {
26 using namespace collection;
27 using namespace commondata;
28
29 class VL_Serializer;
30
31 class VL_SerializableObject : public VL_Base
32 {
33 protected:
34 class FieldSerializerBase : public VL_Base
35 {
36 public:
37 typedef VL_List<VL_AutoPtr<FieldSerializerBase> , false , FieldSerializerBase*> List;
38 protected:
39 VUnicodeString FFieldName;
40
41 public:
42 FieldSerializerBase(VUnicodeString FieldName);
43
44 virtual void Serialize(VL_Serializer* Serializer , VL_CommonObject& ClassObject)=0;
45 };
46
47 #define DECLARE_PRIMITIVE_SERIALIZER(FIELD)

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号