version 0.0.1
[fms.git] / src / freenet / introductionpuzzlexml.cpp
1 #include "../../include/freenet/introductionpuzzlexml.h"\r
2 \r
3 #ifdef XMEM\r
4         #include <xmem.h>\r
5 #endif\r
6 \r
7 IntroductionPuzzleXML::IntroductionPuzzleXML()\r
8 {\r
9         Initialize();\r
10 }\r
11 \r
12 std::string IntroductionPuzzleXML::GetXML()\r
13 {\r
14         TiXmlDocument td;\r
15         TiXmlDeclaration *tdec=new TiXmlDeclaration("1.0","UTF-8","");\r
16         TiXmlElement *tid;\r
17         TiXmlPrinter tp;\r
18 \r
19         td.LinkEndChild(tdec);\r
20         tid=new TiXmlElement("IntroductionPuzzle");\r
21         td.LinkEndChild(tid);\r
22 \r
23         tid->LinkEndChild(XMLCreateTextElement("Type",m_type));\r
24 \r
25         tid->LinkEndChild(XMLCreateTextElement("UUID",m_uuid));\r
26 \r
27         tid->LinkEndChild(XMLCreateTextElement("MimeType",m_mimetype));\r
28 \r
29         tid->LinkEndChild(XMLCreateTextElement("PuzzleData",m_puzzledata));\r
30 \r
31         td.Accept(&tp);\r
32         return std::string(tp.CStr());\r
33 }\r
34 \r
35 void IntroductionPuzzleXML::Initialize()\r
36 {\r
37         m_type="";\r
38         m_uuid="";\r
39         m_puzzledata="";\r
40         m_mimetype="";\r
41 }\r
42 \r
43 const bool IntroductionPuzzleXML::ParseXML(const std::string &xml)\r
44 {\r
45         TiXmlDocument td;\r
46         td.Parse(xml.c_str());\r
47 \r
48         if(!td.Error())\r
49         {\r
50                 TiXmlElement *el;\r
51                 TiXmlText *txt;\r
52                 TiXmlHandle hnd(&td);\r
53 \r
54                 Initialize();\r
55 \r
56                 txt=hnd.FirstChild("IntroductionPuzzle").FirstChild("Type").FirstChild().ToText();\r
57                 if(txt)\r
58                 {\r
59                         m_type=txt->ValueStr();\r
60                 }\r
61 \r
62                 txt=hnd.FirstChild("IntroductionPuzzle").FirstChild("UUID").FirstChild().ToText();\r
63                 if(txt)\r
64                 {\r
65                         m_uuid=txt->ValueStr();\r
66                 }\r
67 \r
68                 txt=hnd.FirstChild("IntroductionPuzzle").FirstChild("MimeType").FirstChild().ToText();\r
69                 if(txt)\r
70                 {\r
71                         m_mimetype=txt->ValueStr();\r
72                 }\r
73 \r
74                 txt=hnd.FirstChild("IntroductionPuzzle").FirstChild("PuzzleData").FirstChild().ToText();\r
75                 if(txt)\r
76                 {\r
77                         m_puzzledata=txt->ValueStr();\r
78                 }\r
79 \r
80                 return true;\r
81 \r
82         }\r
83         else\r
84         {\r
85                 return false;\r
86         }\r
87 }