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:
Lars Toenning
2024-03-12 16:12:15 +01:00
parent 972de0777c
commit d31084db3a
6 changed files with 12 additions and 31 deletions

View File

@@ -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(); }

View File

@@ -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; }

View File

@@ -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)

View File

@@ -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);

View File

@@ -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)

View File

@@ -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;