Ref T161, network watchdog calls ping service

This commit is contained in:
Klaus Basan
2017-09-25 03:44:44 +02:00
parent ad91cecf00
commit e932f08547
4 changed files with 77 additions and 0 deletions

View File

@@ -9,10 +9,13 @@
#include "networkwatchdog.h"
#include "application.h"
#include "blackcore/data/globalsetup.h"
#include "blackmisc/network/networkutils.h"
#include <QNetworkReply>
using namespace BlackMisc;
using namespace BlackMisc::Network;
using namespace BlackCore::Data;
namespace BlackCore
{
@@ -168,6 +171,37 @@ namespace BlackCore
}
}
void CNetworkWatchdog::gracefulShutdown()
{
this->pingDbClientService(PingCompleteShutdown);
}
void CNetworkWatchdog::pingDbClientService(CNetworkWatchdog::PingType type)
{
if (!this->isSwiftDbAccessible()) { return; }
if (!sApp) { return; }
const CGlobalSetup gs = sApp->getGlobalSetup();
if (!gs.wasLoaded()) { return; }
CUrl pingUrl = gs.getDbClientPingServiceUrl();
if (pingUrl.isEmpty()) { return; }
pingUrl.appendQuery("uuid", this->identifier().toUuidString());
pingUrl.appendQuery("application", sApp->getApplicationNameAndVersion());
if (type.testFlag(PingLogoff)) { pingUrl.appendQuery("logoff", "true"); }
if (type.testFlag(PingShutdown)) { pingUrl.appendQuery("shutdown", "true"); }
if (type.testFlag(PingStarted)) { pingUrl.appendQuery("started", "true"); }
sApp->getFromNetwork(pingUrl, { this, &CNetworkWatchdog::replyPingClientService });
}
void CNetworkWatchdog::replyPingClientService(QNetworkReply *nwReply)
{
QScopedPointer<QNetworkReply> nw(nwReply); // delete reply
if (!sApp || sApp->isShuttingDown()) { return; }
const bool ok = nw->error() == QNetworkReply::NoError;
this->setDbAccessibility(ok);
}
void CNetworkWatchdog::triggerChangedSignals(bool oldDbAccessible, bool oldInternetAccessible)
{
if (!this->doWorkCheck()) { return; }