{{>preamble}} #pragma once {{#operations}} #include "jobs/basejob.h"{{/operations}} {{#models}} #include "converters.h"{{/models}} {{#imports}} #include {{_}}{{/imports}} namespace QMatrixClient { {{#models}} // Data structures {{# model}} {{#description}}/// {{_}}{{/description}} struct {{name}}{{#parents?}} : {{#parents}}{{name}}{{>cjoin}}{{/parents}}{{/parents?}} { {{# vars}}{{#description?}} /// {{#description}}{{_}}{{/description}}{{/description?}} {{>maybeOmittableType}} {{nameCamelCase}}; {{/ vars}} {{# propertyMap}} {{#description?}} /// {{#description}}{{_}}{{/description}}{{/description?}} {{>maybeOmittableType}} {{nameCamelCase}}; {{/ propertyMap}} }; template <> struct JsonObjectConverter<{{name}}> { {{#in?}}static void dumpTo(QJsonObject& jo, const {{name}}& pod);{{/in?}} {{#out?}}static void fillFrom({{>maybeCrefJsonObject}} jo, {{name}}& pod);{{/out?}}}; {{/ model}} {{/models}} {{#operations}}// Operations {{# operation}} {{#summary}}/// {{summary}}{{/summary}} {{#description?}}/*!{{#description}} * {{_}}{{/description}} */{{/description?}} class {{camelCaseOperationId}}Job : public BaseJob { public:{{#models}} // Inner data structures {{# model}} {{#description?}} /// {{#description}}{{_}}{{/description}}{{/description?}} struct {{name}}{{#parents?}} : {{#parents}}{{name}}{{>cjoin}}{{/parents}}{{/parents?}} { {{# vars}}{{#description?}} /// {{#description}}{{_}}{{/description}}{{/description?}} {{>maybeOmittableType}} {{nameCamelCase}}; {{/ vars}} {{# propertyMap}} {{#description?}} /// {{#description}}{{_}}{{/description}}{{/description?}} {{>maybeOmittableType}} {{nameCamelCase}}; {{/ propertyMap}} }; {{/ model}} // Construction/destruction {{/ models}}{{#allParams?}} /*! {{summary}}{{#allParams}} * \param {{nameCamelCase}}{{#description}} * {{_}}{{/description}}{{/allParams}} */{{/allParams?}} explicit {{camelCaseOperationId}}Job({{#allParams}}{{>joinedParamDecl}}{{/allParams}}); {{^ bodyParams}} /*! Construct a URL without creating a full-fledged job object * * 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}}{{#description}} /// {{_}}{{/description}} {{>maybeCrefType}} {{paramName}}(){{^moveOnly}} const{{/moveOnly}};{{/allProperties}} protected:{{#producesNonJson?}} Status parseReply(QNetworkReply* reply) override; {{/producesNonJson?}}{{^producesNonJson?}} Status parseJson(const QJsonDocument& data) override; {{/producesNonJson?}} private: class Private; QScopedPointer d; {{/ allProperties?}}{{/normalResponse?}}{{/responses}} }; {{/ operation}} {{/operations}} } // namespace QMatrixClient