我做的一个C++用的Serialization库(含部分源码)(7)
42 VL_Serializer::VL_Serializer()
43 {
44 }
45
46 VL_Serializer::~VL_Serializer()
47 {
48 }
49
50 void VL_Serializer::RegisterClass(ClassSerializerBase* aClassSerializer)
51 {
52 FClassSerializers.Add(aClassSerializer);
53 }
54
55 VL_Serializer::ClassSerializerBase* VL_Serializer::SelectClass(VL_SerializableObject* Object)
56 {
57 for(VInt i=0;i 58 { 59 ClassSerializerBase* Class=FClassSerializers[i].Object(); 60 if(Class->Accept(Object)) 61 { 62 return Class; 63 } 64 } 65 return 0; 66 } 67 68 VL_CommonObject VL_Serializer::Serialize(VL_SerializableObject* Object) 69 { 70 if(Object) 71 { 72 ClassSerializerBase* Class=SelectClass(Object); 73 if(Class) 74 { 75 VL_CommonObject ClassObject=VL_CommonObject::CreateClass(Class->GetClassTypeName()); 76 Object->Serialize(this,ClassObject); 77 return ClassObject; 78 } 79 else 80 { 81 return VL_CommonObject::CreateError(); 82 } 83 } 84 else 85 { 86 return VL_CommonObject::CreateNull(); 87 } 88 } 89 90 } 91 }
- 上一篇:POJ 1694 C++ (排序)
- 下一篇:CC++访问MySQL