/*! @file @id $Id$ */ // 1 2 3 4 5 6 7 8 // 45678901234567890123456789012345678901234567890123456789012345678901234567890 #include #include #include //! Class with built in xml::Serialize as member, no inheritance class A { public: A(): _ser("a") { _ser.persist(a, "a"); _ser.persist(txt, "txt"); } int a; std::string txt; xml::Serialize _ser; }; //! Class that inherits xml::Serialize class B: public xml::Serialize { public: int a; std::string txt; protected: void initXmlMembers() { className("b"); persist(a, "a"); persist(txt, "txt"); } }; //! Class with external xml::Serialize class C { public: int a; std::string txt; }; int main(int, char**) { { // Serialization as a member std::stringstream ss("\n" "\t1234\n" "\tDies ist ein Serialisierungs-Test\n" ""); A a; a._ser.loadXml(ss); if (a.a==1234) a.a=4321; a._ser.saveXml(std::cout)<\n" "\t1234\n" "\tDies ist ein Serialisierungs-Test\n" ""); B b; b.loadXml(ss); if (b.a==1234) b.a=4321; b.saveXml(std::cout)<\n" "\t1234\n" "\tDies ist ein Serialisierungs-Test\n" ""); C c; xml::Serialize ser(xml::Serialize("c") .persist(c.a, "a") .persist(c.txt, "txt")); ser.loadXml(ss); if (c.a==1234) c.a=4321; ser.saveXml(std::cout)<\n" "\t1234\n" "\tDies ist ein Serialisierungs-Test\n" ""); int a; std::string txt; xml::Serialize ser(xml::Serialize("d") .persist(a, "a") .persist(txt, "txt")); ser.loadXml(ss); if (a==1234) a=4321; ser.saveXml(std::cout)<