diff --git a/src/blackcore/db/databasereader.h b/src/blackcore/db/databasereader.h index 0d5d49287..729424474 100644 --- a/src/blackcore/db/databasereader.h +++ b/src/blackcore/db/databasereader.h @@ -120,7 +120,7 @@ namespace BlackCore protected: CDatabaseReaderConfigList m_config; //!< DB reder configuration - BlackMisc::Network::CUrl m_sharedUrl; //!< URL for checking if alive + BlackMisc::Network::CUrl m_sharedUrl; //!< URL for shared files QString m_statusMessage; //!< Returned status message from watchdog bool m_canConnect = false; //!< Successful connection? mutable QReadWriteLock m_statusLock; //!< Lock diff --git a/src/blackcore/db/icaodatareader.cpp b/src/blackcore/db/icaodatareader.cpp index 3b58078a7..bf5b7b5d6 100644 --- a/src/blackcore/db/icaodatareader.cpp +++ b/src/blackcore/db/icaodatareader.cpp @@ -41,7 +41,8 @@ namespace BlackCore CIcaoDataReader::CIcaoDataReader(QObject *owner, const CDatabaseReaderConfigList &confg) : CDatabaseReader(owner, confg, "CIcaoDataReader") { - // void + // init to avoid threading issues + getBaseUrl(); } CAircraftIcaoCodeList CIcaoDataReader::getAircraftIcaoCodes() const @@ -209,9 +210,9 @@ namespace BlackCore } } - CUrl CIcaoDataReader::getBaseUrl() const + const CUrl &CIcaoDataReader::getBaseUrl() { - const CUrl baseUrl(sApp->getGlobalSetup().getDbIcaoReaderUrl()); + static const CUrl baseUrl(sApp->getGlobalSetup().getDbIcaoReaderUrl()); return baseUrl; } diff --git a/src/blackcore/db/icaodatareader.h b/src/blackcore/db/icaodatareader.h index 21983f944..a219c1485 100644 --- a/src/blackcore/db/icaodatareader.h +++ b/src/blackcore/db/icaodatareader.h @@ -156,7 +156,8 @@ namespace BlackCore void updateReaderUrl(const BlackMisc::Network::CUrl &url); //! Base URL - BlackMisc::Network::CUrl getBaseUrl() const; + //! \threadsafe + static const BlackMisc::Network::CUrl &getBaseUrl(); //! URL BlackMisc::Network::CUrl getAircraftIcaoUrl(bool shared = false) const; diff --git a/src/blackcore/db/modeldatareader.cpp b/src/blackcore/db/modeldatareader.cpp index b0cdd1c32..83dd8d6ea 100644 --- a/src/blackcore/db/modeldatareader.cpp +++ b/src/blackcore/db/modeldatareader.cpp @@ -41,7 +41,8 @@ namespace BlackCore CModelDataReader::CModelDataReader(QObject *owner, const CDatabaseReaderConfigList &config) : CDatabaseReader(owner, config, "CModelDataReader") { - // void + // init to avoid threading issues + getBaseUrl(); } CLiveryList CModelDataReader::getLiveries() const @@ -463,9 +464,9 @@ namespace BlackCore return CDatabaseReader::isChangedUrl(CUrl(), this->getBaseUrl()); } - CUrl CModelDataReader::getBaseUrl() const + const CUrl &CModelDataReader::getBaseUrl() { - const CUrl baseUrl(sApp->getGlobalSetup().getDbModelReaderUrl()); + static const CUrl baseUrl(sApp->getGlobalSetup().getDbModelReaderUrl()); return baseUrl; } diff --git a/src/blackcore/db/modeldatareader.h b/src/blackcore/db/modeldatareader.h index 12106a6f5..a36a02933 100644 --- a/src/blackcore/db/modeldatareader.h +++ b/src/blackcore/db/modeldatareader.h @@ -159,7 +159,8 @@ namespace BlackCore mutable QReadWriteLock m_lockModels; //! Base URL - BlackMisc::Network::CUrl getBaseUrl() const; + //! \threadsafe + static const BlackMisc::Network::CUrl &getBaseUrl(); //! URL livery web service BlackMisc::Network::CUrl getLiveryUrl(bool shared = false) const;