#pragma once

#include <pugixml.hpp>

struct rXmlNode
{
	rXmlNode();
	rXmlNode(const pugi::xml_node &);
	std::shared_ptr<rXmlNode> GetChildren();
	std::shared_ptr<rXmlNode> GetNext();
	std::string GetName();
	std::string GetAttribute( const std::string &name);
	std::string GetNodeContent();

	pugi::xml_node handle;
};

struct rXmlDocument
{
	rXmlDocument();
	rXmlDocument(const rXmlDocument& other) = delete;
	rXmlDocument &operator=(const rXmlDocument& other) = delete;
	void Read(const std::string& data);
	std::shared_ptr<rXmlNode> GetRoot();

	pugi::xml_document handle;
};