summaryrefslogtreecommitdiffstats
path: root/libmultimc/include/fullversionfactory.h
blob: 60e5c983918f010de50a314c792b87ae07918f54 (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
#pragma once
#include <QtCore>

struct FullVersion;
class Rule;

class FullVersionFactory
{
public:
	enum Error
	{
		AllOK, // all parsed OK
		ParseError, // the file was corrupted somehow
		UnsupportedVersion // the file was meant for a launcher version we don't support (yet)
	} m_error;
	QString error_string;

public:
	FullVersionFactory();
	QSharedPointer<FullVersion> parse(QByteArray data);
private:
	QSharedPointer<FullVersion> parse4(QJsonObject root, QSharedPointer<FullVersion> product);
	QList<QSharedPointer<Rule> > parse4rules(QJsonObject & baseObj);
	QStringList legacyWhitelist;
};