-
Notifications
You must be signed in to change notification settings - Fork 0
/
jsonParser.h
50 lines (43 loc) · 1.37 KB
/
jsonParser.h
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
42
43
44
45
46
47
48
49
50
#ifndef JSONPARSER_H
#define JSONPARSER_H
#include <QVector>
#include <QString>
#include <QUrl>
#include <QJsonArray>
#include <QJsonDocument>
#include <QJsonObject>
#include <QHash>
#include "Minecraft.h"
#include "utils.h"
using namespace Sparrow::utils;
namespace Sparrow::Init::JsonParser {
class __declspec(dllexport) ParserResult_minecraftVersion {
public:
QString id;
versionType type;
QUrl url;
QString time;
QString releaseTime;
ParserResult_minecraftVersion(void) {}
ParserResult_minecraftVersion(
const QString& id,
const versionType& type,
const QUrl& url,
const QString& time,
const QString& releaseTime);
};
class __declspec(dllexport) jsonParser
{
private:
static const QMap<QString, versionType> strToVersionType; // Fastly convent version type from QString to versionType
static libraryFile parseLibraryFile(const QJsonObject& libraryItem);
static nativesLibrary parseNativesLibrary(const QJsonObject& nativesLibraryItem);
public:
jsonParser() {}
static QHash<QString, ParserResult_minecraftVersion> parseMinecraftVersions(const QJsonDocument& versionManifest);
static Sparrow::MinecraftVersion parseMinecraftVersion(const QJsonDocument& versionInfo);
static Sparrow::Minecraft parseMinecraft(const QDir& dir);
static QHash<QString, QString> parseLatestVersion(const QJsonDocument& versionManifest);
};
}
#endif // JSONPARSER_H