Make simulator listeners safe against multiple starts

refs #909
This commit is contained in:
Roland Winklmeier
2017-03-25 18:57:57 +01:00
committed by Mathew Sutcliffe
parent 0eaab1753d
commit aafe211b5c
8 changed files with 45 additions and 23 deletions

View File

@@ -448,13 +448,13 @@ namespace BlackSimPlugin
});
}
void CSimulatorFs9Listener::start()
void CSimulatorFs9Listener::startImpl()
{
m_isStarted = false;
m_timer->start();
}
void CSimulatorFs9Listener::stop()
void CSimulatorFs9Listener::stopImpl()
{
m_timer->stop();
}

View File

@@ -117,12 +117,12 @@ namespace BlackSimPlugin
const QSharedPointer<CFs9Host> &fs9Host,
const QSharedPointer<CLobbyClient> &lobbyClient);
public slots:
//! \copydoc BlackCore::ISimulatorListener::start
virtual void start() override;
protected:
//! \copydoc BlackCore::ISimulatorListener::startImpl
virtual void startImpl() override;
//! \copydoc BlackCore::ISimulatorListener::stop
virtual void stop() override;
//! \copydoc BlackCore::ISimulatorListener::stopImpl
virtual void stopImpl() override;
private:
QTimer *m_timer = nullptr;

View File

@@ -1334,7 +1334,7 @@ namespace BlackSimPlugin
connect(m_timer, &QTimer::timeout, this, &CSimulatorFsxCommonListener::checkConnection);
}
void CSimulatorFsxCommonListener::start()
void CSimulatorFsxCommonListener::startImpl()
{
m_simulatorVersion.clear();
m_simConnectVersion.clear();
@@ -1343,7 +1343,7 @@ namespace BlackSimPlugin
m_timer->start();
}
void CSimulatorFsxCommonListener::stop()
void CSimulatorFsxCommonListener::stopImpl()
{
m_timer->stop();
}

View File

@@ -295,12 +295,12 @@ namespace BlackSimPlugin
//! \copydoc BlackCore::ISimulatorListener::backendInfo
virtual QString backendInfo() const override;
public slots:
//! \copydoc BlackCore::ISimulatorListener::start
virtual void start() override;
protected:
//! \copydoc BlackCore::ISimulatorListener::startImpl
virtual void startImpl() override;
//! \copydoc BlackCore::ISimulatorListener::stop
virtual void stop() override;
//! \copydoc BlackCore::ISimulatorListener::stopImpl
virtual void stopImpl() override;
protected:
//! Test if connection can be established

View File

@@ -707,7 +707,7 @@ namespace BlackSimPlugin
CSimulatorXPlaneListener::CSimulatorXPlaneListener(const CSimulatorPluginInfo &info): ISimulatorListener(info)
{ }
void CSimulatorXPlaneListener::start()
void CSimulatorXPlaneListener::startImpl()
{
if (m_watcher) { return; } // already started
if (isXBusRunning())
@@ -723,7 +723,7 @@ namespace BlackSimPlugin
}
}
void CSimulatorXPlaneListener::stop()
void CSimulatorXPlaneListener::stopImpl()
{
if (m_watcher)
{

View File

@@ -204,12 +204,12 @@ namespace BlackSimPlugin
//! Constructor
CSimulatorXPlaneListener(const BlackMisc::Simulation::CSimulatorPluginInfo &info);
public slots:
//! \copydoc BlackCore::ISimulatorListener::start
virtual void start() override;
protected:
//! \copydoc BlackCore::ISimulatorListener::startImpl
virtual void startImpl() override;
//! \copydoc BlackCore::ISimulatorListener::stop
virtual void stop() override;
//! \copydoc BlackCore::ISimulatorListener::stopImpl
virtual void stopImpl() override;
private:
//! \brief Check if XBus service is already registered