summaryrefslogtreecommitdiff
path: root/osframework/source/SexyAppFramework/PropertiesParser.h
blob: cc62c183c5facfb9cc17750f17b92432c2636da9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#ifndef __SEXYAPPFRAMEWORK_NO_PROPERTIES_PARSER__
#ifndef __PROPERTIESPARSER_H__
#define __PROPERTIESPARSER_H__

#include "SexyAppBase.h"

namespace Sexy
{

class XMLParser;

class PropertiesParser
{
public:
	SexyAppBase*			mApp;
	XMLParser*				mXMLParser;
	SexyString				mError;
	bool					mHasFailed;

protected:
	void					Fail(const SexyString& theErrorText);

	bool					ParseSingleElement(SexyString* theString);
	bool					ParseStringArray(StringVector* theStringVector);
	bool					ParseProperties();
	bool					DoParseProperties();

public:
	PropertiesParser(SexyAppBase* theApp);
	virtual ~PropertiesParser();

	bool					ParsePropertiesFile(const std::string& theFilename);
	bool					ParsePropertiesBuffer(const Buffer& theBuffer);
	SexyString				GetErrorText();
};

}

#endif //__PROPERTIESPARSER_H__

#endif // __SEXYAPPFRAMEWORK_NO_PROPERTIES_PARSER__