1 #include "../../include/freenet/identityxml.h"
\r
7 IdentityXML::IdentityXML()
\r
12 std::string IdentityXML::GetXML()
\r
14 Poco::AutoPtr<Poco::XML::Document> doc=new Poco::XML::Document;
\r
16 //TiXmlDeclaration *tdec=new TiXmlDeclaration("1.0","UTF-8","");
\r
17 Poco::XML::Element *root=doc->createElement("Identity");
\r
18 //TiXmlElement *tid;
\r
21 doc->appendChild(root);
\r
22 //td.LinkEndChild(tdec);
\r
23 //tid=new TiXmlElement("Identity");
\r
24 //td.LinkEndChild(tid);
\r
26 root->appendChild(XMLCreateCDATAElement(doc,"Name",m_name));
\r
27 //tid->LinkEndChild(XMLCreateCDATAElement("Name",m_name));
\r
29 root->appendChild(XMLCreateBooleanElement(doc,"SingleUse",m_singleuse));
\r
30 //tid->LinkEndChild(XMLCreateBooleanElement("SingleUse",m_singleuse));
\r
32 root->appendChild(XMLCreateBooleanElement(doc,"PublishTrustList",m_publishtrustlist));
\r
33 //tid->LinkEndChild(XMLCreateBooleanElement("PublishTrustList",m_publishtrustlist));
\r
35 root->appendChild(XMLCreateBooleanElement(doc,"PublishBoardList",m_publishboardlist));
\r
36 //tid->LinkEndChild(XMLCreateBooleanElement("PublishBoardList",m_publishboardlist));
\r
38 // freesite edition will be -1 if identity isn't publishing a freesite
\r
39 if(m_freesiteedition>=0)
\r
41 root->appendChild(XMLCreateTextElement(doc,"FreesiteEdition",m_freesiteedition));
\r
42 //tid->LinkEndChild(XMLCreateTextElement("FreesiteEdition",m_freesiteedition));
\r
46 //return std::string(tp.CStr());
\r
48 return GenerateXML(doc);
\r
51 void IdentityXML::Initialize()
\r
54 m_publishtrustlist=false;
\r
55 m_publishboardlist=false;
\r
57 m_freesiteedition=-1;
\r
60 const bool IdentityXML::ParseXML(const std::string &xml)
\r
64 Poco::XML::DOMParser dp;
\r
70 Poco::AutoPtr<Poco::XML::Document> doc=dp.parseString(FixCDATA(xml));
\r
71 Poco::XML::Element *root=XMLGetFirstChild(doc,"Identity");
\r
72 Poco::XML::Element *txt=NULL;
\r
74 txt=XMLGetFirstChild(root,"Name");
\r
77 if(txt->firstChild())
\r
79 m_name=txt->firstChild()->getNodeValue();
\r
80 if(m_name.size()>40)
\r
87 m_singleuse=XMLGetBooleanElement(root,"SingleUse");
\r
88 m_publishtrustlist=XMLGetBooleanElement(root,"PublishTrustList");
\r
89 m_publishboardlist=XMLGetBooleanElement(root,"PublishBoardList");
\r
91 txt=XMLGetFirstChild(root,"FreesiteEdition");
\r
94 if(txt->firstChild())
\r
96 std::string editionstr=txt->firstChild()->getNodeValue();
\r
97 StringFunctions::Convert(editionstr,m_freesiteedition);
\r
112 td.Parse(xml.c_str());
\r
117 TiXmlHandle hnd(&td);
\r
121 txt=hnd.FirstChild("Identity").FirstChild("Name").FirstChild().ToText();
\r
124 m_name=txt->ValueStr();
\r
127 if(m_name.size()>40)
\r
132 m_singleuse=XMLGetBooleanElement(hnd.FirstChild("Identity").ToElement(),"SingleUse");
\r
134 m_publishtrustlist=XMLGetBooleanElement(hnd.FirstChild("Identity").ToElement(),"PublishTrustList");
\r
136 m_publishboardlist=XMLGetBooleanElement(hnd.FirstChild("Identity").ToElement(),"PublishBoardList");
\r
138 txt=hnd.FirstChild("Identity").FirstChild("FreesiteEdition").FirstChild().ToText();
\r
141 std::string editionstr=SanitizeSingleString(txt->ValueStr());
\r
142 StringFunctions::Convert(editionstr,m_freesiteedition);
\r