mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-03-22 06:45:37 +08:00
refactor: Directly use shared URL from global setup
Previous we relyed on the watchdog providing a working shared URL (or empty URL if no URL was reachable). This creates some overhead and might not work in all cases because of the time between the call to getWorkingSharedUrl() and the actual network request. Further, not all calls that are fetching data from our servers were using the shared URL from the watchdog anyway. Lastly, this careful checking if the URL is available is only done for the shared URL and not for all the other URLs that are queried by swift.
This commit is contained in:
@@ -723,17 +723,6 @@ namespace BlackCore
|
||||
return m_networkWatchDog && m_networkWatchDog->isSwiftDbAccessible();
|
||||
}
|
||||
|
||||
bool CApplication::hasWorkingSharedUrl() const
|
||||
{
|
||||
return m_networkWatchDog && m_networkWatchDog->hasWorkingSharedUrl();
|
||||
}
|
||||
|
||||
CUrl CApplication::getWorkingSharedUrl() const
|
||||
{
|
||||
if (!m_networkWatchDog || !this->isNetworkAccessible()) { return CUrl(); }
|
||||
return m_networkWatchDog->getWorkingSharedUrl();
|
||||
}
|
||||
|
||||
void CApplication::exit(int retcode)
|
||||
{
|
||||
if (sApp) { instance()->gracefulShutdown(); }
|
||||
|
||||
@@ -453,12 +453,6 @@ namespace BlackCore
|
||||
//! \copydoc BlackCore::Db::CNetworkWatchdog::isSwiftDbAccessible
|
||||
bool isSwiftDbAccessible() const;
|
||||
|
||||
//! \copydoc BlackCore::Db::CNetworkWatchdog::hasWorkingSharedUrl
|
||||
bool hasWorkingSharedUrl() const;
|
||||
|
||||
//! \copydoc BlackCore::Db::CNetworkWatchdog::getWorkingSharedUrl
|
||||
BlackMisc::Network::CUrl getWorkingSharedUrl() const;
|
||||
|
||||
//! Access to access manager
|
||||
//! \remark supposed to be used only in special cases
|
||||
const QNetworkAccessManager *getNetworkAccessManager() const { return m_accessManager; }
|
||||
|
||||
@@ -385,7 +385,7 @@ namespace BlackCore::Db
|
||||
|
||||
CEntityFlags::Entity allEntities = entities & CEntityFlags::AllDbEntitiesNoInfoObjects;
|
||||
CEntityFlags::Entity currentEntity = CEntityFlags::iterateDbEntities(allEntities);
|
||||
const CUrl urlSharedDbdata = CDatabaseReader::getWorkingSharedDbdataDirectoryUrl();
|
||||
const CUrl urlSharedDbdata = CDatabaseReader::getSharedDbdataDirectoryUrl();
|
||||
if (urlSharedDbdata.isEmpty())
|
||||
{
|
||||
CLogMessage(this).warning(u"No working shared URL, cannot request headers");
|
||||
@@ -510,7 +510,7 @@ namespace BlackCore::Db
|
||||
return this->getDbServiceBaseUrl().withAppendedPath("/service");
|
||||
case CDbFlags::SharedInfoOnly:
|
||||
case CDbFlags::Shared:
|
||||
return CDatabaseReader::getWorkingSharedDbdataDirectoryUrl();
|
||||
return CDatabaseReader::getSharedDbdataDirectoryUrl();
|
||||
default:
|
||||
qFatal("Wrong mode");
|
||||
break;
|
||||
@@ -731,10 +731,11 @@ namespace BlackCore::Db
|
||||
return dbUrl;
|
||||
}
|
||||
|
||||
CUrl CDatabaseReader::getWorkingSharedDbdataDirectoryUrl()
|
||||
CUrl CDatabaseReader::getSharedDbdataDirectoryUrl()
|
||||
{
|
||||
const CUrl sharedUrl(sApp->getWorkingSharedUrl());
|
||||
return CGlobalSetup::buildDbDataDirectoryUrl(sharedUrl);
|
||||
const CUrlList sharedUrls = sApp->getGlobalSetup().getSwiftSharedUrls();
|
||||
Q_ASSERT_X(!sharedUrls.empty(), Q_FUNC_INFO, "Need at least one shared URL");
|
||||
return CGlobalSetup::buildDbDataDirectoryUrl(sharedUrls[0]);
|
||||
}
|
||||
|
||||
void CDatabaseReader::cacheHasChanged(CEntityFlags::Entity entities)
|
||||
|
||||
@@ -347,8 +347,8 @@ namespace BlackCore::Db
|
||||
//! DB base URL
|
||||
static const BlackMisc::Network::CUrl &getDbUrl();
|
||||
|
||||
//! Working shared "dbdata" directory URL
|
||||
static BlackMisc::Network::CUrl getWorkingSharedDbdataDirectoryUrl();
|
||||
//! shared "dbdata" directory URL
|
||||
static BlackMisc::Network::CUrl getSharedDbdataDirectoryUrl();
|
||||
|
||||
//! File name for given mode, either php service or shared file name
|
||||
static QString fileNameForMode(BlackMisc::Network::CEntityFlags::Entity entity, BlackMisc::Db::CDbFlags::DataRetrievalModeFlag mode);
|
||||
|
||||
@@ -332,11 +332,6 @@ namespace BlackCore
|
||||
{
|
||||
if (m_shuttingDown) { return CEntityFlags::NoEntity; }
|
||||
if (!sApp || sApp->isShuttingDown()) { return CEntityFlags::NoEntity; }
|
||||
if (!sApp->hasWorkingSharedUrl())
|
||||
{
|
||||
CLogMessage(this).warning(u"Not triggering load of '%1' because no working shared URL") << CEntityFlags::flagToString(whatToRead);
|
||||
return CEntityFlags::NoEntity;
|
||||
}
|
||||
|
||||
CEntityFlags::Entity triggeredRead = CEntityFlags::NoEntity;
|
||||
this->triggerReadOfSharedInfoObjects(); // trigger reload of info objects (for shared)
|
||||
|
||||
@@ -246,9 +246,11 @@ namespace BlackGui::Components
|
||||
const QString sharedUrlTable = toHtmTable(values, 2);
|
||||
ui->lbl_SharedUrls->setText(sharedUrlTable);
|
||||
ui->lbl_SharedUrls->setMinimumHeight(10 + (18 * sharedUrls.size()));
|
||||
const QString currentlyUsedSharedUrl = sGui->getWorkingSharedUrl().toQString();
|
||||
|
||||
const CUrlList urls = sGui->getGlobalSetup().getSwiftSharedUrls();
|
||||
Q_ASSERT_X(!urls.empty(), Q_FUNC_INFO, "Need at least one shared URL");
|
||||
ui->lbl_SharedUrls->setToolTip(
|
||||
currentlyUsedSharedUrl.isEmpty() ? "No shared URL" : "currently used: " + currentlyUsedSharedUrl);
|
||||
urls[0].isEmpty() ? "No shared URL" : "currently used: " + urls[0].toQString());
|
||||
|
||||
m_sharedLastCheck = QDateTime::currentMSecsSinceEpoch();
|
||||
m_sharedValueCheckInProgress = false;
|
||||
|
||||
Reference in New Issue
Block a user