refs #597, removed setup loading in CWebDataServices

* no longer needed, as initial load happens in CApplication
* adjusted classes
This commit is contained in:
Klaus Basan
2016-02-23 02:00:33 +01:00
committed by Mathew Sutcliffe
parent c649c1b7ed
commit 4b7ba4f117
7 changed files with 23 additions and 57 deletions

View File

@@ -57,7 +57,7 @@ namespace BlackCore
this->m_networkDataUpdateTimer->start(30 * 1000); this->m_networkDataUpdateTimer->start(30 * 1000);
// 3. data reader, start reading when setup is synced with xx delay // 3. data reader, start reading when setup is synced with xx delay
this->m_webDataReader = new CWebDataServices(CWebReaderFlags::AllReaders, 1000, this); this->m_webDataReader = new CWebDataServices(CWebReaderFlags::AllReaders, this);
this->m_webReaderSignalConnections.append( this->m_webReaderSignalConnections.append(
this->m_webDataReader->connectDataReadSignal( this->m_webDataReader->connectDataReadSignal(
this, // the object here must be the same as in the bind this, // the object here must be the same as in the bind

View File

@@ -66,4 +66,10 @@ namespace BlackCore
cfg.m_audio = CCoreFacadeConfig::LocalInDbusServer; cfg.m_audio = CCoreFacadeConfig::LocalInDbusServer;
return cfg; return cfg;
} }
CCoreFacadeConfig CCoreFacadeConfig::allEmpty()
{
const CCoreFacadeConfig cfg = CCoreFacadeConfig();
return cfg;
}
} // namespace } // namespace

View File

@@ -99,6 +99,9 @@ namespace BlackCore
//! predefined, remote with local audio (e.g. Aduio in GUI) //! predefined, remote with local audio (e.g. Aduio in GUI)
static CCoreFacadeConfig remoteLocalAudio(const QString &dbusBootstrapAddress = ""); static CCoreFacadeConfig remoteLocalAudio(const QString &dbusBootstrapAddress = "");
//! predefined all empty config (normlly used when the real config can only be determined later)
static CCoreFacadeConfig allEmpty();
}; };
} }
#endif // guard #endif // guard

View File

@@ -37,28 +37,18 @@ using namespace BlackMisc::Weather;
namespace BlackCore namespace BlackCore
{ {
CWebDataServices::CWebDataServices( CWebDataServices::CWebDataServices(
CWebReaderFlags::WebReader readerFlags, int autoReadAfterSetupSynchronizedMs, QObject *parent) : CWebReaderFlags::WebReader readerFlags, QObject *parent) :
QObject(parent), m_readerFlags(readerFlags), m_autoReadAfterSetupMs(autoReadAfterSetupSynchronizedMs) QObject(parent), m_readerFlags(readerFlags)
{ {
if (!sApp) { return; } // shutting down
Q_ASSERT_X(QSslSocket::supportsSsl(), Q_FUNC_INFO, "missing SSL support"); Q_ASSERT_X(QSslSocket::supportsSsl(), Q_FUNC_INFO, "missing SSL support");
if (!sApp) { return; } // shutting doen Q_ASSERT_X(sApp->isSetupSyncronized(), Q_FUNC_INFO, "Setup not syncronized");
this->setObjectName("CWebDataReader"); this->setObjectName("CWebDataReader");
this->initReaders(readerFlags); this->initReaders(readerFlags);
this->initWriters(); this->initWriters();
if (autoReadAfterSetupSynchronizedMs >= 0)
{ this->readInBackground(CEntityFlags::AllEntities, 500);
// wait for setup read completion
// in case this was already fired or will never be fired set a time out
if (sApp->isSetupSyncronized())
{
QTimer::singleShot(500, this, &CWebDataServices::ps_setupTimedOut);
}
else
{
//! \todo change !!!!!!
QTimer::singleShot(2500, this, &CWebDataServices::ps_setupTimedOut);
}
}
} }
QList<QMetaObject::Connection> CWebDataServices::connectDataReadSignal(QObject *receiver, std::function<void(CEntityFlags::Entity, CEntityFlags::ReadState, int)> dataRead) QList<QMetaObject::Connection> CWebDataServices::connectDataReadSignal(QObject *receiver, std::function<void(CEntityFlags::Entity, CEntityFlags::ReadState, int)> dataRead)
@@ -437,7 +427,7 @@ namespace BlackCore
const CLogCategoryList &CWebDataServices::getLogCategories() const CLogCategoryList &CWebDataServices::getLogCategories()
{ {
static const BlackMisc::CLogCategoryList cats { CLogCategory("swift.datareader") }; static const BlackMisc::CLogCategoryList cats { CLogCategory("swift.datareader"), CLogCategory::webservice() };
return cats; return cats;
} }
@@ -541,33 +531,9 @@ namespace BlackCore
} }
} }
void CWebDataServices::ps_setupRead(bool success)
{
// setup has been changed
if (success)
{
if (m_autoReadAfterSetupMs >= 0)
{
if (m_initialRead) { return; }
CLogMessage(this).info("Setup synchronized, will trigger read of web service data");
this->readInBackground(CEntityFlags::AllEntities, m_autoReadAfterSetupMs);
}
}
else
{
CLogMessage(this).error("Failed to read setup, will not(!) trigger web data read");
}
}
void CWebDataServices::ps_setupChanged() void CWebDataServices::ps_setupChanged()
{ {
CLogMessage(this).debug() << "Setup changed"; // void
}
void CWebDataServices::ps_setupTimedOut()
{
if (this->m_initialRead) { return; }
this->ps_setupRead(true);
} }
void CWebDataServices::readInBackground(CEntityFlags::Entity entities, int delayMs) void CWebDataServices::readInBackground(CEntityFlags::Entity entities, int delayMs)

View File

@@ -51,8 +51,7 @@ namespace BlackCore
public: public:
//! Constructor //! Constructor
CWebDataServices(CWebReaderFlags::WebReader readerFlags, CWebDataServices(CWebReaderFlags::WebReader readerFlags, QObject *parent = nullptr);
int autoReadAfterSetupSynchronizedMs, QObject *parent = nullptr);
//! Shutdown //! Shutdown
void gracefulShutdown(); void gracefulShutdown();
@@ -155,15 +154,9 @@ namespace BlackCore
//! Read from model reader //! Read from model reader
void ps_readFromSwiftDb(BlackMisc::Network::CEntityFlags::Entity entity, BlackMisc::Network::CEntityFlags::ReadState state, int number); void ps_readFromSwiftDb(BlackMisc::Network::CEntityFlags::Entity entity, BlackMisc::Network::CEntityFlags::ReadState state, int number);
//! Setup has been read //! Setup changed
void ps_setupRead(bool success);
//! Setup has been changed
void ps_setupChanged(); void ps_setupChanged();
//! Setup timed out
void ps_setupTimedOut();
private: private:
//! Init the readers //! Init the readers
void initReaders(CWebReaderFlags::WebReader flags); void initReaders(CWebReaderFlags::WebReader flags);
@@ -172,7 +165,6 @@ namespace BlackCore
void initWriters(); void initWriters();
CWebReaderFlags::WebReader m_readerFlags = CWebReaderFlags::WebReaderFlag::None; //!< which readers are available CWebReaderFlags::WebReader m_readerFlags = CWebReaderFlags::WebReaderFlag::None; //!< which readers are available
int m_autoReadAfterSetupMs = -1; //!< directly read all known readers after setup was syncronized
bool m_initialRead = false; //!< Initial read conducted bool m_initialRead = false; //!< Initial read conducted
BlackMisc::CData<BlackCore::Data::GlobalSetup> m_setup {this, &CWebDataServices::ps_setupChanged}; //!< setup cache BlackMisc::CData<BlackCore::Data::GlobalSetup> m_setup {this, &CWebDataServices::ps_setupChanged}; //!< setup cache

View File

@@ -33,7 +33,7 @@ CSwiftData::CSwiftData(QWidget *parent) :
QMainWindow(parent), QMainWindow(parent),
CIdentifiable(this), CIdentifiable(this),
ui(new Ui::CSwiftData), ui(new Ui::CSwiftData),
m_webDataReader(new CWebDataServices(CWebReaderFlags::AllSwiftDbReaders, 500)) m_webDataReader(new CWebDataServices(CWebReaderFlags::AllSwiftDbReaders, this))
{ {
ui->setupUi(this); ui->setupUi(this);
this->init(); this->init();

View File

@@ -46,8 +46,7 @@ bool CSwiftGuiStdApplication::startHookIn()
runtimeConfig = CCoreFacadeConfig::remoteLocalAudio(dBusAddress); runtimeConfig = CCoreFacadeConfig::remoteLocalAudio(dBusAddress);
break; break;
} }
this->useContexts(runtimeConfig); return this->useContexts(runtimeConfig);
return true;
} }
bool CSwiftGuiStdApplication::parsingHookIn() bool CSwiftGuiStdApplication::parsingHookIn()