Files
pilotclient/src/blackmisc/simulation/aircraftmodelsetprovider.h
Lars Toenning bcc4bdd31e Add SPDX identifiers for REUSE compliance
Co-authored-by: Mat Sutcliffe <oktal3700@gmail.com>
2023-10-03 09:29:49 +02:00

54 lines
1.8 KiB
C++

// SPDX-FileCopyrightText: Copyright (C) 2019 swift Project Community / Contributors
// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-swift-pilot-client-1
//! \file
#ifndef BLACKMISC_SIMULATION_AIRCRAFTMODELSETPROVIDER_H
#define BLACKMISC_SIMULATION_AIRCRAFTMODELSETPROVIDER_H
#include "blackmisc/simulation/aircraftmodellist.h"
#include "blackmisc/provider.h"
#include "blackmisc/blackmiscexport.h"
namespace BlackMisc::Simulation
{
//! Value object encapsulating a list of aircraft models
class BLACKMISC_EXPORT IAircraftModelSetProvider : public IProvider
{
public:
//! Get the model set models
virtual CAircraftModelList getModelSet() const = 0;
//! Get the model set models count
virtual int getModelSetCount() const = 0;
//! Constructor
IAircraftModelSetProvider() = default;
};
//! Delegating class which can be directly used to access an \sa IAircraftModelSetProvider instance
class BLACKMISC_EXPORT CAircraftModelSetAware : public IProviderAware<IAircraftModelSetProvider>
{
virtual void anchor();
public:
//! Set the provider
void setOwnAircraftProvider(IAircraftModelSetProvider *provider) { this->setProvider(provider); }
//! \copydoc IAircraftModelSetProvider::getModelSet
CAircraftModelList getModelSet() const;
//! \copydoc IAircraftModelSetProvider::getModelSetCount
int getModelSetCount() const;
protected:
//! Constructor
CAircraftModelSetAware(IAircraftModelSetProvider *modelSetProvider) : IProviderAware(modelSetProvider) { Q_ASSERT(modelSetProvider); }
};
} // ns
Q_DECLARE_INTERFACE(BlackMisc::Simulation::IAircraftModelSetProvider, "org.swift-project.blackmisc.simulation.iaircraftmodelsetprovider")
#endif // guard