aboutsummaryrefslogtreecommitdiff
path: root/launcher/LauncherMessage.cpp
blob: 4cc56e229c3060244ccc38ca5b61cf5a2510c38d (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
#include "LauncherMessage.h"

#include <QJsonDocument>
#include <QJsonObject>

void LauncherMessage::parse(const QByteArray & input) {
    auto doc = QJsonDocument::fromBinaryData(input);
    auto root = doc.object();

    command = root.value("command").toString();
    args.clear();

    auto parsedArgs = root.value("args").toObject();
    for(auto iter = parsedArgs.begin(); iter != parsedArgs.end(); iter++) {
        args[iter.key()] = iter.value().toString();
    }
}

QByteArray LauncherMessage::serialize() {
    QJsonObject root;
    root.insert("command", command);
    QJsonObject outArgs;
    for (auto iter = args.begin(); iter != args.end(); iter++) {
        outArgs[iter.key()] = iter.value();
    }
    root.insert("args", outArgs);

    QJsonDocument out;
    out.setObject(root);
    return out.toBinaryData();
}