diff options
Diffstat (limited to 'lib/application-service/definitions/location.h')
-rw-r--r-- | lib/application-service/definitions/location.h | 42 |
1 files changed, 25 insertions, 17 deletions
diff --git a/lib/application-service/definitions/location.h b/lib/application-service/definitions/location.h index 5586cfc6..6801c99f 100644 --- a/lib/application-service/definitions/location.h +++ b/lib/application-service/definitions/location.h @@ -6,25 +6,33 @@ #include "converters.h" -#include <QtCore/QJsonObject> +namespace Quotient { -namespace QMatrixClient -{ - // Data structures +struct ThirdPartyLocation { + /// An alias for a matrix room. + QString alias; - struct ThirdPartyLocation + /// The protocol ID that the third party location is a part of. + QString protocol; + + /// Information used to identify this third party location. + QJsonObject fields; +}; + +template <> +struct JsonObjectConverter<ThirdPartyLocation> { + static void dumpTo(QJsonObject& jo, const ThirdPartyLocation& pod) { - /// An alias for a matrix room. - QString alias; - /// The protocol ID that the third party location is a part of. - QString protocol; - /// Information used to identify this third party location. - QJsonObject fields; - }; - template <> struct JsonObjectConverter<ThirdPartyLocation> + addParam<>(jo, QStringLiteral("alias"), pod.alias); + addParam<>(jo, QStringLiteral("protocol"), pod.protocol); + addParam<>(jo, QStringLiteral("fields"), pod.fields); + } + static void fillFrom(const QJsonObject& jo, ThirdPartyLocation& pod) { - static void dumpTo(QJsonObject& jo, const ThirdPartyLocation& pod); - static void fillFrom(const QJsonObject& jo, ThirdPartyLocation& pod); - }; + fromJson(jo.value("alias"_ls), pod.alias); + fromJson(jo.value("protocol"_ls), pod.protocol); + fromJson(jo.value("fields"_ls), pod.fields); + } +}; -} // namespace QMatrixClient +} // namespace Quotient |