#include "utils.h" #include #include QHostAddress parseHostAddress(const QString &hostAddress) { static const QMap specialHostAddresses { { QStringLiteral("QHostAddress::Null"), QHostAddress::Null }, { QStringLiteral("QHostAddress::Broadcast"), QHostAddress::Broadcast }, { QStringLiteral("QHostAddress::LocalHost"), QHostAddress::LocalHost }, { QStringLiteral("QHostAddress::LocalHostIPv6"), QHostAddress::LocalHostIPv6 }, { QStringLiteral("QHostAddress::Any"), QHostAddress::Any }, { QStringLiteral("QHostAddress::AnyIPv6"), QHostAddress::AnyIPv6 }, { QStringLiteral("QHostAddress::AnyIPv4"), QHostAddress::AnyIPv4 } }; const auto iter = specialHostAddresses.find(hostAddress); if(iter != specialHostAddresses.constEnd()) return *iter; return QHostAddress(hostAddress); } template<> QJsonDocument getJson(const QJsonDocument &document) { return document; } template<> QJsonObject getJson(const QJsonDocument &document) { if(!document.isObject()) throw std::runtime_error("JSON document does not contain an object!"); return document.object(); } template<> QJsonArray getJson(const QJsonDocument &document) { if(!document.isArray()) throw std::runtime_error("JSON document does not contain an object!"); return document.array(); }