aboutsummaryrefslogtreecommitdiff
path: root/jobs/{{base}}.h.mustache
blob: e19cf03dde535176bec01a6e25176c13fdc26301 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
{{#@filePartial}}preamble{{/@filePartial}}

#pragma once

{{#operations}}#include "../basejob.h"{{/operations}}
{{#imports}}
#include {{.}}
{{/imports}}
{{#models}}#include <QtCore/QJsonValue>{{/models}}{{! FIXME: This should probably go inside imports }}
namespace QMatrixClient
{
{{#models}}    // Data structures
    {{#model}}
    struct {{classname}}
    {
        {{#vars}}
        {{datatype}} {{name}};
        {{/vars}}
        operator QJsonValue() const { return {}; }
    };{{/model}}
{{/models}}
{{#operations}}    // Operations
    {{#operation}}
    class {{#@cap}}{{operationId}}{{/@cap}}Job : public BaseJob
    {
        public:
            {{#@cap}}{{operationId}}{{/@cap}}Job({{#allParams}}{{#avoidCopy?}}const {{dataType}}&{{/avoidCopy?}}{{^avoidCopy?}}{{dataType}}{{/avoidCopy?}} {{paramName}}{{#hasMore}}, {{/hasMore}}{{/allParams}});
        {{#returns?}}
            virtual {{className}}Job();

            {{#returns}}{{type}} {{name}}() const;{{/returns}}

        protected:
            {{#returnFile?}}Status parseReply(QByteArray data) override;{{/returnFile?}}
            {{^returnFile}}Status parseJson(const JsonDocument& data) override;{{/returnFile}}

        private:
            class Private;
            Private* d;
        {{/returns?}}
    };{{/operation}}
{{/operations}}
} // namespace QMatrixClient