mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-18 19:35:33 +08:00
@@ -278,6 +278,7 @@ namespace BlackCore
|
|||||||
//! \param ownAircraftProvider in memory access to own aircraft data
|
//! \param ownAircraftProvider in memory access to own aircraft data
|
||||||
//! \param remoteAircraftProvider in memory access to rendered aircraft data such as situation history and aircraft itself
|
//! \param remoteAircraftProvider in memory access to rendered aircraft data such as situation history and aircraft itself
|
||||||
//! \param pluginStorageProvider in memory access to persistent plugin data store
|
//! \param pluginStorageProvider in memory access to persistent plugin data store
|
||||||
|
//! \param weatherGridProvider in memory access to weather grid data
|
||||||
//! \return driver instance
|
//! \return driver instance
|
||||||
virtual ISimulator *create(
|
virtual ISimulator *create(
|
||||||
const BlackMisc::Simulation::CSimulatorPluginInfo &info,
|
const BlackMisc::Simulation::CSimulatorPluginInfo &info,
|
||||||
|
|||||||
27
src/blackmisc/weather/weathergridprovider.cpp
Normal file
27
src/blackmisc/weather/weathergridprovider.cpp
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
/* Copyright (C) 2015
|
||||||
|
* swift project Community / Contributors
|
||||||
|
*
|
||||||
|
* This file is part of swift project. It is subject to the license terms in the LICENSE file found in the top-level
|
||||||
|
* directory of this distribution and at http://www.swift-project.org/license.html. No part of swift project,
|
||||||
|
* including this file, may be copied, modified, propagated, or distributed except according to the terms
|
||||||
|
* contained in the LICENSE file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "weathergridprovider.h"
|
||||||
|
|
||||||
|
using namespace BlackMisc;
|
||||||
|
|
||||||
|
namespace BlackMisc
|
||||||
|
{
|
||||||
|
namespace Weather
|
||||||
|
{
|
||||||
|
|
||||||
|
void CWeatherGridAware::requestWeatherGrid(const BlackMisc::Weather::CWeatherGrid &weatherGrid,
|
||||||
|
const BlackMisc::CSlot<void(const BlackMisc::Weather::CWeatherGrid &)> &callback)
|
||||||
|
{
|
||||||
|
Q_ASSERT_X(this->m_weatherGridProvider, Q_FUNC_INFO, "No object available");
|
||||||
|
return this->m_weatherGridProvider->requestWeatherGrid(weatherGrid, callback);
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace
|
||||||
|
} // namespace
|
||||||
53
src/blackmisc/weather/weathergridprovider.h
Normal file
53
src/blackmisc/weather/weathergridprovider.h
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
/* Copyright (C) 2016
|
||||||
|
* swift project Community / Contributors
|
||||||
|
*
|
||||||
|
* This file is part of swift project. It is subject to the license terms in the LICENSE file found in the top-level
|
||||||
|
* directory of this distribution and at http://www.swift-project.org/license.html. No part of swift project,
|
||||||
|
* including this file, may be copied, modified, propagated, or distributed except according to the terms
|
||||||
|
* contained in the LICENSE file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
//! \file
|
||||||
|
|
||||||
|
#ifndef BLACKMISC_WEATHER_WEATHERGRIDPROVIDER_H
|
||||||
|
#define BLACKMISC_WEATHER_WEATHERGRIDPROVIDER_H
|
||||||
|
|
||||||
|
#include "blackmisc/blackmiscexport.h"
|
||||||
|
#include "blackmisc/identifier.h"
|
||||||
|
#include "blackmisc/weather/weathergrid.h"
|
||||||
|
#include "blackmisc/pq/length.h"
|
||||||
|
#include "blackmisc/slot.h"
|
||||||
|
|
||||||
|
namespace BlackMisc
|
||||||
|
{
|
||||||
|
namespace Weather
|
||||||
|
{
|
||||||
|
//! Direct threadsafe in memory access to weather grid
|
||||||
|
class BLACKMISC_EXPORT IWeatherGridProvider
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
//! Request weather grid
|
||||||
|
virtual void requestWeatherGrid(const BlackMisc::Weather::CWeatherGrid &weatherGrid,
|
||||||
|
const BlackMisc::CSlot<void(const BlackMisc::Weather::CWeatherGrid &)> &callback) = 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
//! Delegating class which can be directly used to access an \sa IWeatherGridProvider instance
|
||||||
|
class BLACKMISC_EXPORT CWeatherGridAware
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
//! \copydoc IWeatherGridProvider::requestWeatherGrid
|
||||||
|
virtual void requestWeatherGrid(const BlackMisc::Weather::CWeatherGrid &weatherGrid,
|
||||||
|
const BlackMisc::CSlot<void(const BlackMisc::Weather::CWeatherGrid &)> &callback);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
//! Constructor
|
||||||
|
CWeatherGridAware(IWeatherGridProvider *weatherGridProvider) : m_weatherGridProvider(weatherGridProvider) { Q_ASSERT(weatherGridProvider); }
|
||||||
|
IWeatherGridProvider *m_weatherGridProvider = nullptr; //!< access to object
|
||||||
|
};
|
||||||
|
|
||||||
|
} // namespace
|
||||||
|
} // namespace
|
||||||
|
|
||||||
|
Q_DECLARE_INTERFACE(BlackMisc::Weather::IWeatherGridProvider, "BlackMisc::Weather::IWeatherGridProvider")
|
||||||
|
|
||||||
|
#endif // guard
|
||||||
Reference in New Issue
Block a user