Files
pilotclient/src/blackmisc/test/testservice.h

245 lines
9.4 KiB
C++

/* Copyright (C) 2013
* 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. 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_TEST_TESTSERVICE_H
#define BLACKMISC_TEST_TESTSERVICE_H
// clash with struct interface in objbase.h used to happen
#pragma push_macro("interface")
#undef interface
#include "blackmisc/aviation/aircrafticaocode.h"
#include "blackmisc/aviation/aircraftsituation.h"
#include "blackmisc/aviation/airportlist.h"
#include "blackmisc/aviation/altitude.h"
#include "blackmisc/aviation/atcstation.h"
#include "blackmisc/aviation/atcstationlist.h"
#include "blackmisc/aviation/flightplan.h"
#include "blackmisc/aviation/transponder.h"
#include "blackmisc/geo/coordinategeodetic.h"
#include "blackmisc/network/client.h"
#include "blackmisc/network/clientlist.h"
#include "blackmisc/network/user.h"
#include "blackmisc/pq/length.h"
#include "blackmisc/pq/speed.h"
#include "blackmisc/propertyindex.h"
#include "blackmisc/propertyindexvariantmap.h"
#include "blackmisc/variantlist.h"
#include "blackmisc/simulation/fscommon/aircraftcfgentrieslist.h"
#include "blackmisc/simulation/simulatedaircraft.h"
#include "blackmisc/simulation/simulatedaircraftlist.h"
#include "blackmisc/simulation/simulatorplugininfo.h"
#include "blackmisc/variant.h"
#include "blackmisc/blackmiscexport.h"
#include <QList>
#include <QObject>
#include <QString>
#include <QTextStream>
#include <QVariantList>
#include <QDBusConnection>
#include <QDBusObjectPath>
// clazy:excludeall=const-signal-or-slot
class QDBusObjectPath;
class QVariant;
namespace BlackMisc
{
namespace Aviation
{
class CCallsign;
class CComSystem;
class CTrack;
}
}
//! DBus interface for test service
#define BLACKMISC_TESTSERVICE_INTERFACENAME "blackmisc.test"
namespace BlackMisc
{
namespace Test
{
//! Testservice for PQ / CValueObject DBus tests. This part is the callee.
//! \remark corresponds with BlackMisc::Test::ITestServiceInterface
class BLACKMISC_EXPORT CTestService : public QObject
{
Q_OBJECT
Q_CLASSINFO("D-Bus Interface", BLACKMISC_TESTSERVICE_INTERFACENAME)
// For some reasons the interface name in the XML is not set correctly
// to the above name
public:
//! Constructor
explicit CTestService(QObject *parent = nullptr);
//! Constructor
explicit CTestService(bool verbose, QObject *parent = nullptr);
//! Can the testservice be registered?
static bool canRegisterTestService(QDBusConnection &connection);
//! Register testservice with connection
static CTestService *registerTestService(QDBusConnection &connection, bool verbose, QObject *parent = nullptr);
//! Can the testservice be registered?
static bool unregisterTestService(QDBusConnection &connection);
//! Process id
static qint64 getPid() { return QCoreApplication::applicationPid(); }
//! DBus interface name
static const QString &InterfaceName();
//! DBus object path
static const QString &ObjectPath();
signals:
//! Send string message
void sendStringMessage(const QString &message);
public slots:
//! Receive string message
void receiveStringMessage(const QString &message) const;
//! Receive a QVariant
void receiveVariant(const BlackMisc::CVariant &variant) const;
//! Receive speed
void receiveSpeed(const BlackMisc::PhysicalQuantities::CSpeed &speed) const;
//! Receive com unit
void receiveComUnit(const BlackMisc::Aviation::CComSystem &comUnit) const;
//! Receive altitude
void receiveAltitude(const BlackMisc::Aviation::CAltitude &altitude) const;
//! Receive list
void receiveList(const QList<double> &list) const;
//! Receive a geo position
void receiveGeoPosition(const BlackMisc::Geo::CCoordinateGeodetic &geo) const;
//! Receive transponder
void receiveTransponder(const BlackMisc::Aviation::CTransponder &transponder) const;
//! Receive track
void receiveTrack(const BlackMisc::Aviation::CTrack &track) const;
//! Receive a length
void receiveLength(const BlackMisc::PhysicalQuantities::CLength &length) const;
//! Receive variant list
void receiveVariantList(const BlackMisc::CVariantList &variantList) const;
//! Receive ATC station
void receiveAtcStation(const BlackMisc::Aviation::CAtcStation &station) const;
//! Receive callsign
void receiveCallsign(const BlackMisc::Aviation::CCallsign &callsign) const;
//! Receive ATC list
void receiveAtcStationList(const BlackMisc::Aviation::CAtcStationList &atcStationList) const;
//! Receive an value map
void receiveValueMap(const BlackMisc::CPropertyIndexVariantMap &valueMap) const;
//! Ping speed
BlackMisc::PhysicalQuantities::CSpeed pingSpeed(const BlackMisc::PhysicalQuantities::CSpeed &speed) const;
//! Ping altitude
BlackMisc::Aviation::CAltitude pingAltitude(const BlackMisc::Aviation::CAltitude &altitude) const;
//! Ping user
BlackMisc::Network::CUser pingUser(const BlackMisc::Network::CUser &user) const;
//! Ping situation
BlackMisc::Aviation::CAircraftSituation pingSituation(const BlackMisc::Aviation::CAircraftSituation &situation) const;
//! Ping ATC station
BlackMisc::Aviation::CAtcStation pingAtcStation(const BlackMisc::Aviation::CAtcStation &station) const;
//! Ping transponder
BlackMisc::Aviation::CTransponder pingTransponder(const BlackMisc::Aviation::CTransponder &transponder) const;
//! Ping aircraft lights
BlackMisc::Aviation::CAircraftLights pingAircraftLights(const BlackMisc::Aviation::CAircraftLights &aircraftLights) const;
//! Ping parts
BlackMisc::Aviation::CAircraftParts pingAircraftParts(const BlackMisc::Aviation::CAircraftParts &aircraftParts) const;
//! Ping engine
BlackMisc::Aviation::CAircraftEngine pingAircraftEngine(const BlackMisc::Aviation::CAircraftEngine &aircraftEngine) const;
//! Ping model
BlackMisc::Simulation::CAircraftModel pingAircraftModel(const BlackMisc::Simulation::CAircraftModel &aircraftModel) const;
//! Ping model
BlackMisc::Simulation::CAircraftModelList pingAircraftModelList(const BlackMisc::Simulation::CAircraftModelList &aircraftModels) const;
//! Ping simulated aircraft
BlackMisc::Simulation::CSimulatedAircraft pingSimulatedAircraft(const BlackMisc::Simulation::CSimulatedAircraft &aircraft) const;
//! Ping ATC list
BlackMisc::Aviation::CAtcStationList pingAtcStationList(const BlackMisc::Aviation::CAtcStationList &atcStationList) const;
//! Ping aircraft list
BlackMisc::Simulation::CSimulatedAircraftList pingAircraftList(const BlackMisc::Simulation::CSimulatedAircraftList &aircraftList) const;
//! Ping airports list
BlackMisc::Aviation::CAirportList pingAirportList(const BlackMisc::Aviation::CAirportList &airportList) const;
//! Ping property index
BlackMisc::CPropertyIndex pingPropertyIndex(const BlackMisc::CPropertyIndex &properties) const;
//! Ping index variant map
BlackMisc::CPropertyIndexVariantMap pingIndexVariantMap(const BlackMisc::CPropertyIndexVariantMap &indexVariantMap) const;
//! Ping client
BlackMisc::Network::CClient pingClient(const BlackMisc::Network::CClient &client) const;
//! Ping NW clients list
BlackMisc::Network::CClientList pingClientList(const BlackMisc::Network::CClientList &clientList) const;
//! Ping plugin info
BlackMisc::Simulation::CSimulatorPluginInfo pingPluginInfo(const BlackMisc::Simulation::CSimulatorPluginInfo &info) const;
//! Ping ICAO data object
BlackMisc::Aviation::CAircraftIcaoCode pingAircraftIcaoData(const BlackMisc::Aviation::CAircraftIcaoCode &icao) const;
//! Ping flight plan
BlackMisc::Aviation::CFlightPlan pingFlightPlan(const BlackMisc::Aviation::CFlightPlan &flightPlan) const;
//! Ping CVariant
BlackMisc::CVariant pingCVariant(const BlackMisc::CVariant &variant) const;
//! Return stations via DBus
BlackMisc::Aviation::CAtcStationList getAtcStationList(int n) const;
//! Return stations via DBus
BlackMisc::Simulation::FsCommon::CAircraftCfgEntriesList getAircraftCfgEntriesList(int n) const;
//! Return paths via DBus
QList<QDBusObjectPath> getObjectPaths(int n) const;
private:
static QTextStream &out();
static QTextStream &err();
bool m_verbose = true;
};
} // ns
} // ns
#pragma pop_macro("interface")
#endif // guard