Visitor design pattern for class introspection and serialization.
===== EXPERIMENT 1 ===========
Class name = AClass
Field { name = n ; type = int ; value = 200 }
Field { name = k ; type = double ; value = -2.34 }
Field { name = x ; type = long ; value = 900 }
Field { name = name ; type = std::string ; value = objectA }
===== EXPERIMENT 2 ===========
Class name = AClass
Field { name = n ; type = int ; value = 200 }
Field { name = k ; type = double ; value = -2.34 }
Field { name = x ; type = long ; value = 900 }
Field { name = name ; type = std::string ; value = objectA }
===== EXPERIMENT 3 - Text Serialization/Deserialization ===
Class name = AClass
Field { name = n ; type = int ; value = 200 }
Field { name = k ; type = double ; value = -2.34 }
Field { name = x ; type = long ; value = 900 }
Field { name = name ; type = std::string ; value = objectA }
==> pseudoFile = 200 -2.34 900 objectA
===== EXPERIMENT 5 == Serialize to file ===========
Stream = \xc8\x00\x00\x00\xb8\x1e\x85\xebQ \xb8\x02\xc0\x84\x03\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00o b j e c t A
===== EXPERIMENT 6 == Deserialize from file ===========
Class name = AClass
Field { name = n ; type = int ; value = 200 }
Field { name = k ; type = double ; value = -2.34 }
Field { name = x ; type = long ; value = 900 }
Field { name = name ; type = std::string ; value = objectA }
|
|