{{>licenseInfo}}
#ifndef _{{prefix}}_{{classname}}_H_
#define _{{prefix}}_{{classname}}_H_

#include "{{prefix}}HttpRequest.h"

{{#imports}}{{{import}}}
{{/imports}}

#include <QObject>

{{#cppNamespaceDeclarations}}
namespace {{this}} {
{{/cppNamespaceDeclarations}}

class {{classname}}: public QObject {
    Q_OBJECT

public:
    {{classname}}();
    {{classname}}(QString host, QString basePath);
    ~{{classname}}();

    QString host;
    QString basePath;
    QMap<QString, QString> defaultHeaders;

    {{#operations}}{{#operation}}void {{nickname}}({{#allParams}}{{{dataType}}}{{#isBodyParam}}&{{/isBodyParam}} {{paramName}}{{#hasMore}}, {{/hasMore}}{{/allParams}});
    {{/operation}}{{/operations}}
private:
    {{#operations}}{{#operation}}void {{nickname}}Callback ({{prefix}}HttpRequestWorker * worker);
    {{/operation}}{{/operations}}
signals:
    {{#operations}}{{#operation}}void {{nickname}}Signal({{#returnType}}{{{returnType}}} summary{{/returnType}});
    {{/operation}}{{/operations}}
    {{#operations}}{{#operation}}void {{nickname}}SignalE({{#returnType}}{{{returnType}}} summary, {{/returnType}}QNetworkReply::NetworkError error_type, QString& error_str);
    {{/operation}}{{/operations}}
    {{#operations}}{{#operation}}void {{nickname}}SignalEFull({{prefix}}HttpRequestWorker* worker, QNetworkReply::NetworkError error_type, QString& error_str);
    {{/operation}}{{/operations}}
};

{{#cppNamespaceDeclarations}}
}
{{/cppNamespaceDeclarations}}
#endif
