{{>preamble}} #pragma once {{#operations}} #include "jobs/basejob.h"{{/operations}} {{#models}} #include "converters.h"{{/models}} {{#imports}} #include {{_}}{{/imports}} namespace Quotient { {{#models}} // Data structures {{#model}} {{>docCommentShort}} struct {{name}}{{#parents?}} : {{#parents}}{{name}}{{>cjoin}}{{/parents}}{{/parents?}} { {{#vars}} {{>docCommentShort}} {{>maybeOmittableType}} {{nameCamelCase}}; {{/vars}}{{#propertyMap}} {{>docCommentShort}} {{>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}} /*!{{>docCommentSummary}}{{#description}} * {{_}}{{/description}} */ class {{camelCaseOperationId}}Job : public BaseJob { public: {{#models}} // Inner data structures {{#model}} {{>docCommentShort}} struct {{name}}{{#parents?}} : {{#parents}}{{name}}{{>cjoin}}{{/parents}}{{/parents?}} { {{#vars}} {{>docCommentShort}} {{>maybeOmittableType}} {{nameCamelCase}}; {{/vars}} {{#propertyMap}} {{>docCommentShort}} {{>maybeOmittableType}} {{nameCamelCase}}; {{/propertyMap}} }; {{/model}} // Construction/destruction {{/models}} {{^allParams?}} {{#summary}} /// {{summary}} {{/summary}} {{/allParams?}}{{#allParams?}} /*!{{>docCommentSummary}} {{#allParams}} * \param {{nameCamelCase}}{{#description}} * {{_}}{{/description}} {{/allParams}} */ {{/allParams?}} explicit {{camelCaseOperationId}}Job({{#allParams}}{{>joinedParamDecl}}{{/allParams}}); {{^bodyParams}} /*! \brief 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}} {{>docCommentShort}} {{>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 Quotient