#include <XmlDoc.h>
Public Member Functions | |
| XmlDoc () | |
| XmlDoc (const std::string &fileName) | |
| ~XmlDoc () | |
| void | LoadFile (const std::string &fileName) |
| void | SaveFile (const std::string &fileName) |
| XmlNode * | RootNode () |
| XmlNode * | RootNode (const std::string &nodeName) |
| XmlNode * | CreateRootNode (const std::string &nodeName) |
| XmlNode * | NodeFromElement (TiXmlElement *element) |
Private Types | |
| typedef std::map< const TiXmlElement *, XmlNode > | tXmlWrapperMap |
| typedef std::pair< const TiXmlElement *, XmlNode > | tXmlWrapperPair |
Private Attributes | |
| TiXmlDocument * | mDoc |
| tXmlWrapperMap | mMap |
Definition at line 46 of file XmlDoc.h.
typedef std::map< const TiXmlElement*, XmlNode > pcce::XmlDoc::tXmlWrapperMap [private] |
typedef std::pair< const TiXmlElement*, XmlNode > pcce::XmlDoc::tXmlWrapperPair [private] |
| XmlDoc::XmlDoc | ( | ) |
| pcce::XmlDoc::XmlDoc | ( | const std::string & | fileName | ) |
| XmlDoc::~XmlDoc | ( | ) |
| void pcce::XmlDoc::LoadFile | ( | const std::string & | fileName | ) |
| void pcce::XmlDoc::SaveFile | ( | const std::string & | fileName | ) |
| XmlNode * XmlDoc::RootNode | ( | ) |
Definition at line 88 of file XmlDoc.cpp.
References mDoc, and NodeFromElement().
Referenced by CreateRootNode().
00088 { 00089 TiXmlElement* elem = mDoc->RootElement(); 00090 if (elem == NULL) { 00091 return NULL; 00092 } else { 00093 return NodeFromElement(mDoc->RootElement()); 00094 } 00095 }
| XmlNode* pcce::XmlDoc::RootNode | ( | const std::string & | nodeName | ) |
| XmlNode * XmlDoc::CreateRootNode | ( | const std::string & | nodeName | ) |
Definition at line 104 of file XmlDoc.cpp.
References mDoc, NodeFromElement(), PCCE_CHECK, and RootNode().
00104 { 00105 // This isn't thread safe... 00106 XmlNode* root = RootNode(); 00107 PCCE_CHECK(root == NULL, "XmlDoc already has root node"); 00108 00109 auto_ptr< TiXmlElement > element(new TiXmlElement(nodeName)); 00110 TiXmlElement *p = element.get(); 00111 mDoc->LinkEndChild(p); 00112 element.release(); 00113 return NodeFromElement(p); 00114 }
| XmlNode * XmlDoc::NodeFromElement | ( | TiXmlElement * | element | ) |
Definition at line 116 of file XmlDoc.cpp.
References mMap, and PCCE_CHECK.
Referenced by CreateRootNode(), pcce::XmlNode::GetFirstChild(), pcce::XmlNode::GetNextSibling(), pcce::XmlNode::GetParent(), pcce::XmlNode::GetPrevSibling(), and RootNode().
00116 { 00117 PCCE_CHECK(element != NULL, "XmlDoc::NodeFromElement: Element is NULL"); 00118 tXmlWrapperMap::iterator i = mMap.find(element); 00119 if (i == mMap.end()) { 00120 XmlNode value(this, element); 00121 tXmlWrapperPair pair(element, value); 00122 mMap.insert(i, pair); 00123 i = mMap.find(element); 00124 PCCE_CHECK(i != mMap.end(), "XmlDoc: Internal error creating XmlNode"); 00125 } 00126 return &(i->second); 00127 }
TiXmlDocument* pcce::XmlDoc::mDoc [private] |
tXmlWrapperMap pcce::XmlDoc::mMap [private] |
1.5.5