diff --git a/modules/openapi-generator/src/main/resources/cpp-qt5-client/HttpRequest.cpp.mustache b/modules/openapi-generator/src/main/resources/cpp-qt5-client/HttpRequest.cpp.mustache index 933bb0c1698..719de8de5b2 100644 --- a/modules/openapi-generator/src/main/resources/cpp-qt5-client/HttpRequest.cpp.mustache +++ b/modules/openapi-generator/src/main/resources/cpp-qt5-client/HttpRequest.cpp.mustache @@ -96,8 +96,12 @@ void {{prefix}}HttpRequestWorker::setWorkingDirectory(const QString &path) { } } -void {{prefix}}HttpRequestWorker::setCompressionEnabled(bool enable) { - isCompressionEnabled = enable; +void {{prefix}}HttpRequestWorker::setResponseCompressionEnabled(bool enable) { + isResponseCompressionEnabled = enable; +} + +void {{prefix}}HttpRequestWorker::setRequestCompressionEnabled(bool enable) { + isRequestCompressionEnabled = enable; } QString {{prefix}}HttpRequestWorker::http_attribute_encode(QString attribute_name, QString input) { @@ -285,7 +289,11 @@ void {{prefix}}HttpRequestWorker::execute({{prefix}}HttpRequestInput *input) { if (input->request_body.size() > 0) { qDebug() << "got a request body"; request_content.clear(); - request_content.append(input->request_body); + if(!isFormData && (input->var_layout != MULTIPART) && isRequestCompressionEnabled){ + request_content.append(compress(input->request_body, 7, {{prefix}}CompressionType::Gzip)); + } else { + request_content.append(input->request_body); + } } // prepare connection @@ -302,14 +310,19 @@ void {{prefix}}HttpRequestWorker::execute({{prefix}}HttpRequestInput *input) { } else { request.setHeader(QNetworkRequest::ContentTypeHeader, input->headers.value("Content-Type")); } + if(isRequestCompressionEnabled){ + request.setRawHeader("Content-Encoding", "gzip"); + } } else if (input->var_layout == URL_ENCODED) { request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded"); } else if (input->var_layout == MULTIPART) { request.setHeader(QNetworkRequest::ContentTypeHeader, "multipart/form-data; boundary=" + boundary); } - if(isCompressionEnabled){ - request.setRawHeader("Accept-Encoding", "deflate, gzip"); + if(isResponseCompressionEnabled){ + request.setRawHeader("Accept-Encoding", "gzip"); + } else { + request.setRawHeader("Accept-Encoding", "identity"); } if (input->http_method == "GET") { @@ -391,6 +404,8 @@ void {{prefix}}HttpRequestWorker::process_response(QNetworkReply *reply) { auto compressionTypes = encoding.first().split(',', QString::SkipEmptyParts); if(compressionTypes.contains("gzip", Qt::CaseInsensitive) || compressionTypes.contains("deflate", Qt::CaseInsensitive)){ response = decompress(reply->readAll()); + } else if(compressionTypes.contains("identity", Qt::CaseInsensitive)){ + response = reply->readAll(); } } } @@ -402,11 +417,11 @@ void {{prefix}}HttpRequestWorker::process_response(QNetworkReply *reply) { } QByteArray {{prefix}}HttpRequestWorker::decompress(const QByteArray& data){ - QByteArray result; - bool sts = false;{{#contentCompression}} + {{#contentCompression}}QByteArray result; + bool sts = false; do{ z_stream strm{}; - static const int CHUNK_SIZE = 2048; + static const int CHUNK_SIZE = 8*1024; char out[CHUNK_SIZE]; if (data.size() <= 4) { break; @@ -427,8 +442,65 @@ QByteArray {{prefix}}HttpRequestWorker::decompress(const QByteArray& data){ sts = true; } while (strm.avail_out == 0); inflateEnd(&strm); - } while(false);{{/contentCompression}} - return sts ? result : QByteArray(); + } while(false); + return sts ? result : QByteArray();{{/contentCompression}}{{^contentCompression}} + Q_UNUSED(data); + return QByteArray();{{/contentCompression}} +} + +QByteArray {{prefix}}HttpRequestWorker::compress(const QByteArray& input, int level, {{prefix}}CompressionType compressType) { + {{#contentCompression}}QByteArray output; + static const int GZIP_WINDOW_BIT = 15+16; + static const int ZLIB_WINDOW_BIT = 15; + static const int CHUNK_SIZE = 8*1024; + int windowBits; + if( compressType == {{prefix}}CompressionType::Gzip ){ + windowBits = GZIP_WINDOW_BIT; + } else if ( compressType == {{prefix}}CompressionType::Zlib ){ + windowBits = ZLIB_WINDOW_BIT; + } + do{ + int flush = 0, ret = 0; + bool error_sts = false; + z_stream strm{}; + if(input.length() <= 0) { + break; + } + if (deflateInit2(&strm, qMax(-1, qMin(9, level)), Z_DEFLATED, windowBits, 8, Z_DEFAULT_STRATEGY) != Z_OK){ + break; + } + output.clear(); + auto input_data = input.data(); + int input_data_left = input.length(); + do { + int chunk_size = qMin(CHUNK_SIZE, input_data_left); + strm.next_in = (unsigned char*)input_data; + strm.avail_in = chunk_size; + input_data += chunk_size; + input_data_left -= chunk_size; + flush = (input_data_left <= 0 ? Z_FINISH : Z_NO_FLUSH); + do { + char out[CHUNK_SIZE]; + strm.next_out = (unsigned char*)out; + strm.avail_out = CHUNK_SIZE; + ret = deflate(&strm, flush); + if(ret == Z_STREAM_ERROR) { + error_sts = true; + break; + } + auto have = (CHUNK_SIZE - strm.avail_out); + if(have > 0){ + output.append((char*)out, have); + } + } while (strm.avail_out == 0); + } while ((flush != Z_FINISH) && !(error_sts)); + deflateEnd(&strm); + } while(false); + return output;{{/contentCompression}}{{^contentCompression}} + Q_UNUSED(input); + Q_UNUSED(level); + Q_UNUSED(compressType); + return QByteArray();{{/contentCompression}} } QSslConfiguration *{{prefix}}HttpRequestWorker::sslDefaultConfiguration; diff --git a/modules/openapi-generator/src/main/resources/cpp-qt5-client/HttpRequest.h.mustache b/modules/openapi-generator/src/main/resources/cpp-qt5-client/HttpRequest.h.mustache index 9df29d4f24b..dea2d3090ef 100644 --- a/modules/openapi-generator/src/main/resources/cpp-qt5-client/HttpRequest.h.mustache +++ b/modules/openapi-generator/src/main/resources/cpp-qt5-client/HttpRequest.h.mustache @@ -63,21 +63,28 @@ public: void setWorkingDirectory(const QString &path); {{prefix}}HttpFileElement getHttpFileElement(const QString &fieldname = QString()); QByteArray *getMultiPartField(const QString &fieldname = QString()); - void setCompressionEnabled(bool enable); + void setResponseCompressionEnabled(bool enable); + void setRequestCompressionEnabled(bool enable); signals: void on_execution_finished({{prefix}}HttpRequestWorker *worker); private: + enum {{prefix}}CompressionType{ + Zlib, + Gzip + }; QNetworkAccessManager *manager; QMap headers; QMap files; QMap multiPartFields; QString workingDirectory; int _timeOut; - bool isCompressionEnabled; + bool isResponseCompressionEnabled; + bool isRequestCompressionEnabled; void on_manager_timeout(QNetworkReply *reply); void process_response(QNetworkReply *reply); QByteArray decompress(const QByteArray& data); + QByteArray compress(const QByteArray& input, int level, {{prefix}}CompressionType compressType); private slots: void on_manager_finished(QNetworkReply *reply); }; diff --git a/modules/openapi-generator/src/main/resources/cpp-qt5-client/api-body.mustache b/modules/openapi-generator/src/main/resources/cpp-qt5-client/api-body.mustache index 451e05b6a18..311afc60b95 100644 --- a/modules/openapi-generator/src/main/resources/cpp-qt5-client/api-body.mustache +++ b/modules/openapi-generator/src/main/resources/cpp-qt5-client/api-body.mustache @@ -15,7 +15,8 @@ namespace {{this}} { _port(port), _basePath(basePath), _timeOut(timeOut), - _compress(false) {} + isResponseCompressionEnabled(false), + isRequestCompressionEnabled(false) {} {{classname}}::~{{classname}}() { } @@ -48,8 +49,12 @@ void {{classname}}::addHeaders(const QString &key, const QString &value) { defaultHeaders.insert(key, value); } -void {{classname}}::enableContentCompression() { - _compress = true; +void {{classname}}::enableRequestCompression() { + isRequestCompressionEnabled = true; +} + +void {{classname}}::enableResponseCompression() { + isResponseCompressionEnabled = true; } {{#operations}} @@ -113,8 +118,9 @@ void {{classname}}::{{nickname}}({{#allParams}}const {{{dataType}}} &{{paramName {{/collectionFormat}}{{/queryParams}} {{prefix}}HttpRequestWorker *worker = new {{prefix}}HttpRequestWorker(this); worker->setTimeOut(_timeOut); - worker->setWorkingDirectory(_workingDirectory); - worker->setCompressionEnabled(_compress); + worker->setWorkingDirectory(_workingDirectory);{{#contentCompression}} + worker->setResponseCompressionEnabled(isResponseCompressionEnabled); + worker->setRequestCompressionEnabled(isRequestCompressionEnabled);{{/contentCompression}} {{prefix}}HttpRequestInput input(fullPath, "{{httpMethod}}"); {{#formParams}}{{^isFile}} input.add_var("{{baseName}}", ::{{cppNamespace}}::toStringValue({{paramName}}));{{/isFile}}{{#isFile}} diff --git a/modules/openapi-generator/src/main/resources/cpp-qt5-client/api-header.mustache b/modules/openapi-generator/src/main/resources/cpp-qt5-client/api-header.mustache index 07a33698b58..9fdf7b80c61 100644 --- a/modules/openapi-generator/src/main/resources/cpp-qt5-client/api-header.mustache +++ b/modules/openapi-generator/src/main/resources/cpp-qt5-client/api-header.mustache @@ -27,7 +27,8 @@ public: void setTimeOut(const int timeOut); void setWorkingDirectory(const QString &path); void addHeaders(const QString &key, const QString &value); - void enableContentCompression(); + void enableRequestCompression(); + void enableResponseCompression(); {{#operations}}{{#operation}} void {{nickname}}({{#allParams}}const {{{dataType}}} &{{paramName}}{{#hasMore}}, {{/hasMore}}{{/allParams}});{{/operation}}{{/operations}} @@ -38,7 +39,8 @@ private: int _timeOut; QString _workingDirectory; QMap defaultHeaders; - bool _compress; + bool isResponseCompressionEnabled; + bool isRequestCompressionEnabled; {{#operations}}{{#operation}} void {{nickname}}Callback({{prefix}}HttpRequestWorker *worker);{{/operation}}{{/operations}} diff --git a/samples/client/petstore/cpp-qt5/client/PFXHttpRequest.cpp b/samples/client/petstore/cpp-qt5/client/PFXHttpRequest.cpp index 27152077769..091e075291d 100644 --- a/samples/client/petstore/cpp-qt5/client/PFXHttpRequest.cpp +++ b/samples/client/petstore/cpp-qt5/client/PFXHttpRequest.cpp @@ -103,8 +103,12 @@ void PFXHttpRequestWorker::setWorkingDirectory(const QString &path) { } } -void PFXHttpRequestWorker::setCompressionEnabled(bool enable) { - isCompressionEnabled = enable; +void PFXHttpRequestWorker::setResponseCompressionEnabled(bool enable) { + isResponseCompressionEnabled = enable; +} + +void PFXHttpRequestWorker::setRequestCompressionEnabled(bool enable) { + isRequestCompressionEnabled = enable; } QString PFXHttpRequestWorker::http_attribute_encode(QString attribute_name, QString input) { @@ -292,7 +296,11 @@ void PFXHttpRequestWorker::execute(PFXHttpRequestInput *input) { if (input->request_body.size() > 0) { qDebug() << "got a request body"; request_content.clear(); - request_content.append(input->request_body); + if(!isFormData && (input->var_layout != MULTIPART) && isRequestCompressionEnabled){ + request_content.append(compress(input->request_body, 7, PFXCompressionType::Gzip)); + } else { + request_content.append(input->request_body); + } } // prepare connection @@ -309,14 +317,19 @@ void PFXHttpRequestWorker::execute(PFXHttpRequestInput *input) { } else { request.setHeader(QNetworkRequest::ContentTypeHeader, input->headers.value("Content-Type")); } + if(isRequestCompressionEnabled){ + request.setRawHeader("Content-Encoding", "gzip"); + } } else if (input->var_layout == URL_ENCODED) { request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded"); } else if (input->var_layout == MULTIPART) { request.setHeader(QNetworkRequest::ContentTypeHeader, "multipart/form-data; boundary=" + boundary); } - if(isCompressionEnabled){ - request.setRawHeader("Accept-Encoding", "deflate, gzip"); + if(isResponseCompressionEnabled){ + request.setRawHeader("Accept-Encoding", "gzip"); + } else { + request.setRawHeader("Accept-Encoding", "identity"); } if (input->http_method == "GET") { @@ -398,6 +411,8 @@ void PFXHttpRequestWorker::process_response(QNetworkReply *reply) { auto compressionTypes = encoding.first().split(',', QString::SkipEmptyParts); if(compressionTypes.contains("gzip", Qt::CaseInsensitive) || compressionTypes.contains("deflate", Qt::CaseInsensitive)){ response = decompress(reply->readAll()); + } else if(compressionTypes.contains("identity", Qt::CaseInsensitive)){ + response = reply->readAll(); } } } @@ -409,9 +424,17 @@ void PFXHttpRequestWorker::process_response(QNetworkReply *reply) { } QByteArray PFXHttpRequestWorker::decompress(const QByteArray& data){ - QByteArray result; - bool sts = false; - return sts ? result : QByteArray(); + + Q_UNUSED(data); + return QByteArray(); +} + +QByteArray PFXHttpRequestWorker::compress(const QByteArray& input, int level, PFXCompressionType compressType) { + + Q_UNUSED(input); + Q_UNUSED(level); + Q_UNUSED(compressType); + return QByteArray(); } QSslConfiguration *PFXHttpRequestWorker::sslDefaultConfiguration; diff --git a/samples/client/petstore/cpp-qt5/client/PFXHttpRequest.h b/samples/client/petstore/cpp-qt5/client/PFXHttpRequest.h index c7f4c2a7f0b..9f9aeee72fd 100644 --- a/samples/client/petstore/cpp-qt5/client/PFXHttpRequest.h +++ b/samples/client/petstore/cpp-qt5/client/PFXHttpRequest.h @@ -71,21 +71,28 @@ public: void setWorkingDirectory(const QString &path); PFXHttpFileElement getHttpFileElement(const QString &fieldname = QString()); QByteArray *getMultiPartField(const QString &fieldname = QString()); - void setCompressionEnabled(bool enable); + void setResponseCompressionEnabled(bool enable); + void setRequestCompressionEnabled(bool enable); signals: void on_execution_finished(PFXHttpRequestWorker *worker); private: + enum PFXCompressionType{ + Zlib, + Gzip + }; QNetworkAccessManager *manager; QMap headers; QMap files; QMap multiPartFields; QString workingDirectory; int _timeOut; - bool isCompressionEnabled; + bool isResponseCompressionEnabled; + bool isRequestCompressionEnabled; void on_manager_timeout(QNetworkReply *reply); void process_response(QNetworkReply *reply); QByteArray decompress(const QByteArray& data); + QByteArray compress(const QByteArray& input, int level, PFXCompressionType compressType); private slots: void on_manager_finished(QNetworkReply *reply); }; diff --git a/samples/client/petstore/cpp-qt5/client/PFXPetApi.cpp b/samples/client/petstore/cpp-qt5/client/PFXPetApi.cpp index 9230379520c..ca1579559c7 100644 --- a/samples/client/petstore/cpp-qt5/client/PFXPetApi.cpp +++ b/samples/client/petstore/cpp-qt5/client/PFXPetApi.cpp @@ -23,7 +23,8 @@ PFXPetApi::PFXPetApi(const QString &scheme, const QString &host, int port, const _port(port), _basePath(basePath), _timeOut(timeOut), - _compress(false) {} + isResponseCompressionEnabled(false), + isRequestCompressionEnabled(false) {} PFXPetApi::~PFXPetApi() { } @@ -56,8 +57,12 @@ void PFXPetApi::addHeaders(const QString &key, const QString &value) { defaultHeaders.insert(key, value); } -void PFXPetApi::enableContentCompression() { - _compress = true; +void PFXPetApi::enableRequestCompression() { + isRequestCompressionEnabled = true; +} + +void PFXPetApi::enableResponseCompression() { + isResponseCompressionEnabled = true; } void PFXPetApi::addPet(const PFXPet &body) { @@ -71,7 +76,6 @@ void PFXPetApi::addPet(const PFXPet &body) { PFXHttpRequestWorker *worker = new PFXHttpRequestWorker(this); worker->setTimeOut(_timeOut); worker->setWorkingDirectory(_workingDirectory); - worker->setCompressionEnabled(_compress); PFXHttpRequestInput input(fullPath, "POST"); QString output = body.asJson(); @@ -120,7 +124,6 @@ void PFXPetApi::deletePet(const qint64 &pet_id, const QString &api_key) { PFXHttpRequestWorker *worker = new PFXHttpRequestWorker(this); worker->setTimeOut(_timeOut); worker->setWorkingDirectory(_workingDirectory); - worker->setCompressionEnabled(_compress); PFXHttpRequestInput input(fullPath, "DELETE"); if (api_key != nullptr) { @@ -205,7 +208,6 @@ void PFXPetApi::findPetsByStatus(const QList &status) { PFXHttpRequestWorker *worker = new PFXHttpRequestWorker(this); worker->setTimeOut(_timeOut); worker->setWorkingDirectory(_workingDirectory); - worker->setCompressionEnabled(_compress); PFXHttpRequestInput input(fullPath, "GET"); foreach (QString key, this->defaultHeaders.keys()) { input.headers.insert(key, this->defaultHeaders.value(key)); } @@ -296,7 +298,6 @@ void PFXPetApi::findPetsByTags(const QList &tags) { PFXHttpRequestWorker *worker = new PFXHttpRequestWorker(this); worker->setTimeOut(_timeOut); worker->setWorkingDirectory(_workingDirectory); - worker->setCompressionEnabled(_compress); PFXHttpRequestInput input(fullPath, "GET"); foreach (QString key, this->defaultHeaders.keys()) { input.headers.insert(key, this->defaultHeaders.value(key)); } @@ -352,7 +353,6 @@ void PFXPetApi::getPetById(const qint64 &pet_id) { PFXHttpRequestWorker *worker = new PFXHttpRequestWorker(this); worker->setTimeOut(_timeOut); worker->setWorkingDirectory(_workingDirectory); - worker->setCompressionEnabled(_compress); PFXHttpRequestInput input(fullPath, "GET"); foreach (QString key, this->defaultHeaders.keys()) { input.headers.insert(key, this->defaultHeaders.value(key)); } @@ -396,7 +396,6 @@ void PFXPetApi::updatePet(const PFXPet &body) { PFXHttpRequestWorker *worker = new PFXHttpRequestWorker(this); worker->setTimeOut(_timeOut); worker->setWorkingDirectory(_workingDirectory); - worker->setCompressionEnabled(_compress); PFXHttpRequestInput input(fullPath, "PUT"); QString output = body.asJson(); @@ -445,7 +444,6 @@ void PFXPetApi::updatePetWithForm(const qint64 &pet_id, const QString &name, con PFXHttpRequestWorker *worker = new PFXHttpRequestWorker(this); worker->setTimeOut(_timeOut); worker->setWorkingDirectory(_workingDirectory); - worker->setCompressionEnabled(_compress); PFXHttpRequestInput input(fullPath, "POST"); input.add_var("name", ::test_namespace::toStringValue(name)); @@ -493,7 +491,6 @@ void PFXPetApi::uploadFile(const qint64 &pet_id, const QString &additional_metad PFXHttpRequestWorker *worker = new PFXHttpRequestWorker(this); worker->setTimeOut(_timeOut); worker->setWorkingDirectory(_workingDirectory); - worker->setCompressionEnabled(_compress); PFXHttpRequestInput input(fullPath, "POST"); input.add_var("additionalMetadata", ::test_namespace::toStringValue(additional_metadata)); diff --git a/samples/client/petstore/cpp-qt5/client/PFXPetApi.h b/samples/client/petstore/cpp-qt5/client/PFXPetApi.h index 7d2c00175c5..9d31bf46d65 100644 --- a/samples/client/petstore/cpp-qt5/client/PFXPetApi.h +++ b/samples/client/petstore/cpp-qt5/client/PFXPetApi.h @@ -37,7 +37,8 @@ public: void setTimeOut(const int timeOut); void setWorkingDirectory(const QString &path); void addHeaders(const QString &key, const QString &value); - void enableContentCompression(); + void enableRequestCompression(); + void enableResponseCompression(); void addPet(const PFXPet &body); void deletePet(const qint64 &pet_id, const QString &api_key); @@ -55,7 +56,8 @@ private: int _timeOut; QString _workingDirectory; QMap defaultHeaders; - bool _compress; + bool isResponseCompressionEnabled; + bool isRequestCompressionEnabled; void addPetCallback(PFXHttpRequestWorker *worker); void deletePetCallback(PFXHttpRequestWorker *worker); diff --git a/samples/client/petstore/cpp-qt5/client/PFXStoreApi.cpp b/samples/client/petstore/cpp-qt5/client/PFXStoreApi.cpp index 05ee1622f0b..b63ec811f70 100644 --- a/samples/client/petstore/cpp-qt5/client/PFXStoreApi.cpp +++ b/samples/client/petstore/cpp-qt5/client/PFXStoreApi.cpp @@ -23,7 +23,8 @@ PFXStoreApi::PFXStoreApi(const QString &scheme, const QString &host, int port, c _port(port), _basePath(basePath), _timeOut(timeOut), - _compress(false) {} + isResponseCompressionEnabled(false), + isRequestCompressionEnabled(false) {} PFXStoreApi::~PFXStoreApi() { } @@ -56,8 +57,12 @@ void PFXStoreApi::addHeaders(const QString &key, const QString &value) { defaultHeaders.insert(key, value); } -void PFXStoreApi::enableContentCompression() { - _compress = true; +void PFXStoreApi::enableRequestCompression() { + isRequestCompressionEnabled = true; +} + +void PFXStoreApi::enableResponseCompression() { + isResponseCompressionEnabled = true; } void PFXStoreApi::deleteOrder(const QString &order_id) { @@ -74,7 +79,6 @@ void PFXStoreApi::deleteOrder(const QString &order_id) { PFXHttpRequestWorker *worker = new PFXHttpRequestWorker(this); worker->setTimeOut(_timeOut); worker->setWorkingDirectory(_workingDirectory); - worker->setCompressionEnabled(_compress); PFXHttpRequestInput input(fullPath, "DELETE"); foreach (QString key, this->defaultHeaders.keys()) { input.headers.insert(key, this->defaultHeaders.value(key)); } @@ -117,7 +121,6 @@ void PFXStoreApi::getInventory() { PFXHttpRequestWorker *worker = new PFXHttpRequestWorker(this); worker->setTimeOut(_timeOut); worker->setWorkingDirectory(_workingDirectory); - worker->setCompressionEnabled(_compress); PFXHttpRequestInput input(fullPath, "GET"); foreach (QString key, this->defaultHeaders.keys()) { input.headers.insert(key, this->defaultHeaders.value(key)); } @@ -173,7 +176,6 @@ void PFXStoreApi::getOrderById(const qint64 &order_id) { PFXHttpRequestWorker *worker = new PFXHttpRequestWorker(this); worker->setTimeOut(_timeOut); worker->setWorkingDirectory(_workingDirectory); - worker->setCompressionEnabled(_compress); PFXHttpRequestInput input(fullPath, "GET"); foreach (QString key, this->defaultHeaders.keys()) { input.headers.insert(key, this->defaultHeaders.value(key)); } @@ -217,7 +219,6 @@ void PFXStoreApi::placeOrder(const PFXOrder &body) { PFXHttpRequestWorker *worker = new PFXHttpRequestWorker(this); worker->setTimeOut(_timeOut); worker->setWorkingDirectory(_workingDirectory); - worker->setCompressionEnabled(_compress); PFXHttpRequestInput input(fullPath, "POST"); QString output = body.asJson(); diff --git a/samples/client/petstore/cpp-qt5/client/PFXStoreApi.h b/samples/client/petstore/cpp-qt5/client/PFXStoreApi.h index b61fc684b28..c983a15c881 100644 --- a/samples/client/petstore/cpp-qt5/client/PFXStoreApi.h +++ b/samples/client/petstore/cpp-qt5/client/PFXStoreApi.h @@ -36,7 +36,8 @@ public: void setTimeOut(const int timeOut); void setWorkingDirectory(const QString &path); void addHeaders(const QString &key, const QString &value); - void enableContentCompression(); + void enableRequestCompression(); + void enableResponseCompression(); void deleteOrder(const QString &order_id); void getInventory(); @@ -50,7 +51,8 @@ private: int _timeOut; QString _workingDirectory; QMap defaultHeaders; - bool _compress; + bool isResponseCompressionEnabled; + bool isRequestCompressionEnabled; void deleteOrderCallback(PFXHttpRequestWorker *worker); void getInventoryCallback(PFXHttpRequestWorker *worker); diff --git a/samples/client/petstore/cpp-qt5/client/PFXUserApi.cpp b/samples/client/petstore/cpp-qt5/client/PFXUserApi.cpp index 44d8c2dee1f..f5a440adc3b 100644 --- a/samples/client/petstore/cpp-qt5/client/PFXUserApi.cpp +++ b/samples/client/petstore/cpp-qt5/client/PFXUserApi.cpp @@ -23,7 +23,8 @@ PFXUserApi::PFXUserApi(const QString &scheme, const QString &host, int port, con _port(port), _basePath(basePath), _timeOut(timeOut), - _compress(false) {} + isResponseCompressionEnabled(false), + isRequestCompressionEnabled(false) {} PFXUserApi::~PFXUserApi() { } @@ -56,8 +57,12 @@ void PFXUserApi::addHeaders(const QString &key, const QString &value) { defaultHeaders.insert(key, value); } -void PFXUserApi::enableContentCompression() { - _compress = true; +void PFXUserApi::enableRequestCompression() { + isRequestCompressionEnabled = true; +} + +void PFXUserApi::enableResponseCompression() { + isResponseCompressionEnabled = true; } void PFXUserApi::createUser(const PFXUser &body) { @@ -71,7 +76,6 @@ void PFXUserApi::createUser(const PFXUser &body) { PFXHttpRequestWorker *worker = new PFXHttpRequestWorker(this); worker->setTimeOut(_timeOut); worker->setWorkingDirectory(_workingDirectory); - worker->setCompressionEnabled(_compress); PFXHttpRequestInput input(fullPath, "POST"); QString output = body.asJson(); @@ -117,7 +121,6 @@ void PFXUserApi::createUsersWithArrayInput(const QList &body) { PFXHttpRequestWorker *worker = new PFXHttpRequestWorker(this); worker->setTimeOut(_timeOut); worker->setWorkingDirectory(_workingDirectory); - worker->setCompressionEnabled(_compress); PFXHttpRequestInput input(fullPath, "POST"); QJsonDocument doc(::test_namespace::toJsonValue(body).toArray()); @@ -164,7 +167,6 @@ void PFXUserApi::createUsersWithListInput(const QList &body) { PFXHttpRequestWorker *worker = new PFXHttpRequestWorker(this); worker->setTimeOut(_timeOut); worker->setWorkingDirectory(_workingDirectory); - worker->setCompressionEnabled(_compress); PFXHttpRequestInput input(fullPath, "POST"); QJsonDocument doc(::test_namespace::toJsonValue(body).toArray()); @@ -214,7 +216,6 @@ void PFXUserApi::deleteUser(const QString &username) { PFXHttpRequestWorker *worker = new PFXHttpRequestWorker(this); worker->setTimeOut(_timeOut); worker->setWorkingDirectory(_workingDirectory); - worker->setCompressionEnabled(_compress); PFXHttpRequestInput input(fullPath, "DELETE"); foreach (QString key, this->defaultHeaders.keys()) { input.headers.insert(key, this->defaultHeaders.value(key)); } @@ -260,7 +261,6 @@ void PFXUserApi::getUserByName(const QString &username) { PFXHttpRequestWorker *worker = new PFXHttpRequestWorker(this); worker->setTimeOut(_timeOut); worker->setWorkingDirectory(_workingDirectory); - worker->setCompressionEnabled(_compress); PFXHttpRequestInput input(fullPath, "GET"); foreach (QString key, this->defaultHeaders.keys()) { input.headers.insert(key, this->defaultHeaders.value(key)); } @@ -316,7 +316,6 @@ void PFXUserApi::loginUser(const QString &username, const QString &password) { PFXHttpRequestWorker *worker = new PFXHttpRequestWorker(this); worker->setTimeOut(_timeOut); worker->setWorkingDirectory(_workingDirectory); - worker->setCompressionEnabled(_compress); PFXHttpRequestInput input(fullPath, "GET"); foreach (QString key, this->defaultHeaders.keys()) { input.headers.insert(key, this->defaultHeaders.value(key)); } @@ -361,7 +360,6 @@ void PFXUserApi::logoutUser() { PFXHttpRequestWorker *worker = new PFXHttpRequestWorker(this); worker->setTimeOut(_timeOut); worker->setWorkingDirectory(_workingDirectory); - worker->setCompressionEnabled(_compress); PFXHttpRequestInput input(fullPath, "GET"); foreach (QString key, this->defaultHeaders.keys()) { input.headers.insert(key, this->defaultHeaders.value(key)); } @@ -407,7 +405,6 @@ void PFXUserApi::updateUser(const QString &username, const PFXUser &body) { PFXHttpRequestWorker *worker = new PFXHttpRequestWorker(this); worker->setTimeOut(_timeOut); worker->setWorkingDirectory(_workingDirectory); - worker->setCompressionEnabled(_compress); PFXHttpRequestInput input(fullPath, "PUT"); QString output = body.asJson(); diff --git a/samples/client/petstore/cpp-qt5/client/PFXUserApi.h b/samples/client/petstore/cpp-qt5/client/PFXUserApi.h index 4ca836a7895..3b3db0279f9 100644 --- a/samples/client/petstore/cpp-qt5/client/PFXUserApi.h +++ b/samples/client/petstore/cpp-qt5/client/PFXUserApi.h @@ -36,7 +36,8 @@ public: void setTimeOut(const int timeOut); void setWorkingDirectory(const QString &path); void addHeaders(const QString &key, const QString &value); - void enableContentCompression(); + void enableRequestCompression(); + void enableResponseCompression(); void createUser(const PFXUser &body); void createUsersWithArrayInput(const QList &body); @@ -54,7 +55,8 @@ private: int _timeOut; QString _workingDirectory; QMap defaultHeaders; - bool _compress; + bool isResponseCompressionEnabled; + bool isRequestCompressionEnabled; void createUserCallback(PFXHttpRequestWorker *worker); void createUsersWithArrayInputCallback(PFXHttpRequestWorker *worker);