From 6fac031720ddf5d25d74602100f53f7e22c70e90 Mon Sep 17 00:00:00 2001 From: Roland Winklmeier Date: Mon, 10 Feb 2014 22:29:15 +0100 Subject: [PATCH] Add abstract interface IContextSimulator IContextSimulator is implememted similar to the other contexts. It defines a small set of methods as a starter. More will be added later when the concept is proofen to work. refs #135 --- src/blackcore/context_simulator.h | 80 +++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 src/blackcore/context_simulator.h diff --git a/src/blackcore/context_simulator.h b/src/blackcore/context_simulator.h new file mode 100644 index 000000000..a8ce6ce93 --- /dev/null +++ b/src/blackcore/context_simulator.h @@ -0,0 +1,80 @@ +/* Copyright (C) 2013 VATSIM Community / contributors + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#ifndef BLACKCORE_CONTEXTSIMULATOR_H +#define BLACKCORE_CONTEXTSIMULATOR_H + +#define BLACKCORE_CONTEXTSIMULATOR_INTERFACENAME "net.vatsim.PilotClient.BlackCore.ContextSimulator" +#define BLACKCORE_CONTEXTSIMULATOR_OBJECTPATH "/Simulator" + +#include "blackcore/dbus_server.h" +#include "blackcore/coreruntime.h" +#include "blackmisc/avaircraft.h" +#include + +namespace BlackCore +{ + //! \brief Network context + class IContextSimulator : public QObject + { + Q_OBJECT + Q_CLASSINFO("D-Bus Interface", BLACKCORE_CONTEXTSIMULATOR_INTERFACENAME) + + public: + + /*! + * \brief Service name + * \return + */ + static const QString &InterfaceName() + { + static QString s(BLACKCORE_CONTEXTSIMULATOR_INTERFACENAME); + return s; + } + + /*! + * \brief Service path + * \return + */ + static const QString &ObjectPath() + { + static QString s(BLACKCORE_CONTEXTSIMULATOR_OBJECTPATH); + return s; + } + + //! \brief Constructor + IContextSimulator(QObject *parent = nullptr) : QObject(parent) {} + + //! Destructor + virtual ~IContextSimulator() {} + + /*! + * \brief Using local objects? + * \return + */ + virtual bool usingLocalObjects() const = 0; + + /*! + * \brief Get user aircraft value object + * \return + */ + virtual BlackMisc::Aviation::CAircraft ownAircraft() const = 0; + + signals: + /*! + * \brief Emitted when the simulator connection changes + * \param value + */ + void connectionChanged(bool value); + + public slots: + + //! Returns true when simulator is connected and available + virtual bool isConnected() const = 0; + }; + +} // namespace BlackCore + +#endif // BLACKCORE_CONTEXTSIMULATOR_H