#include "stdafx.h" #include "Utilities/rXml.h" #pragma warning(push) #pragma message("TODO: remove wx dependency: ") #pragma warning(disable : 4996) #include #pragma warning(pop) rXmlNode::rXmlNode() { ownPtr = true; handle = reinterpret_cast(new wxXmlNode()); } rXmlNode::rXmlNode(void *ptr) { ownPtr = false; handle = ptr; } rXmlNode::rXmlNode(const rXmlNode& other) { ownPtr = true; handle = reinterpret_cast(new wxXmlNode(*reinterpret_cast(other.handle))); } rXmlNode &rXmlNode::operator=(const rXmlNode& other) { if (ownPtr) { delete reinterpret_cast(handle); } handle = reinterpret_cast(new wxXmlNode(*reinterpret_cast(other.handle))); ownPtr = true; return *this; } rXmlNode::~rXmlNode() { if (ownPtr) { delete reinterpret_cast(handle); } } std::shared_ptr rXmlNode::GetChildren() { wxXmlNode* result = reinterpret_cast(handle)->GetChildren(); if (result) { return std::make_shared(reinterpret_cast(result)); } else { return std::shared_ptr(nullptr); } } std::shared_ptr rXmlNode::GetNext() { wxXmlNode* result = reinterpret_cast(handle)->GetNext(); if (result) { return std::make_shared(reinterpret_cast(result)); } else { return std::shared_ptr(nullptr); } } std::string rXmlNode::GetName() { return fmt::ToUTF8(reinterpret_cast(handle)->GetName()); } std::string rXmlNode::GetAttribute(const std::string &name) { return fmt::ToUTF8(reinterpret_cast(handle)->GetAttribute(fmt::FromUTF8(name))); } std::string rXmlNode::GetNodeContent() { return fmt::ToUTF8(reinterpret_cast(handle)->GetNodeContent()); } rXmlDocument::rXmlDocument() { handle = reinterpret_cast(new wxXmlDocument()); } rXmlDocument::rXmlDocument(const rXmlDocument& other) { handle = reinterpret_cast(new wxXmlDocument(*reinterpret_cast(other.handle))); } rXmlDocument &rXmlDocument::operator = (const rXmlDocument& other) { delete reinterpret_cast(handle); handle = reinterpret_cast(new wxXmlDocument(*reinterpret_cast(other.handle))); return *this; } rXmlDocument::~rXmlDocument() { delete reinterpret_cast(handle); } void rXmlDocument::Load(const std::string & path) { reinterpret_cast(handle)->Load(fmt::FromUTF8(path)); } std::shared_ptr rXmlDocument::GetRoot() { return std::make_shared(reinterpret_cast(reinterpret_cast(handle)->GetRoot())); }