#ifndef VMCINTERFACE_H #define VMCINTERFACE_H #include #include #include #include "ATBAPPplugin.h" #include "UnifiedDCVMCInterface.h" namespace nsVMCInterface { using PLUGIN_STATE = UnifiedDCVMCInterface::PLUGIN_STATE; using RESULT_STATE = UnifiedDCVMCInterface::RESULT_STATE; using CASH_STATE = UnifiedDCVMCInterface::CASH_STATE; using TICKET_VARIANT = UnifiedDCVMCInterface::TICKET_VARIANT; } class VMCInterface : public QObject, public UnifiedDCVMCInterface { Q_OBJECT Q_INTERFACES(ATBAPPplugin UnifiedDCVMCInterface) public: explicit VMCInterface(QObject *parent = nullptr) : QObject(parent) {} virtual ~VMCInterface() = default; virtual QStringList getPluginInfoList() = 0; virtual const QString &getPluginInfo() = 0; virtual QString const &getString(RESULT_STATE resultState) = 0; virtual PLUGIN_STATE initPlugin(QObject *eventReceiver, QObject *atbSystem, QObject *hmiConfig, QSettings const &settings) override { return initVMCPlugin(eventReceiver, atbSystem, hmiConfig, settings); } /** * @brief initVMCPlugin * @param eventReceiver - QObject to receive ATBMachineEvents or HealthEvents * @param settings * @return */ virtual PLUGIN_STATE initVMCPlugin(QObject *eventReceiver, QObject *atbSystem, QObject *hmiConfig, const QSettings & settings) = 0; }; Q_DECLARE_INTERFACE(VMCInterface, "eu.atb.ptu.plugin.VMCInterface/1.0") #endif // VMCINTERFACE_H