mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-27 11:05:44 +08:00
refactor: Split reader initialization into separate functions
This commit is contained in:
@@ -1019,12 +1019,10 @@ namespace swift::core
|
|||||||
//
|
//
|
||||||
// ---- "metadata" reader, 1 will trigger read directly during init
|
// ---- "metadata" reader, 1 will trigger read directly during init
|
||||||
//
|
//
|
||||||
CDatabaseReaderConfigList dbReaderConfig(m_dbReaderConfig);
|
|
||||||
const CEntityFlags::Entity dbEntities = entities & CEntityFlags::AllDbEntitiesNoInfoObjects;
|
const CEntityFlags::Entity dbEntities = entities & CEntityFlags::AllDbEntitiesNoInfoObjects;
|
||||||
const bool anyDbEntities = CEntityFlags::anySwiftDbEntity(dbEntities); // contains any DB entities
|
const bool anyDbEntities = CEntityFlags::anySwiftDbEntity(dbEntities); // contains any DB entities
|
||||||
const bool needsSharedInfoObjects = dbReaderConfig.needsSharedInfoObjects(dbEntities);
|
const bool needsSharedInfoObjects = m_dbReaderConfig.needsSharedInfoObjects(dbEntities);
|
||||||
const bool needsDbInfoObjects = dbReaderConfig.possiblyReadsFromSwiftDb();
|
const bool needsDbInfoObjects = m_dbReaderConfig.possiblyReadsFromSwiftDb();
|
||||||
bool c = false; // for signal connect
|
|
||||||
|
|
||||||
// 1a. If any DB data, read the info objects upfront
|
// 1a. If any DB data, read the info objects upfront
|
||||||
if (needsDbInfoObjects)
|
if (needsDbInfoObjects)
|
||||||
@@ -1039,118 +1037,34 @@ namespace swift::core
|
|||||||
// 1b. Read info objects if needed
|
// 1b. Read info objects if needed
|
||||||
if (needsSharedInfoObjects) { this->initSharedInfoObjectReaderAndTriggerRead(); }
|
if (needsSharedInfoObjects) { this->initSharedInfoObjectReaderAndTriggerRead(); }
|
||||||
|
|
||||||
|
// ---- data that is read once (triggered via readInBackgroundThread after initReaders finished)
|
||||||
|
|
||||||
// 2. Status and server file, updating the VATSIM related caches
|
// 2. Status and server file, updating the VATSIM related caches
|
||||||
// Read as soon as initReaders is done
|
|
||||||
if (readersNeeded.testFlag(CWebReaderFlags::VatsimStatusReader) ||
|
if (readersNeeded.testFlag(CWebReaderFlags::VatsimStatusReader) ||
|
||||||
readersNeeded.testFlag(CWebReaderFlags::VatsimDataReader) ||
|
readersNeeded.testFlag(CWebReaderFlags::VatsimServerFileReader))
|
||||||
readersNeeded.testFlag(CWebReaderFlags::VatsimMetarReader))
|
|
||||||
{
|
{
|
||||||
m_vatsimStatusReader = new CVatsimStatusFileReader(this);
|
startVatsimStatusFileReader();
|
||||||
c = connect(m_vatsimStatusReader, &CVatsimStatusFileReader::statusFileRead, this,
|
|
||||||
&CWebDataServices::vatsimStatusFileRead, Qt::QueuedConnection);
|
|
||||||
CLogMessage(this).info(u"Trigger read of VATSIM status file");
|
|
||||||
m_vatsimStatusReader->start(QThread::LowPriority);
|
|
||||||
|
|
||||||
// run single shot in main loop, so readInBackgroundThread is not called before initReaders completes
|
|
||||||
const QPointer<CWebDataServices> myself(this);
|
|
||||||
QTimer::singleShot(0, this, [=]() {
|
|
||||||
if (!myself || m_shuttingDown) { return; }
|
|
||||||
if (!sApp || sApp->isShuttingDown()) { return; }
|
|
||||||
m_vatsimStatusReader->readInBackgroundThread();
|
|
||||||
});
|
|
||||||
|
|
||||||
startVatsimServerFileReader();
|
startVatsimServerFileReader();
|
||||||
}
|
}
|
||||||
|
|
||||||
// ---- "normal data", triggerRead will start read, not starting directly
|
// ---- periodically read data (via CThreadedReader/CContinousWorker)
|
||||||
|
|
||||||
// 3. VATSIM data file
|
// 3. VATSIM data file
|
||||||
if (readersNeeded.testFlag(CWebReaderFlags::WebReaderFlag::VatsimDataReader))
|
if (readersNeeded.testFlag(CWebReaderFlags::WebReaderFlag::VatsimDataReader)) { startVatsimDataFileReader(); }
|
||||||
{
|
|
||||||
m_vatsimDataFileReader = new CVatsimDataFileReader(this);
|
|
||||||
c = connect(m_vatsimDataFileReader, &CVatsimDataFileReader::dataFileRead, this,
|
|
||||||
&CWebDataServices::vatsimDataFileRead, Qt::QueuedConnection);
|
|
||||||
Q_ASSERT_X(c, Q_FUNC_INFO, "VATSIM data reader signals");
|
|
||||||
c = connect(m_vatsimDataFileReader, &CVatsimDataFileReader::dataRead, this, &CWebDataServices::dataRead,
|
|
||||||
Qt::QueuedConnection);
|
|
||||||
Q_ASSERT_X(c, Q_FUNC_INFO, "connect failed VATSIM data file");
|
|
||||||
m_entitiesPeriodicallyRead |= CEntityFlags::VatsimDataFile;
|
|
||||||
m_vatsimDataFileReader->start(QThread::LowPriority);
|
|
||||||
m_vatsimDataFileReader->startReader();
|
|
||||||
}
|
|
||||||
|
|
||||||
// 4. VATSIM METAR data
|
// 4. VATSIM METAR data
|
||||||
if (readersNeeded.testFlag(CWebReaderFlags::WebReaderFlag::VatsimMetarReader))
|
if (readersNeeded.testFlag(CWebReaderFlags::WebReaderFlag::VatsimMetarReader)) { startVatsimMetarFileReader(); }
|
||||||
{
|
|
||||||
m_vatsimMetarReader = new CVatsimMetarReader(this);
|
// ---- "normal data", triggerRead will start read, not starting directly
|
||||||
c = connect(m_vatsimMetarReader, &CVatsimMetarReader::metarsRead, this, &CWebDataServices::receivedMetars,
|
|
||||||
Qt::QueuedConnection);
|
|
||||||
Q_ASSERT_X(c, Q_FUNC_INFO, "VATSIM METAR reader signals");
|
|
||||||
c = connect(m_vatsimMetarReader, &CVatsimMetarReader::dataRead, this, &CWebDataServices::dataRead,
|
|
||||||
Qt::QueuedConnection);
|
|
||||||
Q_ASSERT_X(c, Q_FUNC_INFO, "connect failed VATSIM METAR");
|
|
||||||
m_entitiesPeriodicallyRead |= CEntityFlags::MetarEntity;
|
|
||||||
m_vatsimMetarReader->start(QThread::LowPriority);
|
|
||||||
m_vatsimMetarReader->startReader();
|
|
||||||
}
|
|
||||||
|
|
||||||
// 5. ICAO data reader
|
// 5. ICAO data reader
|
||||||
if (readersNeeded.testFlag(CWebReaderFlags::WebReaderFlag::IcaoDataReader))
|
if (readersNeeded.testFlag(CWebReaderFlags::WebReaderFlag::IcaoDataReader)) { startIcaoDataReader(); }
|
||||||
{
|
|
||||||
m_icaoDataReader = new CIcaoDataReader(this, dbReaderConfig);
|
|
||||||
c = connect(m_icaoDataReader, &CIcaoDataReader::dataRead, this, &CWebDataServices::readFromSwiftReader,
|
|
||||||
Qt::QueuedConnection);
|
|
||||||
Q_ASSERT_X(c, Q_FUNC_INFO, "Cannot connect ICAO reader signals");
|
|
||||||
c = connect(m_icaoDataReader, &CIcaoDataReader::dataRead, this, &CWebDataServices::dataRead,
|
|
||||||
Qt::QueuedConnection);
|
|
||||||
Q_ASSERT_X(c, Q_FUNC_INFO, "Cannot connect ICAO reader signals");
|
|
||||||
c = connect(m_icaoDataReader, &CIcaoDataReader::swiftDbDataRead, this, &CWebDataServices::swiftDbDataRead,
|
|
||||||
Qt::QueuedConnection);
|
|
||||||
Q_ASSERT_X(c, Q_FUNC_INFO, "Cannot connect Model reader signals");
|
|
||||||
c = connect(m_icaoDataReader, &CIcaoDataReader::entityDownloadProgress, this,
|
|
||||||
&CWebDataServices::entityDownloadProgress, Qt::QueuedConnection);
|
|
||||||
Q_ASSERT_X(c, Q_FUNC_INFO, "Cannot connect Model reader signals");
|
|
||||||
m_icaoDataReader->start(QThread::LowPriority);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 6. Model reader
|
// 6. Model reader
|
||||||
if (readersNeeded.testFlag(CWebReaderFlags::WebReaderFlag::ModelReader))
|
if (readersNeeded.testFlag(CWebReaderFlags::WebReaderFlag::ModelReader)) { startModelDataReader(); }
|
||||||
{
|
|
||||||
m_modelDataReader = new CModelDataReader(this, dbReaderConfig);
|
|
||||||
c = connect(m_modelDataReader, &CModelDataReader::dataRead, this, &CWebDataServices::readFromSwiftReader,
|
|
||||||
Qt::QueuedConnection);
|
|
||||||
Q_ASSERT_X(c, Q_FUNC_INFO, "Cannot connect Model reader signals");
|
|
||||||
c = connect(m_modelDataReader, &CModelDataReader::dataRead, this, &CWebDataServices::dataRead,
|
|
||||||
Qt::QueuedConnection);
|
|
||||||
Q_ASSERT_X(c, Q_FUNC_INFO, "Cannot connect Model reader signals");
|
|
||||||
c = connect(m_modelDataReader, &CModelDataReader::swiftDbDataRead, this, &CWebDataServices::swiftDbDataRead,
|
|
||||||
Qt::QueuedConnection);
|
|
||||||
Q_ASSERT_X(c, Q_FUNC_INFO, "Cannot connect Model reader signals");
|
|
||||||
c = connect(m_modelDataReader, &CModelDataReader::entityDownloadProgress, this,
|
|
||||||
&CWebDataServices::entityDownloadProgress, Qt::QueuedConnection);
|
|
||||||
Q_ASSERT_X(c, Q_FUNC_INFO, "Cannot connect Model reader signals");
|
|
||||||
m_modelDataReader->start(QThread::LowPriority);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 7. Airport reader
|
// 7. Airport reader
|
||||||
if (readersNeeded.testFlag(CWebReaderFlags::WebReaderFlag::AirportReader))
|
if (readersNeeded.testFlag(CWebReaderFlags::WebReaderFlag::AirportReader)) { startAirportDataReader(); }
|
||||||
{
|
|
||||||
m_airportDataReader = new CAirportDataReader(this, dbReaderConfig);
|
|
||||||
c = connect(m_airportDataReader, &CAirportDataReader::dataRead, this,
|
|
||||||
&CWebDataServices::readFromSwiftReader, Qt::QueuedConnection);
|
|
||||||
Q_ASSERT_X(c, Q_FUNC_INFO, "Cannot connect Model reader signals");
|
|
||||||
c = connect(m_airportDataReader, &CAirportDataReader::dataRead, this, &CWebDataServices::dataRead,
|
|
||||||
Qt::QueuedConnection);
|
|
||||||
Q_ASSERT_X(c, Q_FUNC_INFO, "Cannot connect Model reader signals");
|
|
||||||
c = connect(m_airportDataReader, &CAirportDataReader::swiftDbDataRead, this,
|
|
||||||
&CWebDataServices::swiftDbDataRead, Qt::QueuedConnection);
|
|
||||||
Q_ASSERT_X(c, Q_FUNC_INFO, "Cannot connect Model reader signals");
|
|
||||||
c = connect(m_airportDataReader, &CAirportDataReader::entityDownloadProgress, this,
|
|
||||||
&CWebDataServices::entityDownloadProgress, Qt::QueuedConnection);
|
|
||||||
Q_ASSERT_X(c, Q_FUNC_INFO, "Cannot connect Model reader signals");
|
|
||||||
m_airportDataReader->start(QThread::LowPriority);
|
|
||||||
}
|
|
||||||
Q_UNUSED(c) // signal connect flag
|
|
||||||
|
|
||||||
const QDateTime threshold =
|
const QDateTime threshold =
|
||||||
QDateTime::currentDateTimeUtc().addDays(-365); // country and airports are "semi static"
|
QDateTime::currentDateTimeUtc().addDays(-365); // country and airports are "semi static"
|
||||||
@@ -1159,7 +1073,7 @@ namespace swift::core
|
|||||||
const CEntityFlags::Entity validTsDbEntities =
|
const CEntityFlags::Entity validTsDbEntities =
|
||||||
this->getDbEntitiesWithTimestampNewerThan(threshold); // those caches are not read, but have a timestamp
|
this->getDbEntitiesWithTimestampNewerThan(threshold); // those caches are not read, but have a timestamp
|
||||||
const bool needsSharedInfoObjectsWithoutCache =
|
const bool needsSharedInfoObjectsWithoutCache =
|
||||||
dbReaderConfig.needsSharedInfoObjectsIfCachesEmpty(dbEntities, cachedDbEntities | validTsDbEntities);
|
m_dbReaderConfig.needsSharedInfoObjectsIfCachesEmpty(dbEntities, cachedDbEntities | validTsDbEntities);
|
||||||
if (m_sharedInfoDataReader && !needsSharedInfoObjectsWithoutCache)
|
if (m_sharedInfoDataReader && !needsSharedInfoObjectsWithoutCache)
|
||||||
{
|
{
|
||||||
// demote error message
|
// demote error message
|
||||||
@@ -1168,11 +1082,31 @@ namespace swift::core
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CWebDataServices::startVatsimStatusFileReader()
|
||||||
|
{
|
||||||
|
Q_ASSERT_X(!m_vatsimStatusReader, Q_FUNC_INFO, "VATSIM status file reader already initialized");
|
||||||
|
m_vatsimStatusReader = new CVatsimStatusFileReader(this);
|
||||||
|
connect(m_vatsimStatusReader, &CVatsimStatusFileReader::statusFileRead, this,
|
||||||
|
&CWebDataServices::vatsimStatusFileRead, Qt::QueuedConnection);
|
||||||
|
CLogMessage(this).info(u"Trigger read of VATSIM status file");
|
||||||
|
m_vatsimStatusReader->start(QThread::LowPriority);
|
||||||
|
|
||||||
|
// run single shot in main loop, so readInBackgroundThread is not called before initReaders completes
|
||||||
|
const QPointer<CWebDataServices> myself(this);
|
||||||
|
QTimer::singleShot(0, this, [=]() {
|
||||||
|
if (!myself || m_shuttingDown) { return; }
|
||||||
|
if (!sApp || sApp->isShuttingDown()) { return; }
|
||||||
|
m_vatsimStatusReader->readInBackgroundThread();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
void CWebDataServices::startVatsimServerFileReader()
|
void CWebDataServices::startVatsimServerFileReader()
|
||||||
{
|
{
|
||||||
|
Q_ASSERT_X(!m_vatsimServerFileReader, Q_FUNC_INFO, "VATSIM server file reader already initialized");
|
||||||
m_vatsimServerFileReader = new CVatsimServerFileReader(this);
|
m_vatsimServerFileReader = new CVatsimServerFileReader(this);
|
||||||
connect(m_vatsimServerFileReader, &CVatsimServerFileReader::dataFileRead, this,
|
bool c = connect(m_vatsimServerFileReader, &CVatsimServerFileReader::dataFileRead, this,
|
||||||
&CWebDataServices::vatsimServerFileRead, Qt::QueuedConnection);
|
&CWebDataServices::vatsimServerFileRead, Qt::QueuedConnection);
|
||||||
|
Q_ASSERT_X(c, Q_FUNC_INFO, "VATSIM server reader signals");
|
||||||
CLogMessage(this).info(u"Trigger read of VATSIM server file");
|
CLogMessage(this).info(u"Trigger read of VATSIM server file");
|
||||||
m_vatsimServerFileReader->start(QThread::LowPriority);
|
m_vatsimServerFileReader->start(QThread::LowPriority);
|
||||||
|
|
||||||
@@ -1185,6 +1119,92 @@ namespace swift::core
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CWebDataServices::startVatsimDataFileReader()
|
||||||
|
{
|
||||||
|
Q_ASSERT_X(!m_vatsimDataFileReader, Q_FUNC_INFO, "VATSIM data file reader already initialized");
|
||||||
|
m_vatsimDataFileReader = new CVatsimDataFileReader(this);
|
||||||
|
bool c = connect(m_vatsimDataFileReader, &CVatsimDataFileReader::dataFileRead, this,
|
||||||
|
&CWebDataServices::vatsimDataFileRead, Qt::QueuedConnection);
|
||||||
|
Q_ASSERT_X(c, Q_FUNC_INFO, "VATSIM data reader signals");
|
||||||
|
c = connect(m_vatsimDataFileReader, &CVatsimDataFileReader::dataRead, this, &CWebDataServices::dataRead,
|
||||||
|
Qt::QueuedConnection);
|
||||||
|
Q_ASSERT_X(c, Q_FUNC_INFO, "connect failed VATSIM data file");
|
||||||
|
m_entitiesPeriodicallyRead |= CEntityFlags::VatsimDataFile;
|
||||||
|
m_vatsimDataFileReader->start(QThread::LowPriority);
|
||||||
|
m_vatsimDataFileReader->startReader();
|
||||||
|
}
|
||||||
|
|
||||||
|
void CWebDataServices::startVatsimMetarFileReader()
|
||||||
|
{
|
||||||
|
Q_ASSERT_X(!m_vatsimMetarReader, Q_FUNC_INFO, "VATSIM METAR file reader already initialized");
|
||||||
|
m_vatsimMetarReader = new CVatsimMetarReader(this);
|
||||||
|
bool c = connect(m_vatsimMetarReader, &CVatsimMetarReader::metarsRead, this, &CWebDataServices::receivedMetars,
|
||||||
|
Qt::QueuedConnection);
|
||||||
|
Q_ASSERT_X(c, Q_FUNC_INFO, "VATSIM METAR reader signals");
|
||||||
|
c = connect(m_vatsimMetarReader, &CVatsimMetarReader::dataRead, this, &CWebDataServices::dataRead,
|
||||||
|
Qt::QueuedConnection);
|
||||||
|
Q_ASSERT_X(c, Q_FUNC_INFO, "connect failed VATSIM METAR");
|
||||||
|
m_entitiesPeriodicallyRead |= CEntityFlags::MetarEntity;
|
||||||
|
m_vatsimMetarReader->start(QThread::LowPriority);
|
||||||
|
m_vatsimMetarReader->startReader();
|
||||||
|
}
|
||||||
|
|
||||||
|
void CWebDataServices::startIcaoDataReader()
|
||||||
|
{
|
||||||
|
Q_ASSERT_X(!m_icaoDataReader, Q_FUNC_INFO, "ICAO data reader already initialized");
|
||||||
|
m_icaoDataReader = new CIcaoDataReader(this, m_dbReaderConfig);
|
||||||
|
bool c = connect(m_icaoDataReader, &CIcaoDataReader::dataRead, this, &CWebDataServices::readFromSwiftReader,
|
||||||
|
Qt::QueuedConnection);
|
||||||
|
Q_ASSERT_X(c, Q_FUNC_INFO, "Cannot connect ICAO reader signals");
|
||||||
|
c = connect(m_icaoDataReader, &CIcaoDataReader::dataRead, this, &CWebDataServices::dataRead,
|
||||||
|
Qt::QueuedConnection);
|
||||||
|
Q_ASSERT_X(c, Q_FUNC_INFO, "Cannot connect ICAO reader signals");
|
||||||
|
c = connect(m_icaoDataReader, &CIcaoDataReader::swiftDbDataRead, this, &CWebDataServices::swiftDbDataRead,
|
||||||
|
Qt::QueuedConnection);
|
||||||
|
Q_ASSERT_X(c, Q_FUNC_INFO, "Cannot connect Model reader signals");
|
||||||
|
c = connect(m_icaoDataReader, &CIcaoDataReader::entityDownloadProgress, this,
|
||||||
|
&CWebDataServices::entityDownloadProgress, Qt::QueuedConnection);
|
||||||
|
Q_ASSERT_X(c, Q_FUNC_INFO, "Cannot connect Model reader signals");
|
||||||
|
m_icaoDataReader->start(QThread::LowPriority);
|
||||||
|
}
|
||||||
|
|
||||||
|
void CWebDataServices::startModelDataReader()
|
||||||
|
{
|
||||||
|
Q_ASSERT_X(!m_modelDataReader, Q_FUNC_INFO, "Model data reader already initialized");
|
||||||
|
m_modelDataReader = new CModelDataReader(this, m_dbReaderConfig);
|
||||||
|
bool c = connect(m_modelDataReader, &CModelDataReader::dataRead, this, &CWebDataServices::readFromSwiftReader,
|
||||||
|
Qt::QueuedConnection);
|
||||||
|
Q_ASSERT_X(c, Q_FUNC_INFO, "Cannot connect Model reader signals");
|
||||||
|
c = connect(m_modelDataReader, &CModelDataReader::dataRead, this, &CWebDataServices::dataRead,
|
||||||
|
Qt::QueuedConnection);
|
||||||
|
Q_ASSERT_X(c, Q_FUNC_INFO, "Cannot connect Model reader signals");
|
||||||
|
c = connect(m_modelDataReader, &CModelDataReader::swiftDbDataRead, this, &CWebDataServices::swiftDbDataRead,
|
||||||
|
Qt::QueuedConnection);
|
||||||
|
Q_ASSERT_X(c, Q_FUNC_INFO, "Cannot connect Model reader signals");
|
||||||
|
c = connect(m_modelDataReader, &CModelDataReader::entityDownloadProgress, this,
|
||||||
|
&CWebDataServices::entityDownloadProgress, Qt::QueuedConnection);
|
||||||
|
Q_ASSERT_X(c, Q_FUNC_INFO, "Cannot connect Model reader signals");
|
||||||
|
m_modelDataReader->start(QThread::LowPriority);
|
||||||
|
}
|
||||||
|
|
||||||
|
void CWebDataServices::startAirportDataReader()
|
||||||
|
{
|
||||||
|
m_airportDataReader = new CAirportDataReader(this, m_dbReaderConfig);
|
||||||
|
bool c = connect(m_airportDataReader, &CAirportDataReader::dataRead, this,
|
||||||
|
&CWebDataServices::readFromSwiftReader, Qt::QueuedConnection);
|
||||||
|
Q_ASSERT_X(c, Q_FUNC_INFO, "Cannot connect Model reader signals");
|
||||||
|
c = connect(m_airportDataReader, &CAirportDataReader::dataRead, this, &CWebDataServices::dataRead,
|
||||||
|
Qt::QueuedConnection);
|
||||||
|
Q_ASSERT_X(c, Q_FUNC_INFO, "Cannot connect Model reader signals");
|
||||||
|
c = connect(m_airportDataReader, &CAirportDataReader::swiftDbDataRead, this, &CWebDataServices::swiftDbDataRead,
|
||||||
|
Qt::QueuedConnection);
|
||||||
|
Q_ASSERT_X(c, Q_FUNC_INFO, "Cannot connect Model reader signals");
|
||||||
|
c = connect(m_airportDataReader, &CAirportDataReader::entityDownloadProgress, this,
|
||||||
|
&CWebDataServices::entityDownloadProgress, Qt::QueuedConnection);
|
||||||
|
Q_ASSERT_X(c, Q_FUNC_INFO, "Cannot connect Model reader signals");
|
||||||
|
m_airportDataReader->start(QThread::LowPriority);
|
||||||
|
}
|
||||||
|
|
||||||
void CWebDataServices::initDbInfoObjectReaderAndTriggerRead()
|
void CWebDataServices::initDbInfoObjectReaderAndTriggerRead()
|
||||||
{
|
{
|
||||||
// run in correct thread
|
// run in correct thread
|
||||||
|
|||||||
@@ -586,9 +586,27 @@ namespace swift::core
|
|||||||
//! VATSIM server file has been read
|
//! VATSIM server file has been read
|
||||||
void vatsimServerFileRead(int bytes);
|
void vatsimServerFileRead(int bytes);
|
||||||
|
|
||||||
|
//! Initialize and start VATSIM status file reader
|
||||||
|
void startVatsimStatusFileReader();
|
||||||
|
|
||||||
//! Initialize and start VATSIM server file reader
|
//! Initialize and start VATSIM server file reader
|
||||||
void startVatsimServerFileReader();
|
void startVatsimServerFileReader();
|
||||||
|
|
||||||
|
//! Initialize and start VATSIM data file reader
|
||||||
|
void startVatsimDataFileReader();
|
||||||
|
|
||||||
|
//! Initialize and start VATSIM data file reader
|
||||||
|
void startVatsimMetarFileReader();
|
||||||
|
|
||||||
|
//! Initialize and start ICAO data reader
|
||||||
|
void startIcaoDataReader();
|
||||||
|
|
||||||
|
//! Initialize and start model data reader
|
||||||
|
void startModelDataReader();
|
||||||
|
|
||||||
|
//! Initialize and start airport data reader
|
||||||
|
void startAirportDataReader();
|
||||||
|
|
||||||
//! Read finished from reader
|
//! Read finished from reader
|
||||||
void readFromSwiftReader(swift::misc::network::CEntityFlags::Entity entities,
|
void readFromSwiftReader(swift::misc::network::CEntityFlags::Entity entities,
|
||||||
swift::misc::network::CEntityFlags::ReadState state, int number, const QUrl &url);
|
swift::misc::network::CEntityFlags::ReadState state, int number, const QUrl &url);
|
||||||
|
|||||||
Reference in New Issue
Block a user