diff options
Diffstat (limited to 'lib/csapi/{{base}}.h.mustache')
-rw-r--r-- | lib/csapi/{{base}}.h.mustache | 145 |
1 files changed, 81 insertions, 64 deletions
diff --git a/lib/csapi/{{base}}.h.mustache b/lib/csapi/{{base}}.h.mustache index a9c3a63a..61380ec6 100644 --- a/lib/csapi/{{base}}.h.mustache +++ b/lib/csapi/{{base}}.h.mustache @@ -1,78 +1,95 @@ {{>preamble}} #pragma once -{{#operations}}#include "jobs/basejob.h" -{{/operations}}{{#models}}#include "converters.h" -{{/models}} -{{#imports}}#include {{_}} -{{/imports}} +{{#operations}} +#include "jobs/basejob.h"{{/operations}} +{{#models}} +#include "converters.h"{{/models}} +{{#imports}} +#include {{_}}{{/imports}} + namespace QMatrixClient { -{{#models}} // Data structures -{{# model}}{{#description}} - /// {{_}}{{/description}} +{{#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}} {{>maybeOmittableType}} {{nameCamelCase}}; -{{/vars}}{{#propertyMap}}{{#description}} /// {{_}} -{{/description}} {{>maybeOmittableType}} {{nameCamelCase}}; -{{/propertyMap}} }; - template <> struct JsonObjectConverter<{{name}}> - { - {{#in?}}static void dumpTo(QJsonObject& jo, const {{name}}& pod); - {{/in?}}{{#out?}}static void fillFrom({{^propertyMap}}const QJsonObject&{{/propertyMap - }}{{#propertyMap}}QJsonObject{{/propertyMap}} jo, {{name}}& pod); -{{/out?}} }; -{{/model}} -{{/models}}{{#operations}} // Operations -{{# operation}}{{#summary}} - /// {{summary}}{{#description?}}{{!add a linebreak between summary and description if both exist}} - ///{{/description?}}{{/summary}}{{#description}} - /// {{_}}{{/description}} - class {{camelCaseOperationId}}Job : public BaseJob - { - public:{{#models}} - // Inner data structures -{{# model}}{{#description}} - /// {{_}}{{/description}} - struct {{name}}{{#parents?}} : {{#parents}}{{name}}{{>cjoin}}{{/parents}}{{/parents?}} - { -{{#vars}}{{#description}} /// {{_}} -{{/description}} {{>maybeOmittableType}} {{nameCamelCase}}; -{{/vars}}{{#propertyMap}}{{#description}} /// {{_}} -{{/description}} {{>maybeOmittableType}} {{nameCamelCase}}; -{{/propertyMap}} }; +{{# vars}}{{#description?}} /// {{#description}}{{_}}{{/description}}{{/description?}} + {{>maybeOmittableType}} {{nameCamelCase}}; +{{/ vars}} +{{# propertyMap}} +{{#description?}} /// {{#description}}{{_}}{{/description}}{{/description?}} + {{>maybeOmittableType}} {{nameCamelCase}}; +{{/ propertyMap}} + }; {{/ model}} - // Construction/destruction + // Construction/destruction {{/ models}}{{#allParams?}} - /*! {{summary}}{{#allParams}} - * \param {{nameCamelCase}}{{#description}} - * {{_}}{{/description}}{{/allParams}} - */{{/allParams?}} - explicit {{camelCaseOperationId}}Job({{#allParams}}{{>joinedParamDecl}}{{/allParams}});{{^bodyParams}} + /*! {{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; + /*! 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 + // Result properties {{#allProperties}}{{#description}} - /// {{_}}{{/description}} - {{>maybeCrefType}} {{paramName}}(){{^moveOnly}} const{{/moveOnly}};{{/allProperties}} + /// {{_}}{{/description}} + {{>maybeCrefType}} {{paramName}}(){{^moveOnly}} const{{/moveOnly}};{{/allProperties}} - protected: - Status {{#producesNonJson?}}parseReply(QNetworkReply* reply){{/producesNonJson?}}{{^producesNonJson?}}parseJson(const QJsonDocument& data){{/producesNonJson?}} override; +protected:{{#producesNonJson?}} + Status parseReply(QNetworkReply* reply) override; +{{/producesNonJson?}}{{^producesNonJson?}} + Status parseJson(const QJsonDocument& data) override; +{{/producesNonJson?}} - private: - class Private; - QScopedPointer<Private> d;{{/allProperties?}}{{/normalResponse?}}{{/responses}} - }; -{{/operation}}{{/operations}}{{!skip EOL -}}} // namespace QMatrixClient +private: + class Private; + QScopedPointer<Private> d; +{{/ allProperties?}}{{/normalResponse?}}{{/responses}} +}; +{{/ operation}} +{{/operations}} +} // namespace QMatrixClient |