Skip to content

Commit 32ecb3b

Browse files
committed
[cpp-qt-client]Optimize generated code
- Use const references at function parameters - Do not perform useless initialization of QStrings - Use qDeleteAll
1 parent 8515f5e commit 32ecb3b

67 files changed

Lines changed: 270 additions & 274 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

modules/openapi-generator/src/main/resources/cpp-qt-client/HttpRequest.cpp.mustache

Lines changed: 15 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ namespace {{this}} {
2020
initialize();
2121
}
2222

23-
{{prefix}}HttpRequestInput::{{prefix}}HttpRequestInput(QString v_url_str, QString v_http_method) {
23+
{{prefix}}HttpRequestInput::{{prefix}}HttpRequestInput(const QString &v_url_str, const QString &v_http_method) {
2424
initialize();
2525
url_str = v_url_str;
2626
http_method = v_http_method;
@@ -32,11 +32,11 @@ void {{prefix}}HttpRequestInput::initialize() {
3232
http_method = "GET";
3333
}
3434

35-
void {{prefix}}HttpRequestInput::add_var(QString key, QString value) {
35+
void {{prefix}}HttpRequestInput::add_var(const QString &key, const QString &value) {
3636
vars[key] = value;
3737
}
3838

39-
void {{prefix}}HttpRequestInput::add_file(QString variable_name, QString local_filename, QString request_filename, QString mime_type) {
39+
void {{prefix}}HttpRequestInput::add_file(const QString &variable_name, const QString &local_filename, const QString &request_filename, const QString &mime_type) {
4040
{{prefix}}HttpFileElement file;
4141
file.variable_name = variable_name;
4242
file.local_filename = local_filename;
@@ -58,11 +58,7 @@ void {{prefix}}HttpRequestInput::add_file(QString variable_name, QString local_f
5858
{{prefix}}HttpRequestWorker::~{{prefix}}HttpRequestWorker() {
5959
QObject::disconnect(&timeOutTimer, &QTimer::timeout, nullptr, nullptr);
6060
timeOutTimer.stop();
61-
for (const auto &item : multiPartFields) {
62-
if (item != nullptr) {
63-
delete item;
64-
}
65-
}
61+
qDeleteAll(multiPartFields);
6662
}
6763

6864
QMap<QString, QString> {{prefix}}HttpRequestWorker::getResponseHeaders() const {
@@ -116,10 +112,10 @@ int {{prefix}}HttpRequestWorker::getHttpResponseCode() const{
116112
return httpResponseCode;
117113
}
118114

119-
QString {{prefix}}HttpRequestWorker::http_attribute_encode(QString attribute_name, QString input) {
115+
QString {{prefix}}HttpRequestWorker::http_attribute_encode(const QString &attribute_name, const QString &input) {
120116
// result structure follows RFC 5987
121117
bool need_utf_encoding = false;
122-
QString result = "";
118+
QString result;
123119
QByteArray input_c = input.toLocal8Bit();
124120
char c;
125121
for (int i = 0; i < input_c.length(); i++) {
@@ -143,7 +139,7 @@ QString {{prefix}}HttpRequestWorker::http_attribute_encode(QString attribute_nam
143139
return QString("%1=\"%2\"").arg(attribute_name, result);
144140
}
145141

146-
QString result_utf8 = "";
142+
QString result_utf8;
147143
for (int i = 0; i < input_c.length(); i++) {
148144
c = input_c.at(i);
149145
if ((c >= '0' && c <= '9') || (c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z')) {
@@ -178,15 +174,15 @@ void {{prefix}}HttpRequestWorker::execute({{prefix}}HttpRequestInput *input) {
178174

179175
// prepare request content
180176

181-
QString boundary = "";
177+
QString boundary;
182178

183179
if (input->var_layout == ADDRESS || input->var_layout == URL_ENCODED) {
184180
// variable layout is ADDRESS or URL_ENCODED
185181
186182
if (input->vars.count() > 0) {
187183
bool first = true;
188184
isFormData = true;
189-
for (QString key : input->vars.keys()) {
185+
for (const QString &key : input->vars.keys()) {
190186
if (!first) {
191187
request_content.append("&");
192188
}
@@ -208,11 +204,11 @@ void {{prefix}}HttpRequestWorker::execute({{prefix}}HttpRequestInput *input) {
208204
boundary = QString("__-----------------------%1%2")
209205
.arg(QDateTime::currentSecsSinceEpoch())
210206
.arg(randomGenerator.generate());
211-
QString boundary_delimiter = "--";
212-
QString new_line = "\r\n";
207+
const QString boundary_delimiter = "--";
208+
const QString new_line = "\r\n";
213209
214210
// add variables
215-
for (QString key : input->vars.keys()) {
211+
for (const QString &key : input->vars.keys()) {
216212
// add boundary
217213
request_content.append(boundary_delimiter.toUtf8());
218214
request_content.append(boundary.toUtf8());
@@ -314,7 +310,7 @@ void {{prefix}}HttpRequestWorker::execute({{prefix}}HttpRequestInput *input) {
314310
request.setSslConfiguration(*{{prefix}}HttpRequestWorker::sslDefaultConfiguration);
315311
}
316312
request.setRawHeader("User-Agent", "{{httpUserAgent}}{{^httpUserAgent}}OpenAPI-Generator/{{apiVersion}}/cpp-qt{{/httpUserAgent}}");
317-
for (QString key : input->headers.keys()) { request.setRawHeader(key.toStdString().c_str(), input->headers.value(key).toStdString().c_str()); }
313+
for (const QString &key : input->headers.keys()) { request.setRawHeader(key.toStdString().c_str(), input->headers.value(key).toStdString().c_str()); }
318314

319315
if (request_content.size() > 0 && !isFormData && (input->var_layout != MULTIPART)) {
320316
if (!input->headers.contains("Content-Type")) {
@@ -404,7 +400,7 @@ void {{prefix}}HttpRequestWorker::process_response(QNetworkReply *reply) {
404400
QString contentTypeHdr;
405401
QString contentEncodingHdr;
406402
407-
for(auto hdr: getResponseHeaders().keys()){
403+
for(const auto &hdr: getResponseHeaders().keys()){
408404
if(hdr.compare(QString("Content-Disposition"), Qt::CaseInsensitive) == 0){
409405
contentDispositionHdr = getResponseHeaders().value(hdr);
410406
}
@@ -422,7 +418,7 @@ void {{prefix}}HttpRequestWorker::process_response(QNetworkReply *reply) {
422418
!contentTypeHdr.isEmpty() ? contentTypeHdr.split(QString(";"), Qt::SkipEmptyParts).first() : QString();
423419
if ((contentDisposition.count() > 0) && (contentDisposition.first() == QString("attachment"))) {
424420
QString filename = QUuid::createUuid().toString();
425-
for (const auto &file : contentDisposition) {
421+
for (const auto &file : std::as_const(contentDisposition)) {
426422
if (file.contains(QString("filename"))) {
427423
filename = file.split(QString("="), Qt::SkipEmptyParts).at(1);
428424
break;

modules/openapi-generator/src/main/resources/cpp-qt-client/HttpRequest.h.mustache

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,10 @@ public:
4141
QByteArray request_body;
4242

4343
{{prefix}}HttpRequestInput();
44-
{{prefix}}HttpRequestInput(QString v_url_str, QString v_http_method);
44+
{{prefix}}HttpRequestInput(const QString &v_url_str, const QString &v_http_method);
4545
void initialize();
46-
void add_var(QString key, QString value);
47-
void add_file(QString variable_name, QString local_filename, QString request_filename, QString mime_type);
46+
void add_var(const QString &key, const QString &value);
47+
void add_file(const QString &variable_name, const QString &local_filename, const QString &request_filename, const QString &mime_type);
4848
};
4949

5050
class {{prefix}}HttpRequestWorker : public QObject {
@@ -59,7 +59,7 @@ public:
5959
QString error_str;
6060

6161
QMap<QString, QString> getResponseHeaders() const;
62-
QString http_attribute_encode(QString attribute_name, QString input);
62+
QString http_attribute_encode(const QString &attribute_name, const QString &input);
6363
void execute({{prefix}}HttpRequestInput *input);
6464
static QSslConfiguration *sslDefaultConfiguration;
6565
void setTimeOut(int timeOutMs);

modules/openapi-generator/src/main/resources/cpp-qt-client/README.mustache

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ void Example::exampleFunction1(){
8383
connect(&apiInstance, &{{{classname}}}::{{nickname}}Signal, [&]() {
8484
loop.quit();
8585
});
86-
connect(&apiInstance, &{{{classname}}}::{{nickname}}SignalE, [&](QNetworkReply::NetworkError, QString error_str) {
86+
connect(&apiInstance, &{{{classname}}}::{{nickname}}SignalE, [&](QNetworkReply::NetworkError, const QString &error_str) {
8787
qDebug() << "Error happened while issuing request : " << error_str;
8888
loop.quit();
8989
});

modules/openapi-generator/src/main/resources/cpp-qt-client/api-body.mustache

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -277,7 +277,7 @@ void {{classname}}::{{nickname}}({{#allParams}}{{#required}}const {{{dataType}}}
277277
QString paramString = (pathStyle == "matrix" && {{isExplode}}) ? pathPrefix : pathPrefix+"{{baseName}}"+pathSuffix;
278278
QJsonObject parameter = {{paramName}}{{^required}}.value(){{/required}}.asJsonObject();
279279
qint32 count = 0;
280-
for(const QString& key : parameter.keys()) {
280+
for(const QString &key : parameter.keys()) {
281281
if (count > 0) {
282282
pathDelimiter = (pathStyle == "matrix" && {{isExplode}}) ? ";" : getParamStyleDelimiter(pathStyle, key, {{isExplode}});
283283
paramString.append(pathDelimiter);
@@ -831,7 +831,7 @@ void {{classname}}::{{nickname}}Callback({{prefix}}HttpRequestWorker *worker) {
831831
{{#returnType}}
832832
{{#isArray}}
833833
{{{returnType}}} output;
834-
QString json(worker->response);
834+
const QString &json(worker->response) ;
835835
QByteArray array(json.toStdString().c_str());
836836
QJsonDocument doc = QJsonDocument::fromJson(array);
837837
QJsonArray jsonArray = doc.array();

modules/openapi-generator/src/main/resources/cpp-qt-client/api-header.mustache

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,11 +95,11 @@ Q_SIGNALS:
9595
void {{nickname}}SignalFull({{prefix}}HttpRequestWorker *worker{{#returnType}}, {{{.}}} summary{{/returnType}});{{/operation}}{{/operations}}
9696
{{#operations}}{{#operation}}
9797
Q_DECL_DEPRECATED_X("Use {{nickname}}SignalError() instead")
98-
void {{nickname}}SignalE({{#returnType}}{{{.}}} summary, {{/returnType}}QNetworkReply::NetworkError error_type, QString error_str);
98+
void {{nickname}}SignalE({{#returnType}}{{{.}}} summary, {{/returnType}}QNetworkReply::NetworkError error_type, const QString &error_str);
9999
void {{nickname}}SignalError({{#returnType}}{{{.}}} summary, {{/returnType}}QNetworkReply::NetworkError error_type, const QString &error_str);{{/operation}}{{/operations}}
100100
{{#operations}}{{#operation}}
101101
Q_DECL_DEPRECATED_X("Use {{nickname}}SignalErrorFull() instead")
102-
void {{nickname}}SignalEFull({{prefix}}HttpRequestWorker *worker, QNetworkReply::NetworkError error_type, QString error_str);
102+
void {{nickname}}SignalEFull({{prefix}}HttpRequestWorker *worker, QNetworkReply::NetworkError error_type, const QString &error_str);
103103
void {{nickname}}SignalErrorFull({{prefix}}HttpRequestWorker *worker, QNetworkReply::NetworkError error_type, const QString &error_str);{{/operation}}{{/operations}}
104104

105105
void abortRequestsSignal();

modules/openapi-generator/src/main/resources/cpp-qt-client/enum.mustache

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ class {{prefix}}Enum {
1515
public:
1616
{{prefix}}Enum() {}
1717

18-
{{prefix}}Enum(QString jsonString) {
18+
{{prefix}}Enum(const QString &jsonString) {
1919
fromJson(jsonString);
2020
}
2121

@@ -35,7 +35,7 @@ public:
3535
return obj;
3636
}
3737

38-
virtual void fromJson(QString jsonString) {
38+
virtual void fromJson(const QString &jsonString) {
3939
jstr = jsonString;
4040
}
4141

modules/openapi-generator/src/main/resources/cpp-qt-client/model-body.mustache

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
namespace {{this}} {
1313
{{/cppNamespaceDeclarations}}
1414

15-
{{classname}}::{{classname}}(QString json) {
15+
{{classname}}::{{classname}}(const QString &json) {
1616
this->initializeModel();
1717
this->fromJson(json);
1818
}
@@ -33,7 +33,7 @@ void {{classname}}::initializeModel() {
3333
m_value = e{{classname}}::INVALID_VALUE_OPENAPI_GENERATED;{{/isEnum}}
3434
}
3535

36-
void {{classname}}::fromJson(QString jsonString) {
36+
void {{classname}}::fromJson(const QString &jsonString) {
3737
{{^isEnum}}QByteArray array(jsonString.toStdString().c_str());
3838
QJsonDocument doc = QJsonDocument::fromJson(array);
3939
QJsonObject jsonObject = doc.object();

modules/openapi-generator/src/main/resources/cpp-qt-client/model-header.mustache

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,13 +27,13 @@ namespace {{this}} {
2727
class {{classname}} : public {{prefix}}{{^isEnum}}Object{{/isEnum}}{{#isEnum}}Enum{{/isEnum}} {
2828
public:
2929
{{classname}}();
30-
{{classname}}(QString json);
30+
{{classname}}(const QString &json);
3131
~{{classname}}() override;
3232

3333
QString asJson() const override;
3434
QJson{{^isEnum}}Object{{/isEnum}}{{#isEnum}}Value{{/isEnum}} asJson{{^isEnum}}Object{{/isEnum}}{{#isEnum}}Value{{/isEnum}}() const override;
3535
void fromJson{{^isEnum}}Object{{/isEnum}}{{#isEnum}}Value{{/isEnum}}(QJson{{^isEnum}}Object{{/isEnum}}{{#isEnum}}Value{{/isEnum}} json) override;
36-
void fromJson(QString jsonString) override;
36+
void fromJson(const QString &jsonString) override;
3737
{{^isEnum}}{{#vars}}
3838
{{#deprecated}}Q_DECL_DEPRECATED {{/deprecated}}{{{dataType}}} {{getter}}() const;
3939
{{#deprecated}}Q_DECL_DEPRECATED {{/deprecated}}void {{setter}}(const {{{dataType}}} &{{name}});

modules/openapi-generator/src/main/resources/cpp-qt-client/oauth.cpp.mustache

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ void OauthBase::onFinish(QNetworkReply *rep)
2222
addToken(oauthToken(token, expiresIn, scope, type));
2323
}
2424

25-
oauthToken OauthBase::getToken(QString scope)
25+
oauthToken OauthBase::getToken(const QString &scope)
2626
{
2727
auto tokenIt = m_oauthTokenMap.find(scope);
2828
return tokenIt != m_oauthTokenMap.end() ? tokenIt.value() : oauthToken();
@@ -35,7 +35,7 @@ void OauthBase::addToken(oauthToken token)
3535
3636
}
3737

38-
void OauthBase::removeToken(QString scope)
38+
void OauthBase::removeToken(const QString &scope)
3939
{
4040
m_oauthTokenMap.remove(scope);
4141
}
@@ -59,7 +59,7 @@ void OauthCode::unlink()
5959
disconnect(&m_server, nullptr, nullptr, nullptr);
6060
}
6161

62-
void OauthCode::setVariables(QString authUrl, QString tokenUrl, QString scope, QString state, QString redirectUri, QString clientId, QString clientSecret, QString accessType){
62+
void OauthCode::setVariables(const QString &authUrl, const QString &tokenUrl, const QString &scope, const QString &state, const QString &redirectUri, const QString &clientId, const QString &clientSecret, const QString &accessType){
6363
6464
m_authUrl = QUrl(authUrl);
6565
m_tokenUrl = QUrl(tokenUrl);
@@ -126,7 +126,7 @@ void OauthImplicit::unlink()
126126
m_linked = false;
127127
}
128128

129-
void OauthImplicit::setVariables(QString authUrl, QString scope, QString state, QString redirectUri, QString clientId, QString accessType){
129+
void OauthImplicit::setVariables(const QString &authUrl, const QString &scope, const QString &state, const QString &redirectUri, const QString &clientId, const QString &accessType){
130130
131131
m_authUrl = QUrl(authUrl);
132132
m_scope = scope;
@@ -168,7 +168,7 @@ void OauthCredentials::unlink()
168168
disconnect(this, nullptr, nullptr, nullptr);
169169
}
170170

171-
void OauthCredentials::setVariables(QString tokenUrl, QString scope, QString clientId, QString clientSecret){
171+
void OauthCredentials::setVariables(const QString &tokenUrl, const QString &scope, const QString &clientId, const QString &clientSecret){
172172
173173
m_tokenUrl = QUrl(tokenUrl);
174174
m_scope = scope;
@@ -211,7 +211,7 @@ void OauthPassword::unlink()
211211
disconnect(this, nullptr, nullptr, nullptr);
212212
}
213213

214-
void OauthPassword::setVariables(QString tokenUrl, QString scope, QString clientId, QString clientSecret, QString username, QString password){
214+
void OauthPassword::setVariables(const QString &tokenUrl, const QString &scope, const QString &clientId, const QString &clientSecret, const QString &username, const QString &password){
215215
216216
m_tokenUrl = QUrl(tokenUrl);
217217
m_scope = scope;
@@ -346,4 +346,4 @@ void ReplyServer::read()
346346
347347
{{#cppNamespaceDeclarations}}
348348
} // namespace {{this}}
349-
{{/cppNamespaceDeclarations}}
349+
{{/cppNamespaceDeclarations}}

modules/openapi-generator/src/main/resources/cpp-qt-client/oauth.h.mustache

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ class ReplyServer : public QTcpServer
5353
Q_OBJECT
5454
public:
5555
explicit ReplyServer(QObject *parent = nullptr);
56-
void setReply(QByteArray reply){m_reply = reply;};
56+
void setReply(const QByteArray &reply) {m_reply = reply;};
5757
void run();
5858
private:
5959
QByteArray m_reply;
@@ -74,9 +74,9 @@ class OauthBase : public QObject
7474
Q_OBJECT
7575
public:
7676
OauthBase(QObject* parent = nullptr) : QObject(parent) {};
77-
oauthToken getToken(QString scope);
77+
oauthToken getToken(const QString &scope);
7878
void addToken(oauthToken token);
79-
void removeToken(QString scope);
79+
void removeToken(const QString &scope);
8080
bool linked(){return m_linked;};
8181
virtual void link()=0;
8282
virtual void unlink()=0;
@@ -105,7 +105,7 @@ public:
105105
OauthCode(QObject *parent = nullptr);
106106
void link() override;
107107
void unlink() override;
108-
void setVariables(QString authUrl, QString tokenUrl, QString scope, QString state, QString redirectUri, QString clientId, QString clientSecret, QString accessType = "");
108+
void setVariables(const QString &authUrl, const QString &tokenUrl, const QString &scope, const QString &state, const QString &redirectUri, const QString &clientId, const QString &clientSecret, const QString &accessType = QString());
109109
110110
private:
111111
ReplyServer m_server;
@@ -124,7 +124,7 @@ public:
124124
OauthImplicit(QObject *parent = nullptr);
125125
void link() override;
126126
void unlink() override;
127-
void setVariables(QString authUrl, QString scope, QString state, QString redirectUri, QString clientId, QString accessType = "");
127+
void setVariables(const QString &authUrl, const QString &scope, const QString &state, const QString &redirectUri, const QString &clientId, const QString &accessType = QString());
128128
129129
private:
130130
ReplyServer m_server;
@@ -142,7 +142,7 @@ public:
142142
OauthCredentials(QObject *parent = nullptr);
143143
void link() override;
144144
void unlink() override;
145-
void setVariables(QString tokenUrl, QString scope, QString clientId, QString clientSecret);
145+
void setVariables(const QString &tokenUrl, const QString &scope, const QString &clientId, const QString &clientSecret);
146146
147147
public Q_SLOTS:
148148
void authenticationNeededCallback() override;
@@ -157,7 +157,7 @@ public:
157157
OauthPassword(QObject *parent = nullptr);
158158
void link() override;
159159
void unlink() override;
160-
void setVariables(QString tokenUrl, QString scope, QString clientId, QString clientSecret, QString username, QString password);
160+
void setVariables(const QString &tokenUrl, const QString &scope, const QString &clientId, const QString &clientSecret, const QString &username, const QString &password);
161161
162162
private:
163163
QString m_username, m_password;

0 commit comments

Comments
 (0)