#ifndef __XMLPARSER_H__
#define __XMLPARSER_H__

#pragma once

#include <stdio.h>
#include <string>
//extern "C" {
#include "expat/expat.h"
//}

class XmlResultInterface {
public:
	virtual void EnterFillHandle(const char* tagName, const char** attrs);
	virtual void ExitFillHandle(const char* tagName);
};

class XmlParser {
public:
	XmlParser(FILE* const xmlFile, XmlResultInterface* result);
	~XmlParser();
	void Execute();
	void StartElement(const char* element, const char** attrs);
	void StopElement(const char* element);
	const int GetDepth();
private:
	FILE* xmlFile_ /*= nullptr*/;
	XML_Parser parser_ /*= nullptr*/;
	int depth_ /*= 0*/;

	XmlResultInterface* result_ /*= nullptr*/;
};

#endif //__XMLPARSER_H__