Skip to content
Snippets Groups Projects
AirMapManager.h 2.67 KiB
Newer Older
  • Learn to ignore specific revisions
  • /****************************************************************************
     *
    
    Gus Grubba's avatar
    Gus Grubba committed
     * (c) 2009-2020 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
    
     *
     * QGroundControl is licensed according to the terms in the file
     * COPYING.md in the root of the source code directory.
     *
     ****************************************************************************/
    
    
    Gus Grubba's avatar
    Gus Grubba committed
    #include "AirMapSharedState.h"
    
    Gus Grubba's avatar
    Gus Grubba committed
    #include "AirspaceManager.h"
    
    #include "QGCLoggingCategory.h"
    
    
    #include <airmap/qt/logger.h>
    #include <airmap/qt/types.h>
    
    Gus Grubba's avatar
    Gus Grubba committed
    #include <memory>
    
    Gus Grubba's avatar
    Gus Grubba committed
    class QGCToolbox;
    
    Q_DECLARE_LOGGING_CATEGORY(AirMapManagerLog)
    
    //-----------------------------------------------------------------------------
    
     * @class AirMapManager
     * AirMap implementation of AirspaceManager
    
    class AirMapManager : public AirspaceManager
    {
        Q_OBJECT
    public:
        AirMapManager(QGCApplication* app, QGCToolbox* toolbox);
    
        void setToolbox (QGCToolbox* toolbox) override;
    
        QString                         providerName                            () const override { return QString("AirMap"); }
    
        AirspaceVehicleManager*         instantiateVehicle                      (const Vehicle& vehicle) override;
    
    Gus Grubba's avatar
    Gus Grubba committed
        bool                            connected                               () const override;
        QString                         connectStatus                           () const override { return _connectStatus; }
    
        AirspaceManager::AuthStatus     authStatus                              () const override { return _authStatus; }
    
    protected:
        AirspaceRulesetsProvider*       _instantiateRulesetsProvider            () override;
        AirspaceWeatherInfoProvider*    _instatiateAirspaceWeatherInfoProvider  () override;
        AirspaceAdvisoryProvider*       _instatiateAirspaceAdvisoryProvider     () override;
        AirspaceRestrictionProvider*    _instantiateAirspaceRestrictionProvider () override;
    
    Gus Grubba's avatar
    Gus Grubba committed
        AirspaceFlightPlanProvider*     _instantiateAirspaceFlightPlanProvider  () override;
    
        void _error             (const QString& what, const QString& airmapdMessage, const QString& airmapdDetails);
        void _settingsChanged   ();
    
        void _airspaceEnabled   ();
    
        void _authStatusChanged (AirspaceManager::AuthStatus status);
    
    Gus Grubba's avatar
    Gus Grubba committed
        QString                                         _connectStatus;
    
        AirMapSharedState                               _shared;
        std::shared_ptr<airmap::qt::Logger>             _logger;
        std::shared_ptr<airmap::qt::DispatchingLogger>  _dispatchingLogger;
    
        AirspaceManager::AuthStatus                     _authStatus;