{{#@filePartial}}preamble{{/@filePartial}} #pragma once {{#operations}}#include "jobs/basejob.h" {{/operations}} {{#imports}}#include {{_}} {{/imports}}{{#models}} #include "converters.h" {{/models}} namespace QMatrixClient { {{#models}} // Data structures {{# model}} struct {{name}}{{#parents?}} : {{#parents}}{{name}}{{#@join}}, {{/@join}}{{/parents}}{{/parents?}} { {{#vars}} {{>maybeOmittableType}} {{nameCamelCase}}; {{/vars}} }; {{#in?}} QJsonObject toJson(const {{name}}& pod); {{/in?}}{{#out?}} template <> struct FromJson<{{name}}> { {{name}} operator()(const QJsonValue& jv); }; {{/ out?}}{{/model}} {{/models}}{{#operations}} // Operations {{# operation}} class {{camelCaseOperationId}}Job : public BaseJob { public:{{#models}} // Inner data structures {{# model}} struct {{name}}{{#parents?}} : {{#parents}}{{name}}{{#@join}}, {{/@join}}{{/parents}}{{/parents?}} { {{#vars}} {{>maybeOmittableType}} {{nameCamelCase}}; {{/vars}} }; {{/ model}} // Construction/destruction {{/ models}} explicit {{camelCaseOperationId}}Job({{#allParams}}{{>joinedParamDecl}}{{/allParams}});{{^bodyParams}} /** Construct a URL out of baseUrl and usual parameters passed to * {{camelCaseOperationId}}Job. This function can be used when * a URL for {{camelCaseOperationId}}Job is necessary but the job * itself isn't. */ static QUrl makeRequestUrl(QUrl baseUrl{{#allParams?}}, {{#allParams}}{{>joinedParamDecl}}{{/allParams}}{{/allParams?}}); {{/bodyParams}}{{# responses}}{{#normalResponse?}}{{#allProperties?}} ~{{camelCaseOperationId}}Job() override; // Result properties {{#allProperties}} {{>maybeCrefType}} {{paramName}}(){{^moveOnly}} const{{/moveOnly}};{{/allProperties}} protected: Status {{#producesNonJson?}}parseReply(QNetworkReply* reply){{/producesNonJson?}}{{^producesNonJson?}}parseJson(const QJsonDocument& data){{/producesNonJson?}} override; private: class Private; QScopedPointer d;{{/allProperties?}}{{/normalResponse?}}{{/responses}} }; {{/operation}}{{/operations}}{{!skip EOL }}} // namespace QMatrixClient