[Qt5] Emit signal when api has finished processing all pending work (#8884)

* Fixes #8864

* More elegant solution

* Rerun sample generation

* Fix whitespace that was fixed in merge conflict
This commit is contained in:
Sean Kelly 2021-03-05 12:43:26 -08:00 committed by GitHub
parent 3a40818519
commit a13b222764
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 130 additions and 0 deletions

View File

@ -663,6 +663,12 @@ void {{classname}}::{{nickname}}({{#allParams}}{{#required}}const {{{dataType}}}
connect(worker, &{{prefix}}HttpRequestWorker::on_execution_finished, this, &{{classname}}::{{nickname}}Callback);
connect(this, &{{classname}}::abortRequestsSignal, worker, &QObject::deleteLater);
connect(worker, &QObject::destroyed, [this](){
if(findChildren<{{prefix}}HttpRequestWorker>().count() == 0){
emit allPendingRequestsCompleted();
}
});
worker->execute(&input);
}

View File

@ -87,6 +87,7 @@ signals:
void {{nickname}}SignalEFull({{prefix}}HttpRequestWorker *worker, QNetworkReply::NetworkError error_type, QString error_str);{{/operation}}{{/operations}}
void abortRequestsSignal();
void allPendingRequestsCompleted();
};
{{#cppNamespaceDeclarations}}

View File

@ -238,6 +238,12 @@ void PFXPetApi::addPet(const PFXPet &body) {
connect(worker, &PFXHttpRequestWorker::on_execution_finished, this, &PFXPetApi::addPetCallback);
connect(this, &PFXPetApi::abortRequestsSignal, worker, &QObject::deleteLater);
connect(worker, &QObject::destroyed, [this](){
if(findChildren<PFXHttpRequestWorker>().count() == 0){
emit allPendingRequestsCompleted();
}
});
worker->execute(&input);
}
@ -297,6 +303,12 @@ void PFXPetApi::deletePet(const qint64 &pet_id, const QVariant &api_key) {
connect(worker, &PFXHttpRequestWorker::on_execution_finished, this, &PFXPetApi::deletePetCallback);
connect(this, &PFXPetApi::abortRequestsSignal, worker, &QObject::deleteLater);
connect(worker, &QObject::destroyed, [this](){
if(findChildren<PFXHttpRequestWorker>().count() == 0){
emit allPendingRequestsCompleted();
}
});
worker->execute(&input);
}
@ -422,6 +434,12 @@ void PFXPetApi::findPetsByStatus(const QList<QString> &status) {
connect(worker, &PFXHttpRequestWorker::on_execution_finished, this, &PFXPetApi::findPetsByStatusCallback);
connect(this, &PFXPetApi::abortRequestsSignal, worker, &QObject::deleteLater);
connect(worker, &QObject::destroyed, [this](){
if(findChildren<PFXHttpRequestWorker>().count() == 0){
emit allPendingRequestsCompleted();
}
});
worker->execute(&input);
}
@ -557,6 +575,12 @@ void PFXPetApi::findPetsByTags(const QList<QString> &tags) {
connect(worker, &PFXHttpRequestWorker::on_execution_finished, this, &PFXPetApi::findPetsByTagsCallback);
connect(this, &PFXPetApi::abortRequestsSignal, worker, &QObject::deleteLater);
connect(worker, &QObject::destroyed, [this](){
if(findChildren<PFXHttpRequestWorker>().count() == 0){
emit allPendingRequestsCompleted();
}
});
worker->execute(&input);
}
@ -624,6 +648,12 @@ void PFXPetApi::getPetById(const qint64 &pet_id) {
connect(worker, &PFXHttpRequestWorker::on_execution_finished, this, &PFXPetApi::getPetByIdCallback);
connect(this, &PFXPetApi::abortRequestsSignal, worker, &QObject::deleteLater);
connect(worker, &QObject::destroyed, [this](){
if(findChildren<PFXHttpRequestWorker>().count() == 0){
emit allPendingRequestsCompleted();
}
});
worker->execute(&input);
}
@ -666,6 +696,12 @@ void PFXPetApi::updatePet(const PFXPet &body) {
connect(worker, &PFXHttpRequestWorker::on_execution_finished, this, &PFXPetApi::updatePetCallback);
connect(this, &PFXPetApi::abortRequestsSignal, worker, &QObject::deleteLater);
connect(worker, &QObject::destroyed, [this](){
if(findChildren<PFXHttpRequestWorker>().count() == 0){
emit allPendingRequestsCompleted();
}
});
worker->execute(&input);
}
@ -731,6 +767,12 @@ void PFXPetApi::updatePetWithForm(const qint64 &pet_id, const QVariant &name, co
connect(worker, &PFXHttpRequestWorker::on_execution_finished, this, &PFXPetApi::updatePetWithFormCallback);
connect(this, &PFXPetApi::abortRequestsSignal, worker, &QObject::deleteLater);
connect(worker, &QObject::destroyed, [this](){
if(findChildren<PFXHttpRequestWorker>().count() == 0){
emit allPendingRequestsCompleted();
}
});
worker->execute(&input);
}
@ -796,6 +838,12 @@ void PFXPetApi::uploadFile(const qint64 &pet_id, const QVariant &additional_meta
connect(worker, &PFXHttpRequestWorker::on_execution_finished, this, &PFXPetApi::uploadFileCallback);
connect(this, &PFXPetApi::abortRequestsSignal, worker, &QObject::deleteLater);
connect(worker, &QObject::destroyed, [this](){
if(findChildren<PFXHttpRequestWorker>().count() == 0){
emit allPendingRequestsCompleted();
}
});
worker->execute(&input);
}

View File

@ -165,6 +165,7 @@ signals:
void uploadFileSignalEFull(PFXHttpRequestWorker *worker, QNetworkReply::NetworkError error_type, QString error_str);
void abortRequestsSignal();
void allPendingRequestsCompleted();
};
} // namespace test_namespace

View File

@ -242,6 +242,12 @@ void PFXStoreApi::deleteOrder(const QString &order_id) {
connect(worker, &PFXHttpRequestWorker::on_execution_finished, this, &PFXStoreApi::deleteOrderCallback);
connect(this, &PFXStoreApi::abortRequestsSignal, worker, &QObject::deleteLater);
connect(worker, &QObject::destroyed, [this](){
if(findChildren<PFXHttpRequestWorker>().count() == 0){
emit allPendingRequestsCompleted();
}
});
worker->execute(&input);
}
@ -284,6 +290,12 @@ void PFXStoreApi::getInventory() {
connect(worker, &PFXHttpRequestWorker::on_execution_finished, this, &PFXStoreApi::getInventoryCallback);
connect(this, &PFXStoreApi::abortRequestsSignal, worker, &QObject::deleteLater);
connect(worker, &QObject::destroyed, [this](){
if(findChildren<PFXHttpRequestWorker>().count() == 0){
emit allPendingRequestsCompleted();
}
});
worker->execute(&input);
}
@ -347,6 +359,12 @@ void PFXStoreApi::getOrderById(const qint64 &order_id) {
connect(worker, &PFXHttpRequestWorker::on_execution_finished, this, &PFXStoreApi::getOrderByIdCallback);
connect(this, &PFXStoreApi::abortRequestsSignal, worker, &QObject::deleteLater);
connect(worker, &QObject::destroyed, [this](){
if(findChildren<PFXHttpRequestWorker>().count() == 0){
emit allPendingRequestsCompleted();
}
});
worker->execute(&input);
}
@ -389,6 +407,12 @@ void PFXStoreApi::placeOrder(const PFXOrder &body) {
connect(worker, &PFXHttpRequestWorker::on_execution_finished, this, &PFXStoreApi::placeOrderCallback);
connect(this, &PFXStoreApi::abortRequestsSignal, worker, &QObject::deleteLater);
connect(worker, &QObject::destroyed, [this](){
if(findChildren<PFXHttpRequestWorker>().count() == 0){
emit allPendingRequestsCompleted();
}
});
worker->execute(&input);
}

View File

@ -117,6 +117,7 @@ signals:
void placeOrderSignalEFull(PFXHttpRequestWorker *worker, QNetworkReply::NetworkError error_type, QString error_str);
void abortRequestsSignal();
void allPendingRequestsCompleted();
};
} // namespace test_namespace

View File

@ -238,6 +238,12 @@ void PFXUserApi::createUser(const PFXUser &body) {
connect(worker, &PFXHttpRequestWorker::on_execution_finished, this, &PFXUserApi::createUserCallback);
connect(this, &PFXUserApi::abortRequestsSignal, worker, &QObject::deleteLater);
connect(worker, &QObject::destroyed, [this](){
if(findChildren<PFXHttpRequestWorker>().count() == 0){
emit allPendingRequestsCompleted();
}
});
worker->execute(&input);
}
@ -279,6 +285,12 @@ void PFXUserApi::createUsersWithArrayInput(const QList<PFXUser> &body) {
connect(worker, &PFXHttpRequestWorker::on_execution_finished, this, &PFXUserApi::createUsersWithArrayInputCallback);
connect(this, &PFXUserApi::abortRequestsSignal, worker, &QObject::deleteLater);
connect(worker, &QObject::destroyed, [this](){
if(findChildren<PFXHttpRequestWorker>().count() == 0){
emit allPendingRequestsCompleted();
}
});
worker->execute(&input);
}
@ -320,6 +332,12 @@ void PFXUserApi::createUsersWithListInput(const QList<PFXUser> &body) {
connect(worker, &PFXHttpRequestWorker::on_execution_finished, this, &PFXUserApi::createUsersWithListInputCallback);
connect(this, &PFXUserApi::abortRequestsSignal, worker, &QObject::deleteLater);
connect(worker, &QObject::destroyed, [this](){
if(findChildren<PFXHttpRequestWorker>().count() == 0){
emit allPendingRequestsCompleted();
}
});
worker->execute(&input);
}
@ -373,6 +391,12 @@ void PFXUserApi::deleteUser(const QString &username) {
connect(worker, &PFXHttpRequestWorker::on_execution_finished, this, &PFXUserApi::deleteUserCallback);
connect(this, &PFXUserApi::abortRequestsSignal, worker, &QObject::deleteLater);
connect(worker, &QObject::destroyed, [this](){
if(findChildren<PFXHttpRequestWorker>().count() == 0){
emit allPendingRequestsCompleted();
}
});
worker->execute(&input);
}
@ -426,6 +450,12 @@ void PFXUserApi::getUserByName(const QString &username) {
connect(worker, &PFXHttpRequestWorker::on_execution_finished, this, &PFXUserApi::getUserByNameCallback);
connect(this, &PFXUserApi::abortRequestsSignal, worker, &QObject::deleteLater);
connect(worker, &QObject::destroyed, [this](){
if(findChildren<PFXHttpRequestWorker>().count() == 0){
emit allPendingRequestsCompleted();
}
});
worker->execute(&input);
}
@ -498,6 +528,12 @@ void PFXUserApi::loginUser(const QString &username, const QString &password) {
connect(worker, &PFXHttpRequestWorker::on_execution_finished, this, &PFXUserApi::loginUserCallback);
connect(this, &PFXUserApi::abortRequestsSignal, worker, &QObject::deleteLater);
connect(worker, &QObject::destroyed, [this](){
if(findChildren<PFXHttpRequestWorker>().count() == 0){
emit allPendingRequestsCompleted();
}
});
worker->execute(&input);
}
@ -538,6 +574,12 @@ void PFXUserApi::logoutUser() {
connect(worker, &PFXHttpRequestWorker::on_execution_finished, this, &PFXUserApi::logoutUserCallback);
connect(this, &PFXUserApi::abortRequestsSignal, worker, &QObject::deleteLater);
connect(worker, &QObject::destroyed, [this](){
if(findChildren<PFXHttpRequestWorker>().count() == 0){
emit allPendingRequestsCompleted();
}
});
worker->execute(&input);
}
@ -594,6 +636,12 @@ void PFXUserApi::updateUser(const QString &username, const PFXUser &body) {
connect(worker, &PFXHttpRequestWorker::on_execution_finished, this, &PFXUserApi::updateUserCallback);
connect(this, &PFXUserApi::abortRequestsSignal, worker, &QObject::deleteLater);
connect(worker, &QObject::destroyed, [this](){
if(findChildren<PFXHttpRequestWorker>().count() == 0){
emit allPendingRequestsCompleted();
}
});
worker->execute(&input);
}

View File

@ -159,6 +159,7 @@ signals:
void updateUserSignalEFull(PFXHttpRequestWorker *worker, QNetworkReply::NetworkError error_type, QString error_str);
void abortRequestsSignal();
void allPendingRequestsCompleted();
};
} // namespace test_namespace