refs #526, network

* signal when data have been published
* parsing of publishing JSON object
* utility functions
This commit is contained in:
Klaus Basan
2016-01-02 20:44:26 +01:00
parent 6fc39fb2d5
commit c7121e3f9f
10 changed files with 157 additions and 43 deletions

View File

@@ -109,6 +109,17 @@ namespace BlackCore
return cl;
}
QList<QMetaObject::Connection> CWebDataServices::connectDataPublishSignal(QObject *receiver, std::function<void (const CAircraftModelList &, const CAircraftModelList &, const CStatusMessageList &)> dataPublished)
{
Q_ASSERT_X(receiver, Q_FUNC_INFO, "Missing receiver");
QList<QMetaObject::Connection> cl;
if (!m_databaseWriter) { return cl; }
QMetaObject::Connection con = connect(this->m_databaseWriter, &CDatabaseWriter::published, receiver, dataPublished);
Q_ASSERT_X(con, Q_FUNC_INFO, "connect failed publishing signal");
cl.push_back(con);
return cl;
}
CServerList CWebDataServices::getVatsimFsdServers() const
{
if (m_vatsimDataFileReader) { return m_vatsimDataFileReader->getFsdServers(); }
@@ -144,9 +155,9 @@ namespace BlackCore
if (m_vatsimDataFileReader) { m_vatsimDataFileReader->updateWithVatsimDataFileData(aircraftToBeUdpated); }
}
CStatusMessageList CWebDataServices::asyncWriteModel(const CAircraftModel &model) const
CStatusMessageList CWebDataServices::asyncPublishModels(const CAircraftModelList &models) const
{
if (m_databaseWriter) { return m_databaseWriter->asyncWriteModel(model);}
if (m_databaseWriter) { return m_databaseWriter->asyncPublishModels(models);}
return CStatusMessageList();
}

View File

@@ -83,6 +83,12 @@ namespace BlackCore
QObject *receiver,
std::function<void (BlackMisc::Network::CEntityFlags::Entity, BlackMisc::Network::CEntityFlags::ReadState, int)> dataRead) override;
//! \copydoc BlackMisc::Network::IWebDataServicesProvider::connectDataPublishSignal
//! \ingroup webdatareaderprovider
virtual QList<QMetaObject::Connection> connectDataPublishSignal(
QObject *receiver,
std::function<void (const BlackMisc::Simulation::CAircraftModelList &, const BlackMisc::Simulation::CAircraftModelList &, const BlackMisc::CStatusMessageList &)> dataPublished) override;
//! \copydoc BlackMisc::Network::IWebDataServicesProvider::triggerRead
//! \ingroup webdatareaderprovider
virtual BlackMisc::Network::CEntityFlags::Entity triggerRead(BlackMisc::Network::CEntityFlags::Entity whatToRead) override;
@@ -227,15 +233,15 @@ namespace BlackCore
//! \ingroup webdatareaderprovider
virtual void updateWithVatsimDataFileData(BlackMisc::Simulation::CSimulatedAircraft &aircraftToBeUdpated) const override;
//! \copydoc BlackMisc::Network::IWebDataServicesProvider::asyncWriteModel
//! \copydoc BlackMisc::Network::IWebDataServicesProvider::asyncPublishModels
//! \ingroup webdatareaderprovider
virtual BlackMisc::CStatusMessageList asyncWriteModel(const BlackMisc::Simulation::CAircraftModel &model) const override;
virtual BlackMisc::CStatusMessageList asyncPublishModels(const BlackMisc::Simulation::CAircraftModelList &models) const override;
//! \copydoc BlackMisc::Network::IWebDataServicesProvider::canConnectSwiftDb
//! \ingroup webdatareaderprovider
virtual bool canConnectSwiftDb() const override;
//! Save all DB data to JSON files
//! Save all DB data to a JSON files
//! \ingroup webdatareaderprovider
virtual bool writeDbDataToDisk(const QString &dir) const override;