diff options
author | Kitsune Ral <Kitsune-Ral@users.sf.net> | 2018-05-05 19:36:15 +0900 |
---|---|---|
committer | Kitsune Ral <Kitsune-Ral@users.sf.net> | 2018-05-05 19:36:15 +0900 |
commit | a8d2a73c771f188fc0fdc6351b4923af788317d5 (patch) | |
tree | b2795b93149f7c0ae3cd5005331b650a8eb6fd1e /lib/csapi/{{base}}.h.mustache | |
parent | da16225dfbec9b155c2c299757203f7676ac6ccf (diff) | |
parent | a63838235134b066c092ad98e1f18ff7991c91c1 (diff) | |
download | libquotient-a8d2a73c771f188fc0fdc6351b4923af788317d5.tar.gz libquotient-a8d2a73c771f188fc0fdc6351b4923af788317d5.zip |
Merge branch 'kitsune-gtad'
Diffstat (limited to 'lib/csapi/{{base}}.h.mustache')
-rw-r--r-- | lib/csapi/{{base}}.h.mustache | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/lib/csapi/{{base}}.h.mustache b/lib/csapi/{{base}}.h.mustache new file mode 100644 index 00000000..a9bed527 --- /dev/null +++ b/lib/csapi/{{base}}.h.mustache @@ -0,0 +1,63 @@ +{{#@filePartial}}preamble{{/@filePartial}} +#pragma once + +{{#operations}}#include "jobs/basejob.h" +{{/operations}} +{{#imports}}#include {{_}} +{{/imports}} +{{#allModels}}#include "converters.h" +{{/allModels}} +namespace QMatrixClient +{ +{{#models}} // Data structures +{{# model}} + struct {{name}}{{#parents?}} : {{#parents}}{{name}}{{#@join}}, {{/@join}}{{/parents}}{{/parents?}} + { +{{#vars}} {{dataType.name}} {{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}} {{dataType.name}} {{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}}(){{^noCopy?}} const{{/noCopy?}};{{/allProperties}} + + protected: + Status {{#producesNonJson?}}parseReply(QNetworkReply* reply){{/producesNonJson?}}{{^producesNonJson?}}parseJson(const QJsonDocument& data){{/producesNonJson?}} override; + + private: + class Private; + QScopedPointer<Private> d;{{/allProperties?}}{{/normalResponse?}}{{/responses}} + }; +{{/operation}}{{/operations}}{{!skip EOL +}}} // namespace QMatrixClient |